Wykorzystywanie TFF do sfederowanych badań naukowych

Przegląd

TFF to rozszerzalna, potężna platforma do prowadzenia badań w zakresie uczenia federacyjnego (FL) poprzez symulowanie obliczeń federacyjnych na realistycznych zestawach danych proxy. Ta strona opisuje główne koncepcje i komponenty, które są 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, zwykle tf.function s, które hermetyzują logikę działającą w jednym miejscu (np. na klientach lub na serwerze). Ten kod jest zwykle zapisywany i testowany bez żadnych odwołań do tff.* i może być ponownie używany poza TFF. Na przykład pętla szkolenia klienta w Federated Averaging jest zaimplementowana na tym poziomie.

  2. Federacyjna logika orkiestracji TensorFlow, która łączy poszczególne tf.function od 1. przez zawijanie ich jako tff.tf_computation s, a następnie organizowanie ich przy użyciu abstrakcji, takich jak tff.federated_broadcast i tff.federated_mean wewnątrz tff.federated_computation . Zobacz na przykład tę aranżację dla Federated Averaging .

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

Federacyjne zestawy danych do nauki

Federacja TensorFlow obsługuje wiele zestawów danych , które są reprezentatywne dla charakterystyki rzeczywistych problemów, które można rozwiązać za pomocą nauki federacyjnej.

Zestawy danych obejmują:

  • Przepełnienie stosu . Realistyczny zestaw danych tekstowych do modelowania języka lub zadań nadzorowanego uczenia się, z 342 477 unikalnymi użytkownikami i 135 818 730 przykładami (zdaniami) w zbiorze szkoleniowym.

  • Federacja EMNISTÓW . Federacyjne wstępne przetwarzanie zestawu danych znaków i cyfr EMNIST, w którym każdy klient odpowiada innemu autorowi. Pełny zestaw pociągów zawiera 3400 użytkowników z 671 585 przykładami z 62 etykiet.

  • Szekspir . Mniejszy zestaw danych tekstowych na poziomie znaków oparty na wszystkich dziełach Williama Szekspira. Zbiór danych składa się z 715 użytkowników (postaci ze sztuk Szekspira), gdzie każdy przykład odpowiada ciągłemu zestawowi wersów 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 odbywa się w taki sposób, aby stworzyć bardziej realistyczną heterogeniczność między klientami. Aby uzyskać więcej informacji, zobacz interfejs API .

  • Zbiór danych Google Landmark v2 Zbiór danych składa się ze zdjęć różnych punktów orientacyjnych na świecie, z obrazami pogrupowanymi według fotografa w celu uzyskania federacyjnego podziału danych. Dostępne są dwa rodzaje zestawów danych: mniejszy zestaw danych z 233 klientami i 23080 obrazami oraz większy zestaw danych z 1262 klientami i 164172 obrazami.

  • CelebA Zbiór danych przykładów (atrybutów obrazu i twarzy) twarzy celebrytów. Sfederowany zestaw danych zawiera przykłady każdej gwiazdy pogrupowane w celu utworzenia klienta. Istnieje 9343 klientów, każdy z co najmniej 5 przykładami. Zestaw danych można podzielić na grupy pociągów i testów 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 obrazów dla 1203 gatunków. Dostępnych jest siedem odmian zestawu danych. Jedna z nich jest pogrupowana przez fotografa i składa się z 9257 klientów. Pozostałe zestawy danych są pogrupowane według lokalizacji geograficznej, w której wykonano zdjęcie. Te sześć smaków zestawu danych składa się z 11 - 3606 klientów.

Symulacje o wysokiej wydajności

Chociaż czas zegara ściennego symulacji FL nie jest odpowiednią miarą do 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 badawczej. Dlatego firma TFF dużo zainwestowała w zapewnienie wysokowydajnych środowisk pracy dla jednej 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 w GCP . Środowisko uruchomieniowe TFF o wysokiej wydajności jest domyślnie włączone.

TFF dla różnych obszarów badawczych

Sfederowane algorytmy optymalizacji

Badania nad federacyjnymi algorytmami optymalizacji można przeprowadzić w TFF na różne sposoby, w zależności od pożądanego poziomu dostosowania.

