AI 101
Co czym jest Federated Learning?

Co czym jest Federated Learning?
Tradycyjna metoda szkolenia modeli AI polega na ustawieniu serwerów, na których modele są szkolone na danych, często za pomocą chmury obliczeniowej. Jednak w ciągu ostatnich kilku lat pojawiła się alternatywna forma tworzenia modeli, zwana federated learning. Federated learning przenosi modele uczenia maszynowego do źródła danych, zamiast przenosić dane do modelu. Federated learning łączy wiele urządzeń obliczeniowych w zdecentralizowany system, który pozwala poszczególnym urządzeniom, które zbierają dane, pomagać w szkoleniu modelu.
W systemie federated learning różne urządzenia, które są częścią sieci uczenia, mają kopię modelu na urządzeniu. Różne urządzenia/klienci szkolą własną kopię modelu przy użyciu lokalnych danych klienta, a następnie parametry/wagi z poszczególnych modeli są wysyłane do urządzenia głównego, czyli serwera, który agreguje parametry i aktualizuje globalny model. Ten proces szkolenia może być powtarzany, aż do osiągnięcia pożądanego poziomu dokładności. W skrócie, idea federated learning polega na tym, że żadne dane szkoleniowe nie są nigdy przesyłane między urządzeniami lub między stronami, tylko aktualizacje związane z modelem.
Federated learning można podzielić na trzy różne kroki lub fazy. Federated learning zwykle zaczyna się od ogólnego modelu, który służy jako punkt odniesienia i jest szkolony na centralnym serwerze. W pierwszym kroku, ten ogólny model jest wysyłany do klientów aplikacji. Następnie lokalne kopie są szkolone na danych wygenerowanych przez systemy klienta, ucząc się i poprawiając swoją wydajność.
W drugim kroku, klienci wysyłają swoje nauczone parametry modelu do centralnego serwera. To się dzieje okresowo, zgodnie z ustalonym harmonogramem.
W trzecim kroku, serwer agreguje nauczone parametry, gdy je otrzymuje. Po agregacji parametrów, centralny model jest aktualizowany i udostępniany ponownie klientom. Cały proces jest następnie powtarzany.
Korzyść z posiadania kopii modelu na różnych urządzeniach polega na tym, że opóźnienia sieciowe są zmniejszone lub wyeliminowane. Koszty związane z udostępnianiem danych serwerowi są również wyeliminowane. Inne korzyści federated learning obejmują fakt, że modele federated learning są zachowujące prywatność, a odpowiedzi modelu są personalizowane dla użytkownika urządzenia.
Przykłady modeli federated learning obejmują silniki rekomendacji, modele wykrywania oszustw i modele medyczne. Silniki rekomendacji, takie jak te używane przez Netflix lub Amazon, mogą być szkolone na danych zebranych z tysięcy użytkowników. Urządzenia klienta szkolą własne, oddzielne modele, a centralny model uczy się robić lepsze przewidywania, nawet jeśli poszczególne punkty danych są unikalne dla różnych użytkowników. Podobnie, modele wykrywania oszustw używane przez banki mogą być szkolone na wzorach aktywności z wielu różnych urządzeń, a garstka różnych banków może współpracować, aby szkolić wspólny model. W przypadku modelu medycznego federated learning, wiele szpitali może współpracować, aby szkolić wspólny model, który może rozpoznać potencjalne guzy za pomocą skanów medycznych.
Typy Federated Learning
Schematy federated learning zwykle dzielą się na dwie różne klasy: systemy wielopartyjne i systemy jednopartyjne. Systemy jednopartyjne federated learning są nazywane “jednopartyjnymi”, ponieważ tylko jedna jednostka jest odpowiedzialna za nadzorowanie przechwytywania i przepływu danych we wszystkich urządzeniach w sieci uczenia. Modele, które istnieją na urządzeniach klienta, są szkolone na danych o tej samej strukturze, chociaż punkty danych są zwykle unikalne dla poszczególnych użytkowników i urządzeń.
W przeciwieństwie do systemów jednopartyjnych, systemy wielopartyjne są zarządzane przez dwie lub więcej jednostek. Te jednostki współpracują, aby szkolić wspólny model, wykorzystując różne urządzenia i zestawy danych, do których mają dostęp. Parametry i struktury danych są zwykle podobne w urządzeniach należących do wielu jednostek, ale nie muszą być identyczne. Zamiast tego, przetwarzanie wstępne jest wykonywane w celu ujednolicenia wejść modelu. Neutralna jednostka może być zatrudniona do agregowania wag ustalonych przez urządzenia unikalne dla poszczególnych jednostek.
Ramy dla Federated Learning
Popularne ramy używane do federated learning obejmują Tensorflow Federated, Federated AI Technology Enabler (FATE) oraz PySyft. PySyft to biblioteka federated learning o otwartym kodzie źródłowym oparta na bibliotece głębokiego uczenia PyTorch. PySyft jest przeznaczony do zapewnienia prywatnego, bezpiecznego głębokiego uczenia się na serwerach i agentach przy użyciu szyfrowanego obliczania. Tymczasem Tensorflow Federated to inna ramka o otwartym kodzie źródłowym zbudowana na platformie Google Tensorflow. Oprócz umożliwienia użytkownikom tworzenia własnych algorytmów, Tensorflow Federated pozwala użytkownikom symulować wiele algorytmów federated learning na własnych modelach i danych. Wreszcie, FATE to również ramka o otwartym kodzie źródłowym zaprojektowana przez Webank AI, a jej celem jest dostarczenie ekosystemowi Federated AI bezpiecznej ramy obliczeniowej.
Wyzwania Federated Learning
Ponieważ federated learning jest jeszcze dość nowy, kilka wyzwań musi być jeszcze rozwiązanych, aby osiągnąć swój pełny potencjał. Możliwości szkoleniowe urządzeń brzegowych, etykietowanie i standaryzacja danych oraz zbieżność modelu są potencjalnymi przeszkodami dla podejść federated learning.
Możliwości obliczeniowe urządzeń brzegowych, jeśli chodzi o lokalne szkolenie, muszą być brane pod uwagę przy projektowaniu podejść federated learning. Chociaż większość smartfonów, tabletów i innych urządzeń zgodnych z IoT jest w stanie szkolić modele uczenia maszynowego, to zwykle wpływa na wydajność urządzenia. Kompromisy muszą być dokonane między dokładnością modelu a wydajnością urządzenia.
Etykietowanie i standaryzacja danych to kolejne wyzwanie, które systemy federated learning muszą pokonać. Modele uczenia nadzorowanego wymagają danych szkoleniowych, które są wyraźnie i spójnie oznaczone, co może być trudne do wykonania we wszystkich urządzeniach klienta, które są częścią systemu. Z tego powodu ważne jest rozwijanie potoków danych modelu, które automatycznie stosują etykiety w sposób standaryzowany na podstawie zdarzeń i akcji użytkownika.
Czas zbieżności modelu to kolejne wyzwanie dla federated learning, ponieważ modele federated learning zwykle wymagają więcej czasu, aby zbiec niż modele szkolone lokalnie. Liczba urządzeń biorących udział w szkoleniu dodaje element nieprzewidywalności do szkolenia modelu, ponieważ problemy z połączeniem, nieregularne aktualizacje i nawet różne czasy korzystania z aplikacji mogą przyczyniać się do zwiększonego czasu zbieżności i zmniejszonej niezawodności. Z tego powodu rozwiązania federated learning są zwykle najbardziej przydatne, gdy zapewniają znaczące korzyści w porównaniu z centralnym szkoleniem modelu, takimi jak przypadki, w których zestawy danych są niezwykle duże i rozproszone.

Photo: Jeromemetronome via Wikimedia Commons, CC By S.A. 4.0 (https://en.wikipedia.org/wiki/File:Federated_learning_process_central_case.png)












