Wykorzystywanie TFF do sfederowanych badań naukowych

Przegląd

TFF to rozszerzalna, potężna platforma do prowadzenia badań związanych z uczeniem sfederowanym (FL) poprzez symulowanie sfederowanych obliczeń 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 jednej lokalizacji (np. na klientach lub serwerze). Ten kod jest zwykle pisany i testowany bez żadnych odniesień tff.* i może być ponownie użyty poza TFF. Na przykład na tym poziomie zaimplementowana jest pętla uczenia klienta w Federated Averaging .

  2. Logika aranżacji TensorFlow Federated, która łączy poszczególne tf.function s z 1. przez zawijanie ich jako tff.tf_computation s, a następnie orkiestrowanie 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 z zestawu danych, a następnie wykonując na tych klientach obliczenia stowarzyszone zdefiniowane w punkcie 2. Na przykład sterownik eksperymentu sfederowanego EMNIST .

Sfederowane zbiory danych edukacyjnych

Federacja TensorFlow obsługuje wiele zestawów danych , które są reprezentatywne dla charakterystyk rzeczywistych problemów, które można rozwiązać za pomocą sfederowanego uczenia się.

Zbiory danych obejmują:

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

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

  • Szekspir . Mniejszy tekstowy zbiór danych na poziomie znaków oparty na pełnych pracach 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 wierszy wypowiadanych przez postać w danej sztuce.

  • CIFAR-100 . Sfederowane partycjonowanie zestawu 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 API .

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

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

Symulacje wysokiej wydajności

Chociaż czas symulacji FL nie jest odpowiednim wskaźnikiem do oceny algorytmów (ponieważ sprzęt symulacyjny nie jest reprezentatywny dla rzeczywistych środowisk wdrożeniowych FL), możliwość szybkiego przeprowadzenia symulacji FL ma kluczowe znaczenie dla produktywności badawczej. W związku z tym firma TFF zainwestowała znaczne środki w zapewnienie wysokiej wydajności jedno- i wielomaszynowych środowisk uruchomieniowych. Dokumentacja jest w trakcie opracowywania, ale na razie zapoznaj się z samouczkiem Wysokowydajne symulacje z wykorzystaniem Kubernetes , instrukcjami dotyczącymi symulacji TFF z akceleratorami oraz instrukcjami dotyczącymi konfigurowania symulacji za pomocą TFF w GCP . Wysokowydajne środowisko wykonawcze TFF jest domyślnie włączone.

TFF dla różnych obszarów badawczych

Sfederowane algorytmy optymalizacji

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

W tym miejscu znajduje się minimalna samodzielna implementacja algorytmu uśredniania sfederowanego . Kod zawiera funkcje TF do obliczeń lokalnych, obliczenia TFF do aranżacji oraz skrypt sterownika w zestawie 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 w README .

Bardziej ogólną implementację uśredniania sfederowanego 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 sfederowanego uczenia się, w tym sfederowane grupowanie k-średnich, można znaleźć tutaj .

Kompresja aktualizacji modelu

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

Aby odtworzyć ostatnią pracę , zobacz ten projekt badawczy . Aby zaimplementować niestandardowy algorytm kompresji, zobacz porównanie_metody w projekcie dla linii bazowych jako przykład i samouczek agregatorów TFF , jeśli nie znasz go jeszcze.

Prywatność różnicowa

TFF współpracuje z biblioteką TensorFlow Privacy , aby umożliwić badania nad nowymi algorytmami sfederowanego uczenia 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 średniej 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 code ).

Solidność i ataki

TFF może być również używany do symulacji ataków ukierunkowanych na systemy federacyjnego uczenia się i mechanizmów obronnych opartych na prywatności różnicowej, o których mowa w artykule Czy naprawdę tylne sfederowane uczenie się? . Odbywa się to poprzez budowanie procesu iteracyjnego z potencjalnie złośliwymi klientami (zobacz build_federated_averaging_process_attacked ). Katalog target_attack zawiera więcej szczegółów.

  • Nowe algorytmy ataku można zaimplementować, pisząc funkcję aktualizacji klienta, która jest funkcją Tensorflow, zobacz 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.

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

Sieci generatywnych przeciwników

Sieci GAN tworzą interesujący wzorzec sfederowanej orkiestracji, który wygląda nieco inaczej niż standardowe uśrednianie sfederowane. Obejmują one dwie odrębne sieci (generator i dyskryminator), z których każda jest trenowana z własnym krokiem optymalizacji.

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

Personalizacja

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

Jednym z podejść jest umożliwienie każdemu klientowi precyzyjnego dostrojenia pojedynczego modelu globalnego (uczonego przy użyciu uczenia sfederowanego) z ich danymi lokalnymi. To podejście ma związek z meta-uczeniem się, patrz np. ten artykuł . Przykład takiego podejścia podano w emnist_p13n_main.py . Aby poznać i porównać różne strategie personalizacji, możesz:

  • Zdefiniuj strategię personalizacji, wdrażając funkcję tf.function , która zaczyna się od modelu początkowego, trenuje i ocenia spersonalizowany model przy użyciu lokalnych zbiorów danych każdego klienta. Przykład podaje build_personalize_fn .

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

Innym podejściem jest unikanie uczenia modelu w pełni globalnego przez uczenie części modelu całkowicie lokalnie. Przykład tego podejścia opisano w tym wpisie na blogu . To podejście jest również związane z metauczeniem się, zobacz ten artykuł . Aby poznać częściowo lokalną federację uczenia się, możesz: