Server Federated Compute, Personalisasi di Perangkat

Server Federated Compute (FC) adalah bagian dari Federated Learning yang ditawarkan oleh Personalisasi di Perangkat (ODP). Tujuan dokumen ini adalah untuk memperkenalkan Server Compute Gabungan (Server FC), komponennya, dan teknologi yang digunakan. Dokumen ini memberikan ringkasan umum tentang arsitektur, lalu membahas setiap komponen secara mendetail. Dokumen ini juga membahas cara kerja komponen bersama untuk menyediakan lingkungan federated learning, dan menawarkan strategi untuk menskalakan dan melakukan sharding pada workload.

Alur pelatihan

Pelatihan terdiri dari alur data antara Klien FC dan Server FC. FC Client adalah modul Android inti yang melatih model ML di perangkat dan berinteraksi dengan FC Server. Server FC memproses dan menggabungkan hasil dari Klien FC dengan aman di Trusted Execution Environment (TEE).

Pelatihan terdiri dari langkah-langkah berikut:

Diagram alir yang menunjukkan alur pelatihan antara klien dan server komputasi gabungan di Privacy Sandbox untuk Android.
  1. Klien FC di perangkat mendownload kunci enkripsi publik dari Layanan Kunci.
  2. Klien FC memeriksa Server FC dan mendapatkan tugas pelatihan.
  3. Klien FC mendownload rencana pelatihan, serta versi terbaru model, versi N.
  4. Klien FC dilatih menggunakan data lokal dan rencana.
  5. Klien FC mengenkripsi kontribusi perangkat ini dengan kunci publik yang diperoleh di Langkah 0 dan menguploadnya ke Server FC.
  6. Klien FC memberi tahu Server FC bahwa pelatihannya telah selesai.
  7. Server FC menunggu hingga cukup klien mengirimkan kontribusi mereka.
  8. Siklus agregasi dipicu.
  9. Kontribusi terenkripsi dimuat ke Trusted Execution Environment (TEE) oleh Agregator.
  10. Agregator membuktikan dirinya sendiri, dengan mengikuti Arsitektur Prosedur ATtestation Jarak Jauh (RATS) RFC 9334 NIST, kepada koordinator. Setelah pengesahan berhasil, Layanan Kunci akan memberikan kunci dekripsi. Kunci ini dapat dibagi di beberapa penyedia kunci dalam skema berbagi rahasia Shamir.
  11. Agregator melakukan agregasi lintas perangkat, memotong, dan menambahkan derau sesuai mekanisme Privasi Diferensial (DP) yang sesuai, dan menghasilkan output yang berisi derau.
  12. Aggregator memicu Updater Model.
  13. Model Updater memuat kontribusi gabungan dan menerapkannya ke versi model N untuk membuat versi model N + 1. Model baru akan didorong ke penyimpanan model.

Server FC dapat di-deploy di layanan cloud mana pun yang mendukung TEE dan fitur keamanan terkait. Kami sedang mengevaluasi penyedia cloud publik dan teknologi yang mendasarinya, tetapi untuk saat ini, bagian berikut menyajikan contoh penerapan Google Cloud menggunakan Ruang Rahasia.

Arsitektur tingkat tinggi

Server FC memiliki komponen berikut yang di-deploy di Google Cloud:

Diagram yang menunjukkan arsitektur server komputasi gabungan Privacy Sandbox untuk Android.
Komponen Deskripsi
Layanan Pengelolaan Tugas Layanan web untuk mengelola tugas pelatihan. Partner harus menggunakan Task Management API untuk membuat tugas pelatihan, mencantumkan semua tugas pelatihan yang ada, membatalkan tugas, dan mengambil semua status pelatihan.
Layanan Penetapan Tugas Layanan web berbasis HTTPS tempat perangkat klien memeriksa secara berkala untuk mendapatkan tugas pelatihan dan melaporkan status pelatihan.
Agregator Layanan latar belakang yang berjalan di Confidential Space. Alat ini menjalankan workload yang dibuat ODP. Laporan ini harus dibuktikan kepada koordinator, yang menjaga akses ke kunci dekripsi. Hanya Agregator yang berhasil diautentikasi yang dapat mendekripsi kontribusi yang dikirimkan oleh perangkat klien dan melakukan agregasi lintas perangkat.
Model Updater Layanan latar belakang yang berjalan di Ruang Rahasia yang menerapkan gradien gabungan ke model.

Detail komponen

Bagian berikut memperluas arsitektur tingkat tinggi ke detail lebih lanjut:

Diagram yang menunjukkan komponen server komputasi gabungan Privacy Sandbox untuk Android.

Layanan Pengelolaan Tugas

Diagram yang menunjukkan topologi layanan pengelolaan tugas Privacy Sandbox untuk Android.

Layanan Pengelolaan Tugas berisi dua subkomponen: Layanan Web Pengelolaan Tugas dan Layanan Penjadwal Tugas, yang keduanya di-deploy di GKE.

Pengelolaan Tugas

Ini adalah kumpulan layanan web frontend yang menerima permintaan HTTPS dan membuat atau mendapatkan tugas dari Database Tugas.

Task Scheduler

Layanan latar belakang yang terus memindai Database Tugas. Model ini mengelola alur pelatihan, misalnya membuat putaran dan iterasi pelatihan baru.

Database Tugas

Database yang mematuhi ANSI SQL yang menyimpan informasi Tugas, Iterasi, dan Tugas. Dalam implementasi ini, Google Cloud Spanner digunakan sebagai layanan database yang mendasarinya.

Layanan Penetapan Tugas

Diagram yang menunjukkan topologi layanan penetapan tugas Privacy Sandbox untuk Android.

Layanan Penetapan Tugas adalah layanan web frontend yang dihosting di GKE. Server ini menerima permintaan dari Klien FC dan mendistribusikan tugas pelatihan jika berlaku.

Database Tugas di sini adalah instance database yang sama dengan Database Tugas di Layanan Pengelolaan Tugas.

Layanan Agregator

Diagram yang menunjukkan topologi layanan agregator Privacy Sandbox untuk Android.
Agregator dan Pengupdate Model

Agregator dan Pembaru Model serupa. Layanan ini adalah layanan latar belakang yang memproses data dengan aman di Confidential Space. Komunikasi antara tugas offline dilakukan melalui PubSub.

Gradien, gradien gabungan, model, dan rencana
  • Penyimpanan gradien untuk gradien yang diupload (dienkripsi) perangkat klien.
  • Penyimpanan gradien gabungan untuk gradien gabungan, terpotong, dan berisi derau.
  • Penyimpanan model dan rencana untuk rencana pelatihan, model, dan bobot.
Kolektor

Pengumpul adalah layanan latar belakang yang secara berkala menghitung pengiriman perangkat klien selama putaran pelatihan. Tindakan ini akan memberi tahu Agregator untuk memulai agregasi setelah cukup banyak kiriman tersedia.

Host layanan

Semua layanan yang tidak memiliki akses ke informasi sensitif dihosting di GKE.

Semua layanan yang mungkin menyentuh informasi sensitif dihosting di Ruang Rahasia.

Semua data sensitif dienkripsi dengan kunci enkripsi yang dikelola oleh beberapa Layanan Kunci yang dimiliki pihak lain. Hanya kode open source yang ditulis oleh ODP dan berhasil diautentikasi yang berjalan di Confidential Space versi confidential computing yang sah yang dapat mengakses kunci dekripsi.

Dalam satu unit layanan, resource komputasi terlihat seperti ini:

Diagram yang menunjukkan topologi unit layanan Privacy Sandbox untuk Android.

Skalabilitas

Infrastruktur yang dijelaskan sebelumnya berfokus pada satu unit layanan.

Satu unit layanan menggunakan satu Cloud Spanner. Lihat Kuota & batas Spanner untuk mengetahui batasan yang penting.

Setiap komponen arsitektur ini dapat diskalakan secara independen. Hal ini dilakukan dengan menskalakan kapasitas dalam Confidential Space atau dalam cluster GKE menggunakan mekanisme penskalaan standar. Secara efektif, kapasitas pemrosesan dapat ditingkatkan dengan menambahkan lebih banyak instance dari:

  • Layanan Web Penetapan Tugas
  • Layanan Web Pengelolaan Tugas
  • Instance Agregator
  • Instance Model Updater

Ketahanan

Ketahanan Server FC ditangani oleh disaster recovery menggunakan penyimpanan yang direplikasi. Jika tertarik dengan pemulihan dari bencana, Anda harus mengaktifkan replikasi data lintas region. Hal ini akan memastikan bahwa jika terjadi bencana (seperti peristiwa cuaca yang mengganggu pusat data), layanan akan dilanjutkan dari putaran pelatihan terakhir.

Spanner

Implementasi default Server FC menggunakan Google Cloud Spanner sebagai database untuk menyimpan status tugas yang digunakan untuk mengontrol alur pelatihan. Anda harus mengevaluasi konsekuensi antara konsistensi dan ketersediaan sesuai dengan kebutuhan bisnis Anda sebelum memilih konfigurasi beberapa region.

Tidak ada data pengguna atau turunannya, baik mentah maupun terenkripsi, yang disimpan di instance Spanner. Jangan ragu untuk menggunakan salah satu fitur disaster recovery yang ditawarkan oleh Spanner.

Spanner mencatat histori perubahan. Agregator dan Pembaru Model menyimpan data per putaran pelatihan dan hasil setiap putaran disimpan secara terpisah tanpa menimpa satu sama lain. Oleh karena itu, layanan dapat dilanjutkan dari putaran pelatihan terakhir jika terjadi bencana.

Google Cloud Storage

Implementasi default Server FC menggunakan Google Cloud Storage untuk menyimpan data blob seperti model, rencana pelatihan, dan kontribusi perangkat terenkripsi.

Ada tiga instance GCS dalam desain:

  • Kontribusi perangkat: kontribusi perangkat terenkripsi yang diupload dari perangkat.
  • Model: rencana pelatihan, model, dan bobotnya.
  • Gradien Gabungan: Gradien gabungan yang dihasilkan oleh agregator.

Data yang disimpan di GCS adalah:

  • Data yang disediakan developer, seperti rencana pelatihan ATAU
  • Data yang berpotensi bersifat pribadi karena berasal dari sinyal pengguna (dilindungi oleh enkripsi yang didukung beberapa koordinator) seperti gradien yang diupload perangkat dan gradien gabungan ATAU
  • Data non-pribadi yang berasal dari sinyal pengguna, tetapi setelah penerapan Privasi Diferensial, seperti bobot model.

Anda harus mengevaluasi kompromi antara konsistensi dan ketersediaan, serta memilih fitur ketersediaan dan ketahanan data GCS yang sesuai. Anda harus menentukan kebijakan retensi data Anda sendiri.

Replikasi dan pencadangan

Selain mekanisme replikasi data yang disediakan oleh Google Cloud, Anda juga dapat memilih untuk mencadangkan data secara berkala di Spanner dan GCS. Misalnya, Anda dapat menggunakan layanan dan penawaran replikasi lintas cloud. ODP tidak memberikan contoh karena konfigurasi ini sangat bergantung pada kebutuhan bisnis. Desain saat ini mempertimbangkan potensi kebutuhan developer untuk replikasi dan pencadangan tersebut. Oleh karena itu, produk ini kompatibel dengan layanan dan produk pencadangan serta replikasi yang disediakan pihak ketiga.