Start Nachrichten Federated Learning, Teil 1: Die Grundlagen von Trainingsmodellen, in denen die Daten...

Federated Learning, Teil 1: Die Grundlagen von Trainingsmodellen, in denen die Daten gespeichert sind

13
0
Federated Learning, Teil 1: Die Grundlagen von Trainingsmodellen, in denen die Daten gespeichert sind

Ich habe das Konzept des Federated Learning (FL) anhand eines Comics von Google aus dem Jahr 2019 kennengelernt. Es war ein brillantes Stück und hat hervorragend erklärt, wie Produkte verbessert werden können, ohne Benutzerdaten in die Cloud zu senden. In letzter Zeit wollte ich die technische Seite dieses Bereichs genauer verstehen. Trainingsdaten sind zu einem so wichtigen Gut geworden, da sie für die Erstellung guter Modelle unerlässlich sind. Viele davon bleiben jedoch ungenutzt, weil sie fragmentiert, unstrukturiert oder in Silos eingeschlossen sind.

Als ich anfing, dieses Gebiet zu erkunden, fand ich das Blumenrahmen um die unkomplizierteste und anfängerfreundlichste Art zu sein, in FL durchzustarten. Es ist Open Source, die Dokumentation ist klar und die Community ist sehr aktiv und hilfsbereit. Dies ist einer der Gründe für mein erneutes Interesse an diesem Bereich.

Dieser Artikel ist der erste Teil einer Reihe, in der ich mich eingehender mit föderiertem Lernen befasse. Dabei gehe ich darauf ein, was es ist, wie es implementiert wird, welche offenen Probleme es mit sich bringt und warum es in datenschutzrelevanten Umgebungen wichtig ist. In den nächsten Teilen werde ich tiefer auf die praktische Umsetzung mit dem eingehen Blumediskutieren Sie den Datenschutz beim föderierten Lernen und untersuchen Sie, wie sich diese Ideen auf fortgeschrittenere Anwendungsfälle übertragen lassen.

Wenn zentralisiertes maschinelles Lernen nicht ideal ist

Wir wissen, dass KI-Modelle auf großen Datenmengen basieren, doch viele der nützlichsten Daten sind sensibel, verteilt und schwer zugänglich. Denken Sie an Daten in Krankenhäusern, Telefonen, Autos, Sensoren und anderen Edge-Systemen. Datenschutzbedenken, lokale Regeln, begrenzter Speicher und Netzwerkbeschränkungen machen die Übertragung dieser Daten an einen zentralen Ort sehr schwierig oder sogar unmöglich. Dadurch bleiben große Mengen wertvoller Daten ungenutzt. Im Gesundheitswesen ist dieses Problem besonders sichtbar. Krankenhäuser erzeugen jedes Jahr Dutzende Petabytes an Daten, Studien gehen jedoch davon aus, dass es bis zu 10 Petabytes an Daten sind 97 % dieser Daten bleiben ungenutzt .

Traditionelles maschinelles Lernen geht davon aus, dass alle Trainingsdaten an einem Ort gesammelt werden können, normalerweise auf einem zentralen Server oder Rechenzentrum. Dies funktioniert, wenn Daten frei verschoben werden können, funktioniert jedoch nicht, wenn die Daten privat oder geschützt sind. In der Praxis hängt ein zentralisiertes Training auch von stabiler Konnektivität, ausreichender Bandbreite und geringer Latenz ab, was in verteilten oder Edge-Umgebungen nur schwer zu gewährleisten ist.

In solchen Fällen gibt es zwei häufige Möglichkeiten. Eine Möglichkeit besteht darin, die Daten überhaupt nicht zu nutzen, was bedeutet, dass wertvolle Informationen in Silos eingeschlossen bleiben.

Die andere Möglichkeit besteht darin, jede lokale Entität ein Modell anhand ihrer eigenen Daten trainieren zu lassen und nur das weiterzugeben, was das Modell lernt, während die Rohdaten niemals ihren ursprünglichen Speicherort verlassen. Diese zweite Option bildet die Grundlage des föderierten Lernens, das es Modellen ermöglicht, aus verteilten Daten zu lernen, ohne diese zu verschieben. Ein bekanntes Beispiel ist Google Gboard auf Android, wo Funktionen wie die Vorhersage des nächsten Wortes und Intelligentes Verfassenlaufen auf Hunderten Millionen Geräten.

Föderiertes Lernen: Das Modell auf die Daten übertragen

