AI 101

Co to jest Federated Learning?

mm

Co to 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 przynosi modele uczenia maszynowego do źródła danych, zamiast przynosić dane do modelu. Federated learning łączy wiele urządzeń obliczeniowych w zdecentralizowany system, który pozwala poszczególnym urządzeniom, które zbierają dane, pomóc 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żna powtarzać, aż do uzyskania pożądanego poziomu dokładności. Krótko mówiąc, idea federated learning polega na tym, że żadne dane szkoleniowe nie są przesyłane między urządzeniami lub między stronami, tylko aktualizacje związane z modelem są.

Federated learning można podzielić na trzy różne etapy. 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 etapie 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 swoje wyniki.

W drugim etapie klienci wysyłają swoje nauczone parametry modelu do centralnego serwera. To się dzieje okresowo, według ustalonego harmonogramu.

W trzecim etapie 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ą zmniejszane lub eliminowane. Koszty związane z udostępnianiem danych serwerowi są również eliminowane. 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 federated learning medycznego 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 federated learning jednopartyjne nazywane są “jednopartyjnymi”, ponieważ tylko jedna jednostka jest odpowiedzialna za nadzorowanie zbierania 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 różnych 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 różnych jednostek, ale nie muszą być identyczne. Zamiast tego, przetwarzanie wstępne jest wykonywane w celu ustandaryzowania danych wejściowych modelu. Neutralna jednostka może być zatrudniona do agregacji wag ustalonych przez urządzenia unikalne dla różnych 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 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 zapewnienie 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ąć pełny potencjał. Możliwości obliczeniowe 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 szkolenie lokalne, muszą być brane pod uwagę przy projektowaniu podejść federated learning. Chociaż większość smartfonów, tabletów i innych urządzeń IoT jest w stanie szkolić modele uczenia maszynowego, to zwykle wpływa na wydajność urządzenia. Kompromisy muszą być zawarte 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 osiągnięcia w przypadku wielu urządzeń klienta, które są częścią systemu. Dlatego ważne jest opracowanie 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. Dlatego 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.

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

Blogger i programista ze specjalnościami w Machine Learning i Deep Learning tematy. Daniel liczy, że pomoże innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.