Server Federated Compute (FC) adalah bagian dari Federated Learning yang ditawarkan oleh Personalisasi di Perangkat (ODP). Tujuan dokumen ini adalah untuk memperkenalkan Federated Compute Server (FC Server), komponennya, dan teknologi yang digunakan. Dokumen ini memberikan ringkasan tingkat tinggi tentang arsitektur, lalu membahas setiap komponen secara mendetail. Dokumen ini juga membahas cara kerja komponen bersama-sama untuk menyediakan lingkungan federated learning, dan menawarkan strategi untuk menskalakan dan membagi 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 secara aman di Trusted Execution Environment (TEE).
Pelatihan terdiri dari langkah-langkah berikut:
- FC Client di perangkat mendownload kunci enkripsi publik dari Layanan Kunci.
- Klien FC melakukan check-in dengan Server FC dan mendapatkan tugas pelatihan.
- FC Client mendownload rencana pelatihan, serta versi terbaru model, versi N.
- Klien FC melakukan pelatihan menggunakan data lokal dan rencana.
- FC Client mengenkripsi kontribusi perangkat ini dengan kunci publik yang diperoleh pada Langkah 0 dan menguploadnya ke FC Server.
- Klien FC memberi tahu Server FC bahwa pelatihannya telah selesai.
- Server FC menunggu hingga cukup banyak klien yang mengirimkan kontribusi mereka.
- Putaran penggabungan dipicu.
- Kontribusi terenkripsi dimuat ke dalam Trusted Execution Environment (TEE) oleh Agregator.
- Aggregator membuktikan dirinya, mengikuti RFC 9334 Remote ATtestation procedureS (RATS) Architecture NIST, kepada koordinator. Setelah pengesahan berhasil, Layanan Kunci akan memberikan kunci dekripsi kepadanya. Kunci ini dapat dibagi di beberapa penyedia kunci dalam skema berbagi rahasia Shamir.
- Agregator melakukan agregasi lintas perangkat, memotong dan menambahkan derau sesuai mekanisme Privasi Diferensial (DP) yang sesuai, dan menghasilkan output yang telah diberi derau.
- Aggregator memicu Pengupdate Model.
- Pengupdate Model memuat kontribusi gabungan dan menerapkannya ke model versi N untuk membuat model versi N + 1. Model baru akan 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 menyajikan contoh penerapan 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 Penugasan Tugas | Layanan web berbasis HTTPS tempat perangkat klien melakukan check-in secara berkala untuk mendapatkan tugas pelatihan dan melaporkan status pelatihan. |
| Agregator | Layanan latar belakang yang berjalan di Confidential Space. Menjalankan workload yang dibuat ODP. Perangkat harus mengatestasi koordinator, yang mengamankan akses ke kunci dekripsi. Hanya Agregator yang berhasil disahkan yang dapat mendekripsi kontribusi yang dikirimkan oleh perangkat klien dan melakukan agregasi lintas perangkat. |
| Pengupdate Model | Layanan latar belakang yang berjalan di Confidential Space yang menerapkan gradien gabungan ke model. |
Detail komponen
Bagian berikut memperluas arsitektur tingkat tinggi menjadi 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
Ini adalah serangkaian 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. Bagian ini mengelola alur pelatihan, misalnya membuat putaran dan iterasi pelatihan baru.
Database Tugas
Database yang kompatibel dengan ANSI SQL yang menyimpan informasi Tugas, Iterasi, dan Penugasan. Dalam penerapan ini, Google Cloud Spanner digunakan sebagai layanan database yang mendasarinya.
Layanan Penugasan Tugas
Task Assignment Service adalah layanan web frontend yang dihosting di GKE. FC Server 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
Penggabung dan Pengupdate Model serupa. Layanan ini adalah layanan latar belakang yang memproses data secara 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, yang di-clipping, dan yang diberi 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. Layanan ini akan memberi tahu Penggabung untuk memulai penggabungan setelah cukup banyak pengiriman 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 Layanan Kunci yang dimiliki oleh beberapa pihak. Hanya kode open source yang berhasil dibuktikan keasliannya dan ditulis oleh ODP yang berjalan di versi Confidential Space yang sah dan mendukung confidential computing 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 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:
- Layanan Web Penugasan Tugas
- Layanan Web Pengelolaan Tugas
- Instance Agregator
- Instance Updater Model
Ketahanan
Ketahanan Server FC ditangani oleh pemulihan dari bencana menggunakan penyimpanan yang direplikasi. Jika Anda 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 FC Server 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 multi-region.
Tidak ada data pengguna atau turunannya, baik mentah maupun terenkripsi, yang disimpan dalam instance Spanner mana pun. Anda dapat menggunakan fitur pemulihan dari bencana yang tersedia yang ditawarkan oleh Spanner.
Spanner mencatat histori perubahan. Aggregator dan Model Updater menyimpan data per putaran pelatihan dan hasil setiap putaran disimpan secara terpisah tanpa saling menimpa. Oleh karena itu, layanan dapat dilanjutkan dari pelatihan terakhir jika terjadi bencana.
Google Cloud Storage
Implementasi default FC Server 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 penggabung.
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 keuntungan/kerugian antara konsistensi dan ketersediaan, serta memilih fitur ketersediaan dan ketahanan 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 akan replikasi dan pencadangan tersebut. Oleh karena itu, perangkat ini kompatibel dengan produk dan layanan pencadangan dan replikasi yang disediakan pihak ketiga.