Föderiertes Lernen kann als eine kollaborative Einrichtung für maschinelles Lernen betrachtet werden, bei der das Training stattfindet, ohne dass Daten an einem zentralen Ort gesammelt werden. Bevor wir uns ansehen, wie es unter der Haube funktioniert, sehen wir uns einige Beispiele aus der Praxis an, die zeigen, warum dieser Ansatz in Umgebungen mit hohem Risiko wichtig ist, die sich über Bereiche vom Gesundheitswesen bis hin zu sicherheitsrelevanten Umgebungen erstrecken.

Gesundheitspflege

Im Gesundheitswesen ermöglichte föderiertes Lernen ein frühzeitiges COVID-Screening Kuriale KI ein System, das in mehreren NHS-Krankenhäusern unter Verwendung routinemäßiger Vitalparameter und Bluttests trainiert wird. Da Patientendaten nicht zwischen Krankenhäusern ausgetauscht werden konnten, wurde die Schulung lokal an jedem Standort durchgeführt und es wurden nur Modellaktualisierungen ausgetauscht. Das resultierende globale Modell ließ sich besser verallgemeinern als Modelle, die in einzelnen Krankenhäusern trainiert wurden, insbesondere wenn es an unbekannten Standorten evaluiert wurde.

Medizinische Bildgebung

Eine von Nature veröffentlichte Studie zu Netzhautfundamentmodellen, die hervorhebt, wie groß angelegte medizinische Bildgebungsmodelle anhand sensibler Augendaten trainiert werden können | Open Access

Föderiertes Lernen wird auch in der medizinischen Bildgebung untersucht. Forscher am UCL und am Moorfields Eye Hospital nutzen es zur Feinabstimmung großer Sehgrundlagenmodelle für empfindliche Augenscans, die nicht zentralisiert werden können.

Verteidigung

Über das Gesundheitswesen hinaus wird föderiertes Lernen auch in sicherheitsrelevanten Bereichen wie der Verteidigung und der Luftfahrt eingesetzt. Dabei werden Modelle auf verteilte physiologische und betriebliche Daten trainiert, die lokal bleiben müssen.

Verschiedene Arten des Federated Learning

Auf einer übergeordneten Ebene kann Federated Learning basierend auf einigen gängigen Typen gruppiert werden wer die Kunden sindUnd wie die Daten aufgeteilt werden .

• Geräteübergreifendes vs. siloübergreifendes föderiertes Lernen

Geräteübergreifendes föderiertes Lernen Die Nutzung vieler Clients, die bis zu Millionen umfassen können, wie persönliche Geräte oder Telefone, umfasst jeweils eine kleine Menge lokaler Daten und eine unzuverlässige Konnektivität. Zu einem bestimmten Zeitpunkt nimmt jedoch nur ein kleiner Bruchteil der Geräte an einer bestimmten Runde teil. Google Gboard ist ein typisches Beispiel für dieses Setup.

Siloübergreifend föderiertes Lernen, auf der anderen Seite, Beteiligt ist eine viel kleinere Anzahl von Kunden, in der Regel Organisationen wie Krankenhäuser oder Banken. Jeder Client verfügt über einen großen Datensatz und verfügt über stabile Rechenleistung und Konnektivität. Die meisten realen Anwendungsfälle in Unternehmen und im Gesundheitswesen sehen aus wie siloübergreifendes, föderiertes Lernen.

• Horizontales vs. vertikales föderiertes Lernen

Visualisierung horizontaler und vertikaler föderierter Lernstrategien

Horizontales föderiertes Lernen beschreibt, wie Daten auf mehrere Clients aufgeteilt werden. In diesem Fall teilen sich alle Clients den gleichen Feature-Space, aber jeder enthält unterschiedliche Samples. Beispielsweise können mehrere Krankenhäuser dieselben medizinischen Variablen erfassen, jedoch für unterschiedliche Patienten. Dies ist die häufigste Form des föderierten Lernens.

Vertikales föderiertes Lernen wird verwendet, wenn Clients denselben Entitätssatz teilen, aber über unterschiedliche Funktionen verfügen. Beispielsweise verfügen möglicherweise ein Krankenhaus und ein Versicherungsanbieter über Daten zu denselben Personen, jedoch mit unterschiedlichen Attributen. Das Training erfordert in diesem Fall eine sichere Koordination, da sich die Feature-Räume unterscheiden, und dieser Aufbau ist weniger verbreitet als horizontales föderiertes Lernen.

