Korzystanie z TFF w federalnych badaniach nad uczeniem się

Przegląd

TFF to rozszerzalna, wydajna platforma do prowadzenia badań w zakresie uczenia federacyjnego (FL) poprzez symulację obliczeń federacyjnych na realistycznych zbiorach danych proxy. Ta strona opisuje główne koncepcje i komponenty istotne dla symulacji badawczych, a także szczegółowe wskazówki dotyczące prowadzenia różnych rodzajów badań w TFF.

Typowa struktura kodu badawczego w TFF

Symulacja badawcza FL zaimplementowana w TFF zazwyczaj składa się z trzech głównych typów logiki.

  1. Poszczególne fragmenty kodu TensorFlow, zazwyczaj tf.function s, które hermetyzują logikę działającą w jednym miejscu (np. po stronie klienta lub serwera). Ten kod jest zazwyczaj pisany i testowany bez żadnych odwołań tff.* i może być ponownie wykorzystywany poza TFF. Na przykład pętla treningowa klienta w Federated Averaging jest zaimplementowana na tym poziomie.

  2. Logika orkiestracji federacyjnej TensorFlow, która łączy ze sobą poszczególne tf.function z 1. poprzez opakowanie ich jako funkcji tff.tensorflow.computation , a następnie orkiestruje je za pomocą abstrakcji, takich jak federated_language.federated_broadcast i federated_language.federated_mean wewnątrz federated_language.federated_computation . Zobacz na przykład tę orkiestrację dla Federated Averaging .

  3. Zewnętrzny skrypt sterownika, który symuluje logikę sterowania produkcyjnego systemu FL, wybierając symulowanych klientów z zestawu danych, a następnie wykonując na tych klientach obliczenia federacyjne zdefiniowane w punkcie 2. Na przykład sterownik eksperymentu federacyjnego EMNIST .

Zestawy danych do nauki federacyjnej

TensorFlow w trybie federacyjnym hostuje wiele zestawów danych , które są reprezentatywne dla cech rzeczywistych problemów, które można rozwiązać za pomocą uczenia federacyjnego.

Zestawy danych obejmują:

  • StackOverflow . Realistyczny zbiór danych tekstowych do modelowania języka lub zadań uczenia nadzorowanego, z 342 477 unikalnymi użytkownikami i 135 818 730 przykładami (zdaniami) w zestawie treningowym.

  • Federated EMNIST . Federacyjne przetwarzanie wstępne zbioru danych znaków i cyfr EMNIST, gdzie każdy klient odpowiada innemu autorowi. Pełny zestaw zawiera 3400 użytkowników z 671 585 przykładami z 62 etykiet.

  • Szekspir . Mniejszy zbiór danych tekstowych na poziomie znaków, oparty na dziełach kompletnych Williama Szekspira. Zbiór danych składa się z 715 użytkowników (bohaterów sztuk Szekspira), gdzie każdy przykład odpowiada ciągłemu zestawowi kwestii wypowiadanych przez postać w danej sztuce.

  • CIFAR-100 . Federacyjne partycjonowanie zbioru danych CIFAR-100 na 500 klientów szkoleniowych i 100 klientów testowych. Każdy klient ma 100 unikalnych przykładów. Partycjonowanie jest przeprowadzane w sposób zapewniający bardziej realistyczną heterogeniczność między klientami. Więcej informacji można znaleźć w interfejsie API .

  • Zbiór danych Google Landmark v2. Zbiór danych składa się ze zdjęć różnych światowych zabytków, pogrupowanych według fotografów, co pozwala na scentralizowane partycjonowanie danych. Dostępne są dwa rodzaje zbioru danych: mniejszy zbiór danych z 233 klientami i 23 080 obrazami oraz większy zbiór danych z 1262 klientami i 164 172 obrazami.

  • CelebA – zbiór przykładów (atrybutów wizerunku i twarzy) twarzy celebrytów. Zintegrowany zbiór danych grupuje przykłady każdej celebryty, tworząc klienta. Dostępnych jest 9343 klientów, z których każdy zawiera co najmniej 5 przykładów. Zbiór danych można podzielić na grupy szkoleniowe i testowe według klientów lub przykładów.

  • iNaturalist Zbiór danych składa się ze zdjęć różnych gatunków. Zbiór danych zawiera 120 300 zdjęć dla 1203 gatunków. Dostępnych jest siedem wariantów zbioru danych. Jeden z nich jest pogrupowany według fotografa i obejmuje 9257 klientów. Pozostałe zestawy danych są pogrupowane według lokalizacji geograficznej, w której wykonano zdjęcie. Te sześć wariantów zbioru danych obejmuje od 11 do 3606 klientów.

Symulacje o wysokiej wydajności

Chociaż czas zegarowy symulacji FL nie jest istotnym wskaźnikiem oceny algorytmów (ponieważ sprzęt symulacyjny nie jest reprezentatywny dla rzeczywistych środowisk wdrożeniowych FL), możliwość szybkiego uruchamiania symulacji FL ma kluczowe znaczenie dla produktywności badań. Dlatego TFF zainwestował znaczne środki w zapewnienie wydajnych środowisk uruchomieniowych dla pojedynczych i wielu maszyn. Dokumentacja jest w trakcie opracowywania, ale na razie zapoznaj się z instrukcjami dotyczącymi symulacji TFF z akceleratorami oraz instrukcjami dotyczącymi konfigurowania symulacji z TFF na platformie GCP . Wysokowydajne środowisko uruchomieniowe TFF jest domyślnie włączone.

TFF dla różnych obszarów badawczych

Algorytmy optymalizacji federacyjnej

