Pomoc chronić Wielkiej Rafy Koralowej z TensorFlow na Kaggle Dołącz Wyzwanie

Korzystanie z TFF do badań sfederowanego uczenia się

Przegląd

TFF to rozszerzalna, zaawansowana 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, zazwyczaj tf.function s, że logika hermetyzacji, która działa w jednym miejscu (np na klientach lub na serwerze). Kod ten jest zwykle napisane i przetestowane bez tff.* Odniesienia i może być ponownie wykorzystane poza TFF. Na przykład, klient pętla szkolenia w Federacji uśredniania jest realizowany na tym poziomie.

  2. TensorFlow Federalne instrumentacji logiczny, który łączy ze sobą poszczególne tf.function sz 1. owijając je jako tff.tf_computation s, a następnie za pomocą ich koordynowaniu abstrakcje jak tff.federated_broadcast i tff.federated_mean wewnątrz tff.federated_computation . Patrz, na przykład, to orkiestracji dla Federalne uśredniania .

  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 obliczenia stowarzyszone zdefiniowane w punkcie 2. na tych klientach. Na przykład, kierowca eksperyment Federalne EMNIST .

Sfederowane zbiory danych edukacyjnych

TensorFlow stowarzyszone gospodarze wielokrotne zestawy danych , które są reprezentatywne dla charakterystyk rzeczywistych problemów, które mogą być rozwiązane z stowarzyszonym nauki.

Zbiory danych obejmują:

  • StackOverflow. 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.

  • Federalne 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 dramatów 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 .

  • Google Landmark v2 zbiór danych Zbiór danych składa się z zdjęć z różnych punktach świata, z obrazami zgrupowanych przez fotografa osiągnąć stowarzyszonego partycjonowanie 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 z przykładami (image) i atrybutów twarzy twarze celebrytów. Sfederowany zestaw danych zawiera pogrupowane razem przykłady celebrytów w celu utworzenia klienta. Istnieje 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 Zestaw danych składa się z zdjęć z 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

Podczas gdy czas ścianie zegar symulacji FL nie jest to istotne dla oceny algorytmów metryczny (jak sprzętowa symulacja nie jest reprezentatywna dla rzeczywistych środowiskach wdrażania FL), będąc w stanie uruchomić FL symulacje szybko ma kluczowe znaczenie dla wydajności pracy 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 fazie rozwoju, ale teraz zobaczyć symulacje wysoka wydajność z TFF tutorialu, instrukcje TFF symulacje z akceleratorów oraz instrukcje dotyczące konfigurowania symulacje z TFF na 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.

Minimalny realizacja samodzielna z uśredniania Federalne warunkiem jest algorytmem tutaj . Kod zawiera funkcje TF dla lokalnej obliczeń, obliczenia TFF do orkiestracji oraz skrypt kierowcy na zbiorze EMNIST jako przykład. Pliki te mogą być łatwo dostosowane do zindywidualizowanych applciations i algorytmicznych zmian następujących szczegółowych instrukcji w pliku README .

Bardziej ogólnie realizacja Federalne uśredniania można znaleźć tutaj . Ta implementacja pozwala na bardziej wyrafinowane techniki optymalizacji, w tym planowanie szybkości uczenia się i użycie różnych optymalizatorów zarówno na serwerze, jak i na kliencie. Kod, który stosuje tę uogólnioną Federalne Uśrednianie do różnych zadań i stowarzyszonych zestawów danych można znaleźć tutaj .

Kompresja modelu i aktualizacji

TFF używa tensor_encoding API umożliwiają algorytmy kompresji stratnej, aby zmniejszyć koszty communicatation między serwerem a klientami. Na przykład szkolenie z serwera do klienta i klient-serwer kompresji za pomocą uśredniania Federalne algorytmu zobaczyć ten eksperyment .

Aby zaimplementować niestandardowy algorytm kompresji i zastosować go do pętli treningowej, możesz:

  1. Wdrożenie nowego algorytmu kompresji jako podklasa EncodingStageInterface lub jego bardziej ogólnym wariancie AdaptiveEncodingStageInterface poniższym przykładzie .
  2. Skonstruować nowy Encoder i specjalizują się go do modelu transmisji lub modelu aktualizacji uśredniania .
  3. Korzystania z tych obiektów, aby zbudować całą obliczeń treningowy .

Prywatność różnicowa

TFF może współpracować z TensorFlow prywatności biblioteki do umożliwienia badania w nowych algorytmów stowarzyszonym szkolenia modeli z rozmazem prywatności. Na przykład szkolenia z DP z wykorzystaniem podstawowej DP-FedAvg algorytm i rozszerzenia , widzieć ten sterownik eksperymentu .

Jeśli chcesz zaimplementować algorytm niestandardowy DP i zastosować go do zbiorczych aktualizacji stowarzyszonym uśredniania można wdrożyć nowy DP średnią algorytm jako podklasa tensorflow_privacy.DPQuery i stworzyć tff.aggregators.DifferentiallyPrivateFactory z instancją zapytania. Przykładem realizacji algorytmu DP-FTRL można znaleźć tutaj

Stowarzyszone GANS (opisane poniżej ) mają inny przykład projektu TFF wykonawczego prywatność różnicy na poziomie użytkownika (na przykład tutaj kodem ).

Solidność i ataki

TFF może być również używany do symulacji ukierunkowanych ataków na federacyjnych systemów kształcenia i różnicowe obronnych opartych prywatności uznanych w naprawdę można Tylne drzwi Federalne Learning? . Odbywa się to poprzez budowanie iteracyjny proces potencjalnie złośliwych klientów (patrz build_federated_averaging_process_attacked ). Targeted_attack katalog zawiera więcej szczegółów.

  • Nowe algorytmy kontry mogą być realizowane poprzez napisanie funkcji aktualizacji klienta, która jest funkcją Tensorflow patrz ClientProjectBoost dla przykładu.
  • Nowe mechanizmy obronne mogą być realizowane przez dostosowanie „tff.utils.StatefulAggregateFn” który agreguje wyjść klienta, aby uzyskać globalną aktualizację.

Dla przykładowego skryptu do symulacji, patrz emnist_with_targeted_attack.py .

Sieci generatywnych przeciwników

Gans dokonać ciekawej stowarzyszonym orkiestracji wzór , który wygląda trochę inaczej niż standardowe Federalne uśredniania. 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 prac jest realizowany w TFF . Praca ta pokazuje skuteczność uczenia się, łącząc stowarzyszonego modele generatywne i różnicową prywatności .

Personalizacja

Personalizacja w środowisku sfederowanego uczenia się 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 dostrojenia pojedynczego modelu globalnego (uczonego przy użyciu sfederowanego uczenia się) z ich danymi lokalnymi. Takie podejście ma połączenia z meta-uczenia się, patrz, np niniejszym opracowaniu . Przykładem takiego podejścia jest podana w emnist_p13n_main.py . Aby poznać i porównać różne strategie personalizacji, możesz:

  • Określenie strategii personalizacji poprzez wdrożenie tf.function że zaczyna się od pierwszych modeli, pociągi i ocenia indywidualną modelu za pomocą lokalnych zestawów danych każdego klienta. Przykładem jest przez build_personalize_fn .

  • Definiowanie OrderedDict który mapuje nazwy strategii do odpowiednich strategii personalizacji i używać go jako personalize_fn_dict argument tff.learning.build_personalization_eval .