concrete.ml.deployment.fhe_client_server.md
module concrete.ml.deployment.fhe_client_server
concrete.ml.deployment.fhe_client_serverAPIs for FHE deployment.
Global Variables
CML_VERSION
function check_concrete_versions
check_concrete_versionscheck_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.
class FHEModelServer
FHEModelServerServer API to load and run the FHE circuit.
method __init__
__init____init__(path_dir: str)Initialize the FHE API.
Args:
path_dir(str): the path to the directory where the circuit is saved
method load
loadload()Load the circuit.
method run
runrun(
serialized_encrypted_quantized_data: bytes,
serialized_evaluation_keys: bytes
) → bytesRun the model on the server over encrypted data.
Args:
serialized_encrypted_quantized_data(bytes): the encrypted, quantized and serialized dataserialized_evaluation_keys(bytes): the serialized evaluation keys
Returns:
bytes: the result of the model
class FHEModelDev
FHEModelDevDev API to save the model and then load and run the FHE circuit.
method __init__
__init____init__(path_dir: str, model: Any = None)Initialize the FHE API.
Args:
path_dir(str): the path to the directory where the circuit is savedmodel(Any): the model to use for the FHE API
method save
savesave(via_mlir: bool = False)Export all needed artifacts for the client and server.
Arguments:
via_mlir(bool): serialize withvia_mliroption from Concrete-Python. For more details on the topic please refer to Concrete-Python's documentation.
Raises:
Exception: path_dir is not empty
class FHEModelClient
FHEModelClientClient API to encrypt and decrypt FHE data.
method __init__
__init____init__(path_dir: str, key_dir: Optional[str] = None)Initialize the FHE API.
Args:
path_dir(str): the path to the directory where the circuit is savedkey_dir(str): the path to the directory where the keys are stored
method deserialize_decrypt
deserialize_decryptdeserialize_decrypt(serialized_encrypted_quantized_result: bytes) → ndarrayDeserialize and decrypt the values.
Args:
serialized_encrypted_quantized_result(bytes): the serialized, encrypted and quantized result
Returns:
numpy.ndarray: the decrypted and deserialized values
method deserialize_decrypt_dequantize
deserialize_decrypt_dequantizedeserialize_decrypt_dequantize(
serialized_encrypted_quantized_result: bytes
) → ndarrayDeserialize, 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
method generate_private_and_evaluation_keys
generate_private_and_evaluation_keysgenerate_private_and_evaluation_keys(force=False)Generate the private and evaluation keys.
Args:
force(bool): if True, regenerate the keys even if they already exist
method get_serialized_evaluation_keys
get_serialized_evaluation_keysget_serialized_evaluation_keys() → bytesGet the serialized evaluation keys.
Returns:
bytes: the evaluation keys
method load
loadload()Load the quantizers along with the FHE specs.
method quantize_encrypt_serialize
quantize_encrypt_serializequantize_encrypt_serialize(x: ndarray) → bytesQuantize, 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?