Blog · October 21, 2026

Private AI Inference: What It Is and How to Set It Up

Private AI inference compared: self-hosted, VPC-hosted, confidential computing and provider zero-retention, what each protects, and how to set up self-hosting.

Saina · October 21, 2026 · 3 min read

Private AI inference is four different arrangements sold under one marketing word. They differ in what they actually protect, and confusing them is how teams end up with a compliance story that doesn't match their architecture. This guide defines the patterns and what each one gives you.

The four patterns of private AI inference

1. Self-hosted inference

The model runs on hardware you control; requests never leave your boundary.

2. VPC-hosted (private endpoint) inference

A provider's model, exposed only inside your cloud VPC; traffic never crosses the public internet.

3. Confidential computing

Model execution inside trusted execution environments (hardware enclaves with cryptographic attestation), so even the operator of the machine can't read the data in use.

4. Provider zero-retention options

Hosted APIs with contractual/technical no-training, no-logging terms. OpenAI and other large providers offer zero-retention or no-training terms for eligible API use; read the current terms for the endpoint you use. Saina's own hosted API is another example: the same server as the self-hosted one, under a zero-retention policy (free account).

What each pattern actually protects

Self-hosted VPC-hosted Confidential computing Zero-retention
Data egresses your boundary No To the provider, never over the public internet Yes, to attested hardware; encrypted in use Yes
Provider sees content n/a Yes, under their terms Not in use Yes, transit/processing
Trains on your data n/a Per terms n/a Contractually no
You pin the model version Yes Provider-managed Deployment-specific Provider-managed
Ops burden Yours Low Medium-high None

Read that table as a requirements-matching exercise: write down which row you actually need, and the pattern picks itself.

Setting up the self-hosted pattern

For decision workloads, the shortest path (the full commands are in the step-by-step walkthrough):

  1. Choose the workload: the decision steps (route, tag, gate, rate), not generation, first.
  2. Run the model: Saina Helm in Docker (ghcr.io/run-saina/saina-server:0.1.2) or via pip on an internal VM, weights revision pinned.
  3. Boundary discipline: bind privately, TLS at the proxy, per-consumer API keys; set SAINA_CORS_ORIGINS="" so no browser origin can call it, and run with --no-access-log (pip/uvicorn) if request metadata shouldn't be logged. The calling workflow logs decisions with reasons; keys in a secret store, never in workflow exports.
  4. Prove the boundary: pre-stage the pinned checkpoint first (the first start otherwise downloads ~1.7 GB of weights from Hugging Face), then apply egress-deny rules on the box that would fail loudly if anything tried to phone home; audit what's logged and retained.
  5. Scope the claim: "no data leaves the organization" is a claim about this pattern only. VPC-hosted and zero-retention setups can be excellent; they just don't earn that sentence.

Checklist