binoua's picture
chore: Update the readme.
ce07c03
|
raw
history blame
1.64 kB
metadata
license: apache-2.0

MNIST digit classification with a CNN with Concrete ML

In this repository, we classify MNIST digits, without seing digits! Indeed, digits are sent encrypted to the HF endpoints, and are classified without the server seeing the email in the clear, thanks to fully homomorphic encryption (FHE). This is done thanks to Zama's Concrete ML.

Concrete ML is Zama's open-source privacy-preserving ML package, FHE. We refer the reader to fhe.org or Zama's websites for more information on FHE.

This directory was creating from the template https://huggingface.co/zama-fhe/concrete-ml-template-alpha.

Deploying a compiled model on HF inference endpoint

If you would like to deploy, it is very easy.

  • click on 'Deploy' button in HF interface
  • chose "Inference endpoints"
  • chose the right model repository
  • (the rest of the options are classical to HF end points; we refer you to their documentation for more information) and then click on 'Create endpoint'

And now, your model should be deployed, after few secunds of installation.

Using HF entry points on privacy-preserving models

Now, this is the final step: using the entry point. You should:

  • if your inference endpoint is private, set an environment variable HF_TOKEN with your HF token
  • edit play_with_endpoint.py
  • replace API_URL by your entry point URL
  • replace the part between "# BEGIN: replace this part with your privacy-preserving application" and "# END: replace this part with your privacy-preserving application" with your application

Finally, you'll be able to launch your application with python play_with_endpoint.py.