Diese Kategorien schließen sich gegenseitig nicht aus. Ein reales System wird oft mit beiden Achsen beschrieben, zum Beispiel a Siloübergreifendes, horizontales föderiertes Lernenaufstellen.

Wie Federated Learning funktioniert

Federated Learning folgt einem einfachen, wiederholten Prozess, der von einem zentralen Server koordiniert und von mehreren Clients ausgeführt wird, die Daten lokal speichern, wie im Diagramm unten dargestellt.

Visualisierung einer föderierten Lernschleife

Das Training im föderierten Lernen erfolgt durch Wiederholung Verbundlernrunden. In jeder Runde wählt der Server eine kleine zufällige Teilmenge von Clients aus, sendet ihnen die aktuellen Modellgewichte und wartet auf Aktualisierungen. Jeder Client trainiert das Modell lokal mit stochastischer Gradientenabstieg normalerweise für mehrere lokale Epochen in eigenen Stapeln, und gibt nur die aktualisierten Gewichte zurück. Auf hoher Ebene folgt es den folgenden fünf Schritten:

  1. Initialisierung

Auf dem Server wird ein globales Modell erstellt, das als Koordinator fungiert. Das Modell kann zufällig initialisiert werden oder in einem vorab trainierten Zustand beginnen.

2. Modellverteilung

In jeder Runde wählt der Server eine Reihe von Clients aus (basierend auf Zufallsstichproben oder einer vordefinierten Strategie), die am Training teilnehmen, und sendet ihnen die aktuellen globalen Modellgewichte. Bei diesen Clients kann es sich um Telefone, IoT-Geräte oder einzelne Krankenhäuser handeln.

3. Lokale Ausbildung

Jeder ausgewählte Client trainiert das Modell dann lokal mit seinen eigenen Daten. Die Daten verlassen nie den Kunden und alle Berechnungen erfolgen auf dem Gerät oder innerhalb einer Organisation wie einem Krankenhaus oder einer Bank.

4. Modellaktualisierungskommunikation

Nach dem lokalen Training senden Clients nur die aktualisierten Modellparameter (z. B. Gewichtungen oder Gradienten) an den Server zurück, während Rohdaten jederzeit geteilt werden.

5. Aggregation

Der Server aggregiert die Client-Updates, um ein neues globales Modell zu erstellen. Während Föderierte Mittelwertbildung (Fed Avg) ist ein gängiger Ansatz für die Aggregation, Es werden auch andere Strategien verwendet. Das aktualisierte Modell wird dann an die Clients zurückgesendet und der Vorgang wiederholt sich bis zur Konvergenz.

Federated Learning ist ein iterativer Prozess und jeder Durchgang durch diese Schleife wird als Runde bezeichnet. Das Training eines föderierten Modells erfordert normalerweise viele Runden, manchmal Hunderte, abhängig von Faktoren wie Modellgröße, Datenverteilung und dem zu lösenden Problem.

Mathematische Intuition hinter Federated Averaging

Der oben beschriebene Workflow kann auch formeller geschrieben werden. Die Abbildung unten zeigt das Original Föderierte Mittelwertbildung (Fed Avg) Algorithmus aus Googles wegweisendem Artikel. Dieser Algorithmus wurde später zum Hauptbezugspunkt und zeigte, dass föderiertes Lernen in der Praxis funktionieren kann. Diese Formulierung wurde heute tatsächlich zum Bezugspunkt für die meisten föderierten Lernsysteme.

Der ursprüngliche Federated Averaging-Algorithmus, der die Server-Client-Trainingsschleife und die gewichtete Aggregation lokaler Modelle zeigt | Quelle: Kommunikationseffizientes Lernen tiefer Netzwerke aus dezentralen Daten

Der ursprüngliche Federated Averaging-Algorithmus, der die Server-Client-Trainingsschleife und die gewichtete Aggregation lokaler Modelle zeigt.
Das Herzstück von Federated Averaging ist der Aggregationsschritt, bei dem der Server das globale Modell aktualisiert, indem er einen gewichteten Durchschnitt der lokal trainierten Clientmodelle ermittelt. Dies kann wie folgt geschrieben werden:

Mathematische Darstellung des Federated Averaging-Algorithmus

Diese Gleichung macht deutlich, wie jeder Kunde zum globalen Modell beiträgt. Kunden mit mehr lokalen Daten haben einen größeren Einfluss, während Kunden mit weniger Stichproben proportional weniger beitragen. In der Praxis ist diese einfache Idee der Grund, warum Fed Avg zur Standardbasis für föderiertes Lernen wurde.

Eine einfache NumPy-Implementierung

Schauen wir uns ein Minimalbeispiel an, bei dem fünf Kunden ausgewählt wurden. Der Einfachheit halber gehen wir davon aus, dass jeder Kunde das lokale Training bereits abgeschlossen hat und seine aktualisierten Modellgewichte zusammen mit der Anzahl der verwendeten Proben zurückgegeben hat. Anhand dieser Werte berechnet der Server eine gewichtete Summe, die das neue globale Modell für die nächste Runde erzeugt. Dies spiegelt direkt die Fed-Durchschnittsgleichung wider, ohne dass Schulungen oder kundenseitige Details eingeführt werden müssen.

import numpy as np

# Client models after local training (w_{t+1}^k)
client_weights = (
    np.array((1.0, 0.8, 0.5)),     # client 1
    np.array((1.2, 0.9, 0.6)),     # client 2
    np.array((0.9, 0.7, 0.4)),     # client 3
    np.array((1.1, 0.85, 0.55)),   # client 4
    np.array((1.3, 1.0, 0.65))     # client 5
)

# Number of samples at each client (n_k)
client_sizes = (50, 150, 100, 300, 4000)

# m_t = total number of samples across selected clients S_t
m_t = sum(client_sizes) # 50+150+100+300+400

# Initialize global model w_{t+1}
w_t_plus_1 = np.zeros_like(client_weights(0))

# FedAvg aggregation:

# w_{t+1} = sum_{k in S_t} (n_k / m_t) * w_{t+1}^k
# (50/1000) * w_1 + (150/1000) * w_2 + ...

for w_k, n_k in zip(client_weights, client_sizes):
    w_t_plus_1 += (n_k / m_t) * w_k

print("Aggregated global model w_{t+1}:", w_t_plus_1)
-------------------------------------------------------------
Aggregated global model w_{t+1}: (1.27173913 0.97826087 0.63478261)

Wie die Aggregation berechnet wird

Um die Dinge ins rechte Licht zu rücken: Wir können den Aggregationsschritt auf nur zwei Kunden erweitern und sehen, wie die Zahlen übereinstimmen.

Herausforderungen in föderierten Lernumgebungen

Föderiertes Lernen bringt seine eigenen Herausforderungen mit sich. Eines der Hauptprobleme bei der Implementierung besteht darin, dass die Daten zwischen den Clients häufig nicht-IID (nicht unabhängig und identisch verteilt) sind. Dies bedeutet, dass verschiedene Clients möglicherweise sehr unterschiedliche Datenverteilungen sehen, was wiederum das Training verlangsamen und das globale Modell instabiler machen kann. Beispielsweise können Krankenhäuser in einer Föderation unterschiedliche Bevölkerungsgruppen versorgen, die unterschiedlichen Mustern folgen können.

Föderierte Systeme können alles umfassen, von einigen wenigen Organisationen bis hin zu Millionen von Geräten, und die Verwaltung von Teilnahme, Ausfällen und Aggregation wird mit der Skalierung des Systems immer schwieriger.

Während föderiertes Lernen die Rohdaten lokal hält, löst es keine vollständige Lösung Privatsphäre von allein. Bei Modellaktualisierungen können immer noch private Informationen verloren gehen, wenn sie nicht geschützt sind. Daher sind häufig zusätzliche Datenschutzmethoden erforderlich. Endlich, Kommunikationkann eine Quelle von Engpässen sein. Da Netzwerke langsam oder unzuverlässig sein können und das Senden häufiger Updates kostspielig sein kann.

Fazit und wie es weitergeht

In diesem Artikel haben wir verstanden, wie föderiertes Lernen auf hohem Niveau funktioniert, und sind auch eine einfache Numpy-Implementierung durchgegangen. Anstatt jedoch die Kernlogik von Hand zu schreiben, gibt es Frameworks wie Flower, die eine einfache und flexible Möglichkeit zum Aufbau föderierter Lernsysteme bieten. Im nächsten Teil nutzen wir Flower, um die schwere Arbeit für uns zu erledigen, sodass wir uns auf das Modell und die Daten konzentrieren können und nicht auf die Mechanismen des föderierten Lernens. Wir werden auch einen Blick darauf werfen föderierte LLMswo Modellgröße, Kommunikationskosten und Datenschutzbeschränkungen noch wichtiger werden.


Hinweis: Alle Bilder wurden, sofern nicht anders angegeben, vom Autor erstellt.

Quelle

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein