裝置端個人化聯合運算伺服器

聯合運算 (FC) 伺服器是裝置端個人化 (ODP) 提供的聯合學習功能之一。本文件旨在介紹聯合運算伺服器 (FC Server)、其元件和所用技術。這份文件會概略說明架構,然後深入探討各個元件。並說明這些元件如何共同運作,提供聯合學習環境,並提供工作負載的擴充和切割策略。

訓練流程

訓練包含 FC 用戶端和 FC 伺服器之間的資料流。FC 用戶端是核心 Android 模組,可在裝置上訓練機器學習模型,並與 FC 伺服器互動。FC 伺服器會在可信任的執行環境 (TEE) 中,安全地處理及匯總 FC 用戶端的結果。

訓練包含下列步驟:

工作流程圖:顯示 Android 版 Privacy Sandbox 中聯合運算用戶端與伺服器之間的訓練流程。
  1. 裝置上的 FC 用戶端會從 Key Services 下載公開加密金鑰。
  2. FC 用戶端會向 FC 伺服器進行檢查,並取得訓練工作。
  3. FC 用戶端會下載訓練計畫,以及最新版本的模型 (版本 N)。
  4. FC 用戶端會使用本機資料和計畫進行訓練。
  5. FC 用戶端會使用在步驟 0 取得的公開金鑰,將這部裝置的貢獻內容加密,然後上傳至 FC 伺服器。
  6. FC 用戶端會通知 FC 伺服器,訓練已完成。
  7. FC 伺服器會等到足夠的用戶端提交貢獻內容。
  8. 系統會觸發一輪匯總作業。
  9. 匯集器會將已加密的貢獻內容載入至受信任的執行環境 (TEE)。
  10. 匯集器會根據 NIST 的 RFC 9334 遠端認證程序 (RATS) 架構,向協調器進行自我認證。認證成功後,Key Services 就會授予解密金鑰。這些金鑰可能會在 Shamir 秘密共享方案中,分散至多個金鑰供應器。
  11. 匯總器會根據適當的差異化隱私 (DP) 機制,執行跨裝置匯總、限幅和雜訊處理,並輸出經過雜訊處理的結果。
  12. Aggregator 會觸發Model Updater
  13. 模型更新工具會載入匯總貢獻,並將其套用至模型版本 N,以建立模型版本 N + 1。系統會將新模型推送至模型儲存空間。

FC Server 可部署在任何支援 TEE 和相關安全防護功能的雲端服務上。我們正在評估公有雲供應商和基礎技術,但目前在下一個章節中,我們會提供使用 Confidential Space 的 Google Cloud 實作範例。

高階架構

FC Server 在 Google Cloud 中部署了下列元件:

這張圖表顯示 Android 版 Privacy Sandbox 聯合運算伺服器的架構。
元件 說明
工作管理服務 用於管理訓練工作的網路服務。合作夥伴應使用 Task Management API 建立訓練工作、列出所有現有的訓練工作、取消工作,以及擷取所有訓練狀態。
工作指派服務 這是以 HTTPS 為基礎的網路服務,用戶端裝置會定期檢查以取得訓練工作,並回報訓練狀態。
集結網站 在 Confidential Space 中執行的背景服務。執行 ODP 編寫的工作負載。必須向協調員進行認證,協調員會控管解密金鑰的存取權。只有經過成功認證的匯集器才能解密用戶端裝置提交的貢獻,並執行跨裝置匯集作業。
模型更新工具 在 Confidential Space 中執行的背景服務,可將匯總的漸層效果套用至模型。

元件詳細資料

下列各節將進一步說明整體架構:

這張圖表顯示 Android 版 Privacy Sandbox 聯合運算伺服器的元件。

工作管理服務

圖表:顯示 Android 版 Privacy Sandbox 任務管理服務的拓樸圖。

工作管理服務包含兩個子元件:工作管理網路服務和工作排程器服務,兩者皆已部署至 GKE

工作管理

這是一組前端網路服務,可接收 HTTPS 要求,並從工作資料庫建立或取得工作。

工作排程器

持續掃描工作資料庫的背景服務。它會管理訓練流程,例如建立新的訓練輪次和迭代。

工作資料庫

符合 ANSI SQL 標準的資料庫,用於儲存工作、迭代和指派資訊。在這個實作中,Google Cloud Spanner 會用做基礎資料庫服務。

工作指派服務

圖表:顯示 Android 版 Privacy Sandbox 任務指派服務的拓樸結構。

工作指派服務是託管於 GKE 的前端網路服務。它會接收 FC 用戶端的要求,並在適用情況下分發訓練工作。

此處的 Task Database 與 Task Management Service 中的 Task Database 是相同的資料庫例項。

匯總服務

這張圖表顯示 Android 版 Privacy Sandbox 的匯集器服務拓樸圖。
集結網站和模型更新工具

匯總器和模型更新器的運作方式相似。這些背景服務可在機密空間中安全地處理資料。離線工作之間的通訊會透過 PubSub 進行。

梯度、匯總梯度、模型和企劃書
  • 用於上傳 (加密) 漸層的用戶端裝置漸層儲存空間。
  • 用於匯總、裁剪和雜訊梯度的匯總梯度儲存空間。
  • 訓練計畫、模型和權重專用的模型和計畫儲存空間。
收集器

收集器是背景服務,會定期計算訓練期間提交的用戶端裝置。當有足夠的提交內容時,它會通知匯入器啟動匯入作業。

服務主機

所有無法存取機密資訊的服務都會託管在 GKE 上。

所有可能涉及機密資訊的服務都會在機密空間中代管。

所有機密資料都會使用由多方擁有的金鑰服務管理的加密金鑰加密。只有在合法機密空間中執行的機密運算 ODP 原始開放原始碼,才能存取解密金鑰。

在一個服務單元中,運算資源如下所示:

圖表:顯示 Android 版 Privacy Sandbox 的服務單元拓撲圖。

擴充性

先前所述的基礎架構著重於一個服務單位。

一個服務單位會使用一個 Cloud Spanner。如要瞭解重要限制,請參閱「Spanner 配額與限制」。

這個架構的每個元件都可以獨立調整。您可以使用標準的資源調度機制,在機密空間或 GKE 叢集內調度容量。如要有效提高處理能力,請新增下列項目的執行個體:

  • 工作指派網路服務
  • 工作管理網路服務
  • 集結網站執行個體
  • 模型更新器執行個體

營運韌性

FC Server 的復原力是透過使用複製儲存空間的災難復原功能處理。如果您有興趣瞭解災難復原,請啟用跨區域資料複寫功能。這樣一來,如果發生災難 (例如天氣事件導致資料中心中斷),服務就會從上次訓練開始繼續執行。

Spanner

FC 伺服器的預設實作方式會使用 Google Cloud Spanner 做為資料庫,用於儲存用來控管訓練流程的工作狀態。請根據業務需求評估一致性和可用性之間的權衡,再選擇多區域設定

任何 Spanner 例項都不會儲存任何原始或加密的使用者資料或衍生資料。歡迎使用 Spanner 提供的災難復原功能

Spanner 會記錄變更記錄。匯總器和模型更新器會儲存每個訓練輪的資料,且每個訓練輪的結果會個別儲存,不會互相覆寫。因此,在發生災難時,服務可以從上次訓練開始繼續運作。

Google Cloud Storage

FC 伺服器的預設實作方式會使用 Google Cloud Storage 儲存模型、訓練計畫和已加密的裝置貢獻等 Blob 資料。

設計中包含三個 GCS 執行個體:

  • 裝置貢獻:從裝置上傳的加密裝置貢獻。
  • 模型:訓練計畫、模型和權重。
  • 匯總梯度:匯總器產生的匯總梯度。

儲存在 GCS 中的資料有兩種:

  • 開發人員提供的資料,例如訓練計畫
  • 可能屬於私人資料,因為這些資料是從使用者信號 (由多協調器支援的加密技術保護) 衍生而來,例如裝置上傳的漸層和匯總漸層。
  • 從使用者信號衍生,但在應用差異化隱私權後的非私人資料,例如模型權重。

您應評估一致性和可用性之間的權衡,並選取適當的 GCS 資料可用性和耐用性功能。您應指定自己的資料保留政策。

複寫和備份

除了 Google Cloud 提供的資料複製機制外,您也可以選擇定期備份 Spanner 和 GCS 中的資料。舉例來說,您可以使用跨雲端的複製服務和產品。由於這些設定高度依賴業務需求,ODP 不會提供範例。目前的設計會考量開發人員可能需要進行這類複製和備份作業。因此,這項服務與第三方提供的複製和備份服務及產品相容。