Today, we are announcing the release of a new version of Concrete Numpy.
Concrete Numpy is an open-source set of tools which aims to simplify the use of fully homomorphic encryption (FHE) for data scientists. It can be used to implement machine learning models using a subset of numpy that compiles to FHE. Data scientists are able to train models with popular machine learning libraries and then convert the prediction functions of these models, written in numpy, to FHE.
This new version of Concrete Numpy v0.5 comes with many features:
- Support for new numpy operators. Note that some higher level Machine Learning features have been removed (they are now part of a new package built on top of concrete-numpy called concrete-ml).
- Increased bit precision to 8 bits and the addition of a transpose operator.
- Enabled loop parallelism.
Still built on the efficiency, usability, and simplicity of the Concrete library, this new version of concrete-numpy brings explicit encrypt, decrypt, and run support:
Provide 2D convolution operation
Support the full behavior of numpy.matmul by extending the support to 1D tensor and ND tensor with N !=2
Increase maximum precision from 7 bits to 8 bits.
Support loop parallelism
Before this version, the concrete-compiler parallelism infrastructure was not exposed to concrete-numpy, but with this new release, the loop parallelism is exposed (by default) to concrete-numpy.
- `run` has now been replaced by `encrypt_run_decrypt` in compiled circuits (`FHECircuit`).
- Separate API for doing key generation, encryption, decryption, and execution.