Minimalna samodzielna implementacja algorytmu Federated Averaging jest opisana tutaj . Kod zawiera funkcje TF do obliczeń lokalnych, obliczenia TFF do orkiestracji oraz skrypt sterownika na zbiorze danych EMNIST jako przykład. Pliki te można łatwo dostosować do niestandardowych aplikacji i zmian algorytmicznych, postępując zgodnie ze szczegółowymi instrukcjami zawartymi w pliku README .

Bardziej ogólną implementację Federated Averaging można znaleźć tutaj . Ta implementacja pozwala na bardziej wyrafinowane techniki optymalizacji, w tym użycie różnych optymalizatorów zarówno na serwerze, jak i na kliencie. Inne algorytmy uczenia federacyjnego, w tym federacyjne grupowanie k-średnich, można znaleźć tutaj .

Kompresja aktualizacji modelu

Stratna kompresja aktualizacji modeli może prowadzić do zmniejszenia kosztów komunikacji, co z kolei może prowadzić do skrócenia ogólnego czasu szkolenia.

Aby odtworzyć najnowszy artykuł , zobacz ten projekt badawczy . Aby zaimplementować niestandardowy algorytm kompresji, zobacz porównania_metody w projekcie jako przykład dla linii bazowych i samouczek TFF Agregators , jeśli jeszcze go nie znasz.

Prywatność różnicowa

TFF współpracuje z biblioteką TensorFlow Privacy , umożliwiając badanie nowych algorytmów do federacyjnego szkolenia modeli z różnicową prywatnością. Aby zapoznać się z przykładem szkolenia z DP przy użyciu podstawowego algorytmu DP-FedAvg i rozszerzeń , zobacz ten sterownik eksperymentu .

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

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

Wytrzymałość i ataki

TFF może być również używany do symulacji ukierunkowanych ataków na federacyjne systemy uczenia się i obrony opartej na prywatności różnicowej, omówionej w artykule Czy naprawdę możesz tylnymi drzwiami Federated Learning? . Odbywa się to poprzez budowanie procesu iteracyjnego z potencjalnie złośliwymi klientami (patrz build_federated_averaging_process_attacked ). Katalog target_attack zawiera więcej szczegółów.

  • Nowe algorytmy atakujące można zaimplementować, pisząc funkcję aktualizacji klienta, która jest funkcją Tensorflow, patrz przykład ClientProjectBoost .
  • Nowe zabezpieczenia można wdrożyć, dostosowując „tff.utils.StatefulAggregateFn” , który agreguje dane wyjściowe klienta w celu uzyskania globalnej aktualizacji.

Aby zapoznać się z przykładowym skryptem do symulacji, zobacz emnist_with_targeted_attack.py .

Generatywne sieci przeciwników

Sieci GAN tworzą interesujący federacyjny wzorzec orkiestracji , który wygląda trochę inaczej niż standardowe federacyjne uśrednianie. Obejmują one dwie odrębne sieci (generator i dyskryminator), z których każda jest trenowana za pomocą własnego kroku optymalizacji.

TFF można wykorzystać do badań nad federacyjnym szkoleniem sieci GAN. Na przykład przedstawiony w ostatnich pracach algorytm DP-FedAvg-GAN jest zaimplementowany w TFF . Ta praca pokazuje skuteczność łączenia federacyjnego uczenia się, modeli generatywnych i zróżnicowanej prywatności .

Personalizacja

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

Jednym ze sposobów jest umożliwienie każdemu klientowi precyzyjnego dostrojenia pojedynczego modelu globalnego (wyszkolonego przy użyciu uczenia federacyjnego) z jego lokalnymi danymi. To podejście ma powiązania z metauczeniem, patrz np. ten artykuł . Przykład takiego podejścia podano w 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, uczy i ocenia spersonalizowany model przy użyciu lokalnych zestawów danych każdego klienta. Przykład podaje build_personalize_fn .

  • Zdefiniuj OrderedDict , który odwzorowuje nazwy strategii na odpowiednie strategie personalizacji i użyj go jako argumentu personalize_fn_dict w tff.learning.build_personalization_eval_computation .

Innym podejściem jest unikanie uczenia w pełni globalnego modelu przez trenowanie części modelu całkowicie lokalnie. Instancja tego podejścia jest opisana w tym poście na blogu . To podejście jest również związane z metauczeniem, patrz ten artykuł . Aby poznać częściowo lokalne federacyjne uczenie się, możesz: