使用同態加密的加密資料情感分析
TL;DR
Hugging Face 示範了一種透過 Concrete-ML 套件使用完全同態加密(FHE)對加密資料執行情感分析的方法。透過結合 BERT 轉換器嵌入與 XGBoost 分類器,系統能在伺服器上提供情感預測,而不需解密使用者的輸入資料。
使用同態加密的隱私保護推論
同態加密允許在加密資料上直接執行計算,而無需事先解密。這對於敏感應用(例如分析私人訊息)至關重要,因為使用者的資料必須在推論過程中保持機密。
為了實作此功能,Hugging Face 使用了 Concrete-ML 套件,讓資料科學家能在 FHE 環境中部署機器學習模型,而不需要深入的密碼學專業知識。
技術架構:轉換器與 XGBoost
系統採用兩階段管線,將原始文字轉換為情感預測,同時保持加密相容性。
1. 透過轉換器的文字表示
由於原始文字不適合用於 FHE,系統使用轉換器產生文字的隱藏表示(嵌入)。
- Model Used: 在 Stanford Sentiment Treebank 資料集上微調的 BERT 轉換器 (
cardiffnlp/twitter-roberta-base-sentiment-latest). - Process: 文字先被分詞,然後傳入轉換器。系統提取最後一層隱藏狀態,並將所有 token 的表示取平均,產生一個 768 維的文字層向量。
- Client-Side Execution: 這個從文字到張量的轉換必須在客戶端機器上執行,因為加密是對轉換器產生的表示進行的。
2. 透過 XGBoost 的分類
接著將 768 維向量輸入 XGBoost 分類器,該模型相較於深度神經網路更適合 FHE。
- Training: 使用公開的 Twitter 航空公司情感資料集訓練模型,並利用
GridSearchCV來最佳化超參數。 - Optimal Parameters: 表現最佳的模型使用
max_depth: 1、n_bits: 3與n_estimators: 50。 - Performance: 該模型在測試集上達到 85.04% 的準確率。
FHE 執行與效能
XGBoost 模型訓練完成後,會使用 Concrete-ML 編譯成 FHE 推論引擎。
- Inference Consistency: 在加密資料上進行的預測(
execute_in_fhe=True)與在明文上進行的預測結果相同。 - Execution Time: 單條推文的 FHE 推論大約需要 4.4 秒(在 16 核心 CPU 上)。
- Compilation Time: 模型編譯過程大約需要 9.3 秒。
部署工作流程
部署遵循客戶端-伺服器協定,以確保資料隱私:
- Key Generation: 客戶端產生一組私鑰與公鑰。
- Encryption: 客戶端使用公鑰對文字的轉換器表示進行編碼、量化與加密。
- Server-Side Prediction: 伺服器接收加密資料,並使用公開的評估金鑰執行預測。伺服器永遠不會看到解密後的輸入。
- Decryption: 伺服器將加密的預測結果回傳給客戶端,客戶端使用私鑰進行解密。
此架構以 Gradio 作為客戶端應用程式示範,FastAPI 作為伺服器,Uvicorn 作為 ASGI 伺服器,並部署於 Hugging Face Spaces.