使用同態加密的加密資料情感分析

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: 1n_bits: 3n_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 秒。

部署工作流程

部署遵循客戶端-伺服器協定,以確保資料隱私:

  1. Key Generation: 客戶端產生一組私鑰與公鑰。
  2. Encryption: 客戶端使用公鑰對文字的轉換器表示進行編碼、量化與加密。
  3. Server-Side Prediction: 伺服器接收加密資料,並使用公開的評估金鑰執行預測。伺服器永遠不會看到解密後的輸入。
  4. Decryption: 伺服器將加密的預測結果回傳給客戶端,客戶端使用私鑰進行解密。

此架構以 Gradio 作為客戶端應用程式示範,FastAPI 作為伺服器,Uvicorn 作為 ASGI 伺服器,並部署於 Hugging Face Spaces.

Sources