Hi,
While writing another post, a question came up about the philosophy of Concrete ML: how would you recommend setting up the data preprocessing?
In your examples, the encrypted model takes as input the same dimensions that were used to train the model in plaintext. This looks fine but in practice, you often do transformation on the raw data. Hence, the local data is usually transformed on the Inference server before calling the ML model. I wonder whether this question already came up in your discussions: should this transformation (e.g. a PCA or a one-hot encoding) be done by the “encryptor” on its plaintext data (i.e. to directly encrypt the transformed data) or by the “model holder” using FHE?.
I did not used yet Concrete ML so I may miss some details about its philosophy, sorry about that. Thank in advance for your answer!