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
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.
Raises:
ValueError: if mismatch in versions between serialized file and runtime
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.
Raises:
ValueError: if mismatch in versions between serialized file and runtime
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?