Serwer obliczeniowy sfederowany do personalizacji na urządzeniu

Serwer Federated Compute (FC) jest częścią sfederowanego uczenia się oferowanego przez personalizację na urządzeniu (ODP). Celem tego dokumentu jest przedstawienie serwera Federated Compute Server (FC Server), jego komponentów i używanej technologii. Dokument zawiera ogólne omówienie architektury, a następnie szczegółowe informacje o poszczególnych komponentach. Opisuje też, jak poszczególne komponenty współpracują ze sobą, aby zapewnić środowisko sfederowanego uczenia się, oraz przedstawia strategie skalowania i dzielenia obciążeń.

Proces trenowania

Trenowanie polega na przepływie danych między klientem FC a serwerem FC. Klient FC to podstawowy moduł Androida, który trenuje modele ML na urządzeniu i współpracuje z serwerem FC. Serwer FC przetwarza i agreguje wyniki z klienta FC w bezpieczny sposób w zaufanym środowisku wykonawczym (TEE).

Trenowanie obejmuje te etapy:

Schemat blokowy przedstawiający proces trenowania między sfederowanym klientem obliczeniowym a serwerem w Piaskownicy prywatności na Androidzie.
  1. Klient FC na urządzeniu pobiera publiczny klucz szyfrowania z usług kluczy.
  2. Klient FC kontaktuje się z serwerem FC i otrzymuje zadanie szkoleniowe.
  3. Klient FC pobiera plan treningowy oraz najnowszą wersję modelu, czyli wersję N.
  4. Klient FC trenuje na podstawie danych lokalnych i planu.
  5. Klient FC szyfruje dane pochodzące z tego urządzenia za pomocą klucza publicznego uzyskanego w kroku 0 i przesyła je na serwer FC.
  6. Klient FC powiadamia serwer FC o zakończeniu szkolenia.
  7. Serwer FC czeka, aż wystarczająca liczba klientów prześle swoje dane.
  8. Rozpoczyna się runda agregacji.
  9. Zaszyfrowane dane są wczytywane do zaufanego środowiska wykonawczego (TEE) przez agregatora.
  10. Agregator potwierdza swoją tożsamość koordynatorom zgodnie z architekturą RFC 9334 Remote ATtestation procedureS (RATS) opracowaną przez NIST. Po pomyślnym potwierdzeniu usługa Key Services przyznaje mu klucze odszyfrowywania. Te klucze mogą być podzielone między wielu dostawców kluczy w ramach schematu udostępniania sekretów Shamira.
  11. Agregator przeprowadza agregację na różnych urządzeniach, przycina i dodaje szum do danych zgodnie z odpowiednimi mechanizmami prywatności różnicowej (DP) i przesyła wyniki z dodatkiem szumu.
  12. Pośrednik uruchamia aktualizator modelu.
  13. Aktualizator modeli wczytuje zagregowany wkład i stosuje go do wersji modelu N, aby utworzyć wersję modelu N+1. Nowy model jest przesyłany do pamięci modeli.

Serwer FC można wdrożyć w dowolnej usłudze w chmurze, która obsługuje środowiska TEE i powiązane funkcje zabezpieczeń. Oceniamy dostawców chmury publicznej i technologie bazowe, ale na razie w tej sekcji przedstawiamy przykładowe wdrożenie w Google Cloud z użyciem Confidential Space.

Architektura wysokiego poziomu

Serwer FC ma wdrożone w Google Cloud te komponenty:

Diagram przedstawiający architekturę serwera obliczeń federacyjnych Piaskownicy prywatności na Androida.
Komponent Opis
Usługa zarządzania zadaniami Usługa internetowa do zarządzania zadaniem trenowania. Partnerzy powinni używać interfejsu Task Management API do tworzenia zadań szkoleniowych, wyświetlania listy wszystkich istniejących zadań szkoleniowych, anulowania zadania i pobierania wszystkich stanów szkolenia.
Usługa przypisywania zadań Usługa internetowa oparta na protokole HTTPS, w której urządzenia klienckie okresowo sprawdzają, czy są dostępne zadania szkoleniowe, i zgłaszają stan szkolenia.
Właściciel witryny Usługa działająca w tle w Poufnej przestrzeni. Uruchamia zadania utworzone przez ODP. Musi potwierdzać to koordynatorom, którzy chronią dostęp do kluczy odszyfrowywania. Tylko zweryfikowani pośrednicy mogą odszyfrowywać dane przesłane przez urządzenia klienckie i przeprowadzać agregację na różnych urządzeniach.
Aktualizator modelu Usługa działająca w tle w Poufnej przestrzeni, która stosuje zagregowane gradienty do modelu.

Szczegóły komponentu

W kolejnych sekcjach znajdziesz bardziej szczegółowe informacje o architekturze:

Diagram przedstawiający komponenty serwera obliczeń sfederowanych Piaskownicy prywatności na Androida.

Usługa zarządzania zadaniami

Diagram przedstawiający topologię usługi zarządzania zadaniami Piaskownicy prywatności na Androida.

Usługa zarządzania zadaniami zawiera 2 podzespoły: internetową usługę zarządzania zadaniami i usługę harmonogramowania zadań. Oba są wdrażane w GKE.

Zarządzanie zadaniami

Jest to zestaw usług internetowych frontendu, które przyjmują żądania HTTPS i tworzą zadania w bazie danych zadań lub pobierają z niej zadania.

Harmonogram zadań

Usługa działająca w tle, która stale skanuje bazę danych zadań. Zarządza procesem trenowania, np. tworzy nowe rundy i iteracje trenowania.

Baza danych zadań

Baza danych zgodna z ANSI SQL, która przechowuje informacje o zadaniach, iteracjach i przypisaniach. W tej implementacji jako podstawowa usługa bazy danych jest używana Google Cloud Spanner.

Usługa przypisywania zadań

Diagram przedstawiający topologię usługi przypisywania zadań w Piaskownicy prywatności na Androida.

Usługa przypisywania zadań to internetowa usługa frontendowa hostowana w GKE. Odbiera żądania od klientów FC i w odpowiednich przypadkach rozdziela zadania szkoleniowe.

Baza danych zadań jest tutaj tą samą instancją bazy danych co baza danych zadań w usłudze zarządzania zadaniami.

Usługa agregacji

Diagram przedstawiający topologię usługi agregującej Piaskownicy prywatności na Androida.
Agregator i aktualizator modeli

Agregator i aktualizator modelu są podobne. Są to usługi działające w tle, które bezpiecznie przetwarzają dane w przestrzeni poufnej. Komunikacja między zadaniami offline odbywa się za pomocą PubSub.

Gradienty, zagregowane gradienty, model i plan
  • Miejsce na dane gradientów przesłanych (zaszyfrowanych) z urządzenia klienta.
  • Zagregowany magazyn gradientów na potrzeby zagregowanych, przyciętych i zaszumionych gradientów.
  • Model i miejsce na dane do przechowywania planów treningowych, modeli i wag.
Kolektor

Kolektor to usługa działająca w tle, która okresowo zlicza przesłane przez urządzenia klientów dane podczas rundy trenowania. Powiadamia on agregatora o rozpoczęciu agregacji, gdy dostępna jest wystarczająca liczba przesłanych danych.

Hosty usług

Wszystkie usługi, które nie mają dostępu do informacji poufnych, są hostowane w GKE.

Wszystkie usługi, które mogą mieć dostęp do informacji poufnych, są hostowane w przestrzeni poufnej.

Wszystkie dane wrażliwe są szyfrowane za pomocą kluczy szyfrowania zarządzanych przez usługi kluczy należące do wielu podmiotów. Tylko pomyślnie potwierdzony kod open source napisany przez ODP, który działa w prawidłowych wersjach Confidential Space z włączonym Confidential Computing, może uzyskać dostęp do kluczy odszyfrowywania.

W jednej jednostce usługi zasób obliczeniowy wygląda tak:

Diagram przedstawiający topologię jednostek usługowych Piaskownicy prywatności na Androida.

Skalowalność

Opisana wcześniej infrastruktura koncentruje się na jednej jednostce usługi.

Jednostka usługi korzysta z 1 instancji Cloud Spanner. Więcej informacji o istotnych ograniczeniach znajdziesz w sekcji Limity przydziału i limity systemu Spanner.

Każdy komponent tej architektury można skalować niezależnie. W tym celu skaluj pojemność w przestrzeni poufnej lub w klastrze GKE za pomocą standardowych mechanizmów skalowania. Moc obliczeniową można zwiększyć, dodając więcej instancji:

  • Usługa sieciowa przypisywania zadań
  • Usługa sieciowa zarządzania zadaniami
  • Instancje agregatora
  • Instancje aktualizatora modeli

Odporność

Odporność serwera FC jest zapewniana przez odtwarzanie po awarii przy użyciu replikowanej pamięci. Jeśli interesuje Cię odtwarzanie awaryjne, włącz replikację danych między regionami. Dzięki temu w przypadku katastrofy (np. zdarzenia pogodowego, które spowoduje przerwę w działaniu centrum danych) usługa zostanie wznowiona od ostatniej rundy trenowania.

Spanner

Domyślna implementacja serwera FC korzysta z usługi Google Cloud Spanner jako bazy danych do przechowywania stanu zadań, który jest używany do sterowania procesem trenowania. Zanim wybierzesz konfigurację obejmującą wiele regionów, oceń kompromisy między spójnością a dostępnością pod kątem potrzeb biznesowych.

W żadnej instancji Spanner nie są przechowywane dane użytkownika ani ich pochodne, ani w formie nieprzetworzonej, ani zaszyfrowanej. Możesz korzystać z dowolnych funkcji odtwarzania awaryjnego oferowanych przez Spannera.

Spanner rejestruje historię zmian. Agregator i aktualizator modelu przechowują dane z każdej rundy trenowania, a wyniki każdej rundy są przechowywane oddzielnie, bez wzajemnego nadpisywania. Dzięki temu w razie awarii usługa może wznowić działanie od ostatniej rundy trenowania.

Google Cloud Storage

Domyślna implementacja serwera FC wykorzystuje Google Cloud Storage do przechowywania danych binarnych, takich jak modele, plany trenowania i zaszyfrowane dane z urządzeń.

Projekt zawiera 3 instancje GCS:

  • Dane z urządzeń: zaszyfrowane dane z urządzeń przesłane z urządzeń.
  • Modele: plany treningowe, modele i ich wagi.
  • Gradienty zbiorcze: gradienty zbiorcze wygenerowane przez agregator.

Dane przechowywane w GCS to:

  • dane dostarczone przez dewelopera, np. plan treningowy, LUB
  • Potencjalnie prywatne dane, ponieważ pochodzą z sygnałów użytkownika (chronionych przez szyfrowanie z użyciem wielu koordynatorów), takich jak przesłane przez urządzenie gradienty i zagregowane gradienty, LUB
  • Dane nieprywatne pochodzące z sygnałów użytkowników, ale po zastosowaniu prywatności różnicowej, np. wagi modelu.

Oceń kompromisy między spójnością a dostępnością i wybierz odpowiednie funkcje dostępności i trwałości danych GCS. Powinieneś określić własne zasady przechowywania danych.

Replikacja i kopie zapasowe

Oprócz mechanizmów replikacji danych udostępnianych przez Google Cloud możesz też okresowo tworzyć kopie zapasowe danych w Spannerze i GCS. Możesz na przykład korzystać z usług i ofert replikacji w wielu chmurach. ODP nie udostępnia przykładu, ponieważ te konfiguracje są w dużym stopniu zależne od potrzeb biznesowych. Obecna konstrukcja uwzględnia potencjalne potrzeby deweloperów w zakresie takich replikacji i kopii zapasowych. Dzięki temu jest on zgodny z usługami i produktami do replikacji i tworzenia kopii zapasowych innych firm.