concrete.ml.deployment.fhe_client_server.md

arrow-up-right

module concrete.ml.deployment.fhe_client_server

APIs for FHE deployment.

Global Variables

  • CML_VERSION


arrow-up-right

function check_concrete_versions

check_concrete_versions(zip_path: Path)

Check that current versions match the ones used in development.

This function loads the version JSON file found in client.zip or server.zip files and then checks that current package versions (Concrete Python, Concrete ML) as well as the Python current version all match the ones that are currently installed.

Args:

  • zip_path (Path): The path to the client or server zip file that contains the version.json file to check.

Raises:

  • ValueError: If at least one version mismatch is found.


arrow-up-right

class FHEModelServer

Server API to load and run the FHE circuit.

arrow-up-right

method __init__

Initialize the FHE API.

Args:

  • path_dir (str): the path to the directory where the circuit is saved


arrow-up-right

method load

Load the circuit.


arrow-up-right

method run

Run the model on the server over encrypted data.

Args:

  • serialized_encrypted_quantized_data (bytes): the encrypted, quantized and serialized data

  • serialized_evaluation_keys (bytes): the serialized evaluation keys

Returns:

  • bytes: the result of the model


arrow-up-right

class FHEModelDev

Dev API to save the model and then load and run the FHE circuit.

arrow-up-right

method __init__

Initialize the FHE API.

Args:

  • path_dir (str): the path to the directory where the circuit is saved

  • model (Any): the model to use for the FHE API


arrow-up-right

method save

Export all needed artifacts for the client and server.

Arguments:

  • via_mlir (bool): serialize with via_mlir option from Concrete-Python. For more details on the topic please refer to Concrete-Python's documentation.

Raises:

  • Exception: path_dir is not empty


arrow-up-right

class FHEModelClient

Client API to encrypt and decrypt FHE data.

arrow-up-right

method __init__

Initialize the FHE API.

Args:

  • path_dir (str): the path to the directory where the circuit is saved

  • key_dir (str): the path to the directory where the keys are stored


arrow-up-right

method deserialize_decrypt

Deserialize and decrypt the values.

Args:

  • serialized_encrypted_quantized_result (bytes): the serialized, encrypted and quantized result

Returns:

  • numpy.ndarray: the decrypted and deserialized values


arrow-up-right

method deserialize_decrypt_dequantize

Deserialize, decrypt and de-quantize the values.

Args:

  • serialized_encrypted_quantized_result (bytes): the serialized, encrypted and quantized result

Returns:

  • numpy.ndarray: the decrypted (de-quantized) values


arrow-up-right

method generate_private_and_evaluation_keys

Generate the private and evaluation keys.

Args:

  • force (bool): if True, regenerate the keys even if they already exist


arrow-up-right

method get_serialized_evaluation_keys

Get the serialized evaluation keys.

Returns:

  • bytes: the evaluation keys


arrow-up-right

method load

Load the quantizers along with the FHE specs.


arrow-up-right

method quantize_encrypt_serialize

Quantize, encrypt and serialize the values.

Args:

  • x (numpy.ndarray): the values to quantize, encrypt and serialize

Returns:

  • bytes: the quantized, encrypted and serialized values

Last updated

Was this helpful?