Zama has shipped something genuinely useful: pre-compiled, FHE-encrypted machine learning models that deploy directly on Hugging Face Endpoints. The open source cryptography company spent eighteen months building Concrete ML, a framework with bindings to scikit-learn, ONNX, PyTorch, and TensorFlow, and the whole point is that computations run over encrypted data without the server ever seeing the private key. Now those models live on Zama’s Hugging Face page, tagged and ready for one-click deployment.

The process is straightforward if you’ve ever deployed anything on Hugging Face. Pick a model — they’ve got an encrypted decision tree for spam detection that never looks at message content in the clear — hit Deploy, choose an Inference Endpoint, and select CPU hardware. That last part matters: Concrete ML doesn’t use GPUs yet, though Zama says they’re working on it. In their example, an eight vCPU machine handled the workload. Once the endpoint spins up, users clone the repo, point the API_URL at their new endpoint, export a Hugging Face token, and run a script.

Performance is where things get real. Their benchmark run processed 691 samples with 89.5% accuracy, taking 2,873 seconds total — roughly 4.1 seconds per inference. That’s not fast by conventional ML standards, but it’s the cost of doing computation on encrypted data. The first inference also involves sending a large key to the server; their logs show a 72-megabyte key transfer before predictions start flowing. That overhead is inherent to FHE and worth understanding before you promise sub-second latency to anyone.

The bigger story here is accessibility. FHE has been around for years, but it’s mostly lived in academic papers and specialized libraries. Putting pre-compiled models on Hugging Face — a platform ML engineers already use daily — lowers the barrier considerably. Developers can test encrypted inference without understanding the cryptographic internals. That’s a meaningful step toward production privacy-preserving ML, even if the performance ceiling still makes it impractical for many real-time applications.

One caveat: they currently force Python 3.10, which happens to match Hugging Face’s default. Zama acknowledges this dependency and says a fix is coming. Until then, anyone deploying these models needs to pin their environment accordingly.