Server Federated Compute, Personalisasi di Perangkat

Server Federated Compute (FC) adalah bagian dari Federated Learning yang ditawarkan oleh Personalisasi di Perangkat (ODP). Tujuan dari dokumen ini adalah untuk memperkenalkan Federated Compute Server (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 aliran data antara Klien FC dan Server FC. FC Client adalah modul Android inti yang melatih model ML di perangkat dan berinteraksi dengan Server FC. Server FC memproses dan menggabungkan hasil dari Klien FC dengan aman di Trusted Execution Environment (TEE).

Pelatihan terdiri dari langkah-langkah berikut:

Diagram alur 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, plus versi terbaru model, versi N.
  4. Klien FC berlatih menggunakan data lokal dan paket.
  5. FC Client 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 banyak klien yang mengirimkan kontribusi mereka.
  8. Siklus agregasi dipicu.
  9. Kontribusi terenkripsi dimuat ke dalam Trusted Execution Environment (TEE) oleh Agregator.
  10. Agregator mengautentikasi 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 ke beberapa penyedia kunci dalam skema berbagi rahasia Syamir.
  11. Agregator melakukan agregasi lintas-perangkat, klip, dan derau sesuai mekanisme Privasi Diferensial (DP) yang sesuai, dan menghasilkan hasil derau.
  12. Aggregator memicu Updater Model.
  13. Updater Model memuat kontribusi gabungan dan menerapkannya ke model versi N untuk membuat model versi N + 1. Model yang baru dikirim 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 akan menyajikan contoh implementasi Google Cloud menggunakan Confidential Space.

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 disahkan yang dapat mendekripsi kontribusi yang dikirimkan oleh perangkat klien dan melakukan agregasi lintas-perangkat.
Model Updater Layanan latar belakang yang berjalan di Confidential Space yang menerapkan gradien gabungan ke model.

Detail komponen

Bagian berikut memperluas arsitektur tingkat tinggi ke dalam 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

Layanan ini adalah sekumpulan layanan web frontend yang menerima permintaan HTTPS dan membuat atau mendapatkan tugas dari Task Database.

Task Scheduler

Layanan latar belakang yang terus memindai Task Database. Prototipe 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.

Task Assignment Service adalah layanan web frontend yang dihosting di GKE. Klien 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 menampilkan topologi layanan agregator Privacy Sandbox untuk Android.
Agregator dan Pengupdate Model

Agregator dan Pembaru Model serupa. VM 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) oleh perangkat klien.
  • Penyimpanan gradien gabungan untuk gradien yang digabungkan, terpotong, dan bersuara.
  • Penyimpanan model dan rencana untuk rencana pelatihan, model, dan bobot.
Kolektor

Kolektor adalah layanan latar belakang yang secara berkala menghitung pengiriman perangkat klien selama sesi pelatihan. Fitur ini memberi tahu Agregator untuk memulai agregasi setelah pengiriman yang tersedia cukup.

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 Layanan Kunci yang dimiliki beberapa pihak. 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 akan 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 penting.

Setiap komponen arsitektur ini dapat diskalakan secara terpisah. 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:

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

Ketahanan

Ketahanan Server FC ditangani oleh pemulihan dari bencana menggunakan penyimpanan replika. Jika tertarik dengan pemulihan dari bencana (disaster recovery), 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 berdasarkan 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 pemulihan dari bencana 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. Karena itu, layanan dapat dilanjutkan dari putaran terakhir pelatihan 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: program latihan, model, dan bobotnya.
  • Gradien Gabungan: Gradien teragregasi 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 konsekuensi antara konsistensi dan ketersediaan, serta memilih fitur ketahanan dan ketersediaan data GCS yang tepat. 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.