Badania nad algorytmami optymalizacji federacyjnej można prowadzić w TFF na różne sposoby, zależnie od pożądanego poziomu dostosowania.

Poniżej przedstawiono minimalną, samodzielną implementację algorytmu Federated Averaging . Kod zawiera funkcje TF do obliczeń lokalnych, obliczenia TFF do orkiestracji oraz skrypt sterownika dla zbioru danych EMNIST. Pliki te można łatwo dostosować do własnych aplikacji i zmian algorytmicznych, postępując zgodnie ze szczegółowymi instrukcjami zawartymi w pliku README .

Bardziej ogólną implementację uśredniania federacyjnego można znaleźć tutaj . Implementacja ta umożliwia bardziej zaawansowane techniki optymalizacji, w tym użycie różnych optymalizatorów zarówno po stronie serwera, jak i klienta. Inne algorytmy uczenia federacyjnego, w tym klastrowanie metodą k-średnich, można znaleźć tutaj .

Kompresja aktualizacji modelu

Stratna kompresja aktualizacji modelu może prowadzić do obniżenia kosztów komunikacji, co z kolei może się przełożyć na skrócenie całkowitego czasu szkolenia.

Aby odtworzyć niedawny artykuł , zapoznaj się z tym projektem badawczym . Aby zaimplementować niestandardowy algorytm kompresji, zapoznaj się z przykładem wartości bazowych w sekcji „comparation_methods” w projekcie oraz samouczkiem dotyczącym agregatorów TFF, jeśli nie znasz go jeszcze.

Prywatność różnicowa

Biblioteka TFF jest interoperacyjna z biblioteką TensorFlow Privacy , co umożliwia badania nad nowymi algorytmami federacyjnego trenowania modeli z różnicową prywatnością. Przykład trenowania z wykorzystaniem DP z wykorzystaniem podstawowego algorytmu DP-FedAvg i rozszerzeń można znaleźć w tym sterowniku eksperymentalnym .

Jeśli chcesz zaimplementować niestandardowy algorytm DP i zastosować go do zagregowanych aktualizacji uśredniania federacyjnego, możesz zaimplementować nowy algorytm średniej DP jako podklasę tensorflow_privacy.DPQuery i utworzyć obiekt tff.aggregators.DifferentiallyPrivateFactory z instancją swojego zapytania. Przykład implementacji algorytmu DP-FTRL można znaleźć tutaj.

Zintegrowane sieci GAN (opisane poniżej ) stanowią kolejny przykład projektu TFF implementującego różnicową prywatność na poziomie użytkownika (np. tutaj w kodzie ).

Wytrzymałość i ataki

TFF można również wykorzystać do symulacji ukierunkowanych ataków na systemy uczenia federacyjnego oraz różnicowych mechanizmów obronnych opartych na prywatności, omówionych w dokumencie „Czy naprawdę można wejść tylnymi drzwiami do systemów uczenia federacyjnego? ”. Odbywa się to poprzez zbudowanie iteracyjnego procesu z potencjalnie złośliwymi klientami (patrz build_federated_averaging_process_attacked ). Więcej szczegółów można znaleźć w katalogu targeted_attack .

  • Nowe algorytmy ataków można wdrożyć poprzez napisanie funkcji aktualizacji klienta, która jest funkcją Tensorflow; przykład można znaleźć w ClientProjectBoost .
  • Nowe mechanizmy obronne można wdrożyć poprzez dostosowanie polecenia „tff.utils.StatefulAggregateFn” , które agreguje dane wyjściowe klienta w celu uzyskania globalnej aktualizacji.

Przykładowy skrypt symulacji można znaleźć w pliku emnist_with_targeted_attack.py .

Generatywne sieci przeciwstawne

Sieci GAN stanowią interesujący wzorzec federacyjnej orkiestracji , który nieco różni się od standardowego uśredniania federacyjnego. Obejmują one dwie odrębne sieci (generator i dyskryminator), z których każda jest trenowana z własnym krokiem optymalizacji.

TFF może być wykorzystywany do badań nad federacyjnym uczeniem sieci GAN. Na przykład algorytm DP-FedAvg-GAN przedstawiony w niedawnej pracy został zaimplementowany w TFF . Praca ta demonstruje skuteczność łączenia federacyjnego uczenia się, modeli generatywnych i różnicowej prywatności .

Personalizacja

Personalizacja w kontekście uczenia federacyjnego jest aktywnym obszarem badań. Celem personalizacji jest zapewnienie różnych modeli wnioskowania różnym użytkownikom. Istnieją potencjalnie różne podejścia do tego problemu.

Jednym z podejść jest umożliwienie każdemu klientowi dostrojenia pojedynczego modelu globalnego (wytrenowanego z wykorzystaniem uczenia federacyjnego) na podstawie danych lokalnych. To podejście jest powiązane z metauczeniem, patrz np. ten artykuł . Przykład tego podejścia podano w pliku emnist_p13n_main.py . Aby zbadać i porównać różne strategie personalizacji, możesz:

  • Zdefiniuj strategię personalizacji, implementując tf.function , która rozpoczyna się od modelu początkowego, trenuje i ocenia spersonalizowany model, wykorzystując lokalne zestawy danych każdego klienta. Przykład podano w build_personalize_fn .

  • Zdefiniuj OrderedDict , który mapuje nazwy strategii na odpowiadające im strategie personalizacji, i użyj go jako argumentu personalize_fn_dict w tff.learning.build_personalization_eval_computation .

Innym podejściem jest uniknięcie trenowania modelu w pełni globalnego poprzez trenowanie jego części całkowicie lokalnie. Przykład tego podejścia opisano w tym wpisie na blogu . To podejście jest również powiązane z metauczeniem, patrz ten artykuł .