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:
- Klien FC di perangkat mendownload kunci enkripsi publik dari Layanan Kunci.
- Klien FC memeriksa Server FC dan mendapatkan tugas pelatihan.
- Klien FC mendownload rencana pelatihan, plus versi terbaru model, versi N.
- Klien FC berlatih menggunakan data lokal dan paket.
- FC Client mengenkripsi kontribusi perangkat ini dengan kunci publik yang diperoleh di Langkah 0 dan menguploadnya ke Server FC.
- Klien FC memberi tahu Server FC bahwa pelatihannya telah selesai.
- Server FC menunggu hingga cukup banyak klien yang mengirimkan kontribusi mereka.
- Siklus agregasi dipicu.
- Kontribusi terenkripsi dimuat ke dalam Trusted Execution Environment (TEE) oleh Agregator.
- 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.
- Agregator melakukan agregasi lintas-perangkat, klip, dan derau sesuai mekanisme Privasi Diferensial (DP) yang sesuai, dan menghasilkan hasil derau.
- Aggregator memicu Updater Model.
- 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:
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:
Layanan Pengelolaan Tugas
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
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
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:
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.