Skip to content

Local Inference as Part of a HIPAA Compliance Strategy

11 min read · updated August 11, 2026

Moving inference in-house removes one third party from the chain. It does not remove a single safeguard, and it creates several new copies of protected health information that you are now responsible for. The net effect on your compliance work is usually to increase it.

This is not legal advice. It is a description of which parts of the HIPAA regulations are engaged by a technical choice, written to help you ask your counsel and your privacy officer a better question. Whether any particular arrangement satisfies HIPAA is a determination for them, on your facts. Regulatory citations are to the Code of Federal Regulations as it stands at the time of writing; see the note at the end of this page about a pending amendment.

The one thing that genuinely changes

HIPAA requires a covered entity to obtain satisfactory assurances, through a written business associate agreement, before it discloses protected health information to a business associate — 45 CFR 164.502(e)(1) on the Privacy Rule side and 45 CFR 164.308(b) on the Security Rule side. The US Department of Health and Human Services publishes sample business associate agreement provisions setting out what those assurances look like.

If a prompt containing PHI never leaves hardware you control, there is no disclosure to an inference vendor for that step, and therefore no BAA needed for that step. That is a real result. It removes a vendor from your agreement chain, removes a subprocessor from your record of processing, and removes a party whose own breach would become your notification obligation. It also removes a negotiation: not every model provider will sign a BAA, and the ones that do often restrict which models are in scope. If your blocker is “procurement will not approve another data processor”, local inference genuinely solves that blocker. The general treatment of what a vendor BAA has to contain is in the clauses to look for in an AI vendor’s BAA.

That is the whole of what changes. It is one clause in one rule.

What is completely unchanged

The Security Rule applies to electronic PHI wherever a covered entity or business associate creates, receives, maintains or transmits it. A GPU under a desk in your own building is squarely inside that scope, and every standard applies to it exactly as it applies to a server rack.

  • Administrative safeguards, 45 CFR 164.308. The risk analysis at 164.308(a)(1)(ii)(A) is a required implementation specification, and a new inference host is a new system to analyse. Sanction policy, workforce clearance, information access management and contingency planning all attach to it.
  • Physical safeguards, 45 CFR 164.310. Facility access controls, workstation security, and — the one that bites — device and media controls at 164.310(d)(1), covering disposal and media re-use. The disk holding your model and its logs cannot simply be thrown away or resold.
  • Technical safeguards, 45 CFR 164.312. Access control with unique user identification (required), emergency access (required), automatic logoff and encryption (addressable); audit controls; integrity; person or entity authentication; transmission security. HHS is explicit that “addressable” does not mean optional — you implement it, or document why it is not reasonable and appropriate and implement an equivalent alternative.
  • Minimum necessary, 45 CFR 164.502(b). Still governs what you put in the prompt. Pasting a whole chart into a local model because the tokens are free is exactly the failure this standard exists to prevent; see minimum necessary applied to an AI assistant.
  • Breach notification, 45 CFR 164.400–414. A stolen laptop with a local model and six months of chat history is an impermissible acquisition of PHI, assessed the same way as any other. Encryption at rest is what moves it out of “unsecured PHI”, and that depends on the encryption meeting HHS’s published guidance, not on the data having been local.

A default llama.cpp or Ollama install satisfies almost none of this. It has no user accounts, so 164.312(a)(2)(i) unique user identification has nothing to hook into. It has no authentication on its HTTP endpoint, so 164.312(d) is unmet. If it is bound to 0.0.0.0 it is answering unauthenticated requests from the whole subnet. None of that is a criticism of the software — it is not sold as a clinical system — but it means the compliance work is in front of you, not behind you.

The new ePHI local inference creates

This is the part that surprises people. Moving inference in-house converts a transient disclosure into durable local storage, and durable local storage of PHI is a bigger obligation than a transient disclosure under a BAA.

The artefacts are concrete: readline history from an interactive CLI; a prompt cache written to disk by a runtime flag such as llama.cpp ’s --prompt-cache; the chat database of whatever web front end you put in front of the server; the server’s own request logs; shell history if prompts are passed on a command line; swap and hibernation files holding whatever was in RAM. Each of those is now ePHI on a system you must safeguard, back up under your contingency plan, include in your risk analysis, and dispose of under 164.310(d)(2). The wider inventory of these is in what local inference cannot guarantee about privacy.

Backups deserve their own sentence. A local inference host that is swept up by the same nightly backup as everything else has just put PHI wherever those backups go — including, in a lot of small practices, a consumer cloud sync folder. That is a disclosure, and it is one the “runs locally” framing actively hides.

Audit controls are where local setups fail

45 CFR 164.312(b) requires mechanisms that record and examine activity in systems containing ePHI. This is the standard local inference stacks are furthest from meeting, and the gap is structural rather than a configuration mistake.

A hosted API has per-key identity: every request is attributable to a credential, and the provider produces logs. A bare local server has an HTTP port. It cannot tell you who asked, because nobody told it. To get to a defensible position you have to put something in front of it that authenticates a person, records the request, and can answer “which member of staff sent this patient’s data to the model, and when”. That is a piece of software somebody has to own and operate, and the honest framing is that local inference moved that job from a vendor to you rather than eliminating it.

There is no HIPAA certification

HHS does not certify, endorse or accredit anyone for HIPAA compliance, and no government-issued HIPAA certification exists. Compliance is a state you are in and can evidence, assessed against your own risk analysis; it is not a badge, and it is not conferred by an architecture.

Which means: “HIPAA-compliant because it runs locally” is not a claim anyone can make about a piece of software, including about software you write. A vendor advertising a “HIPAA-certified local AI appliance” is selling you their own attestation plus, at best, a third-party audit against a framework that is not HIPAA. Read what the audit actually covered.

The Security Rule is under active amendment. HHS published a notice of proposed rulemaking on 6 January 2025 that would, among other things, remove the required/addressable distinction and make every implementation specification mandatory. The comment period closed on 7 March 2025 and no final rule had issued as of mid-2026, with HHS signalling a longer timeline. Anything on this page about “addressable” specifications should be re-checked against the rule in force when you read it.

The moment you fall back to a hosted model

Most real deployments are not purely local. A small model handles the routine work and something larger is called when it cannot cope, which is the pattern described in hybrid local and API inference. That fallback is a disclosure, and it needs a BAA with whoever receives it, exactly as if the local model were not there.

The consequence worth internalising is that the routing decision becomes a compliance control. A rule that says “overflow to the hosted model when the context is too long” is a rule about when PHI leaves the building, and it will fire on the longest, most detailed, most identifiable inputs — precisely the ones you least wanted to send. If that route exists it must be deliberate, logged, restricted to a provider under BAA, and testable. Configuring it as a performance optimisation and discovering later that it was a disclosure path is the failure mode to design against.