Federated Learning Frameworks im Vergleich
Dezentrale gespeicherte Daten, hohe Datenschutzanforderungen und Rare Events: Das sind die Rahmenbedingungen, in denen Federated Learning seine Stärken ausspielen kann. Die Einsatzszenarien von Federated Learning reichen von der Erforschung seltener Krankheiten über die Prognose von Maschinenausfällen bis zur Spracherkennung von Smart Home Devices.
Bereiche mit besonders sensiblen (personenbezogenen) Daten oder wertvollen Geschäftsgeheimnissen, in denen Data Science entscheidende Mehrwerte liefern kann. Federated Learning hilft genau dabei – ohne dafür die Daten austauschen zu müssen. Lediglich die Modellparameter werden mitgeteilt. Die Daten verbleiben lokal beim Besitzer. Ein globales Modell wird allen Datenbesitzern bzw. deren Devices zu Verfügung gestellt. Das Modell wird lokal auf den Daten des jeweiligen Endgerätes trainiert. Statt der sensiblen Daten werden die Modellparameter geteilt und anschließend aggregiert. Zur Aggregation werden Algorithmen wie Federated Averaging (FedAvg) und Federated Stochastic Gradient Descent (FedSGD) verwendet. Die aggregierten Parameterupdates verbessern das globale Modell. Das neue Modell wird erneut den Datenbesitzern bereitgestellt und lokal auf deren Daten trainiert. Dieser Prozess wiederholt sich über mehrere Runden bis die Accuracy des Modells konvergiert. Differential Privacy schützt die Privatsphäre der teilnehmenden Datenbesitzer. Durch Verschlüsselung der Modellparameter kann der unbefugte Zugriff durch Dritte verhindert werden.
Mehr zu den Hintergründen und Anwendungsbeispielen von Federated Learning erfahren Sie in unserem kostenlosen Whitepaper.
Partitionierung
Federated Learning Systeme können sich in der Partitionierung der Daten unterscheiden. Beim horizontalen Federated Learning haben die lokalen Daten gleiche Variablen zu unterschiedlichen Observationen (z.B. Patienten). Vertikales Federated Learning nutzt dezentrale Datensätze, die unterschiedliche Variablen zu denselben Observationen (z.B. Kunden) nutzen. Durch horizontales Federated Learning können wir also von einem höheren Stichprobenumfang profitieren. Vertikales Federated Learning gibt den teilnehmenden Datenbesitzern die Möglichkeit, von zusätzlichen Informationen über die vorhandenen Observationen zu profitieren.
Federated Learning Frameworks
Im Folgenden werden vier Open Source Frameworks zur Implementierung von Federated Learning vorgestellt und deren Stärken und Schwächen aufgezeigt (Stand Juli 2021). Abschließend erfolgt eine Einschätzung zur Entwicklung innerhalb der nächsten Jahre. Auf die Frameworks von IBM (IBM Federated Learning) und NVIDIA (Clara), die beide nicht Open Source sind, wird nicht näher eingegangen.
TensorFlow Federated (TFF)
- Modellierung: Tensorflow and Keras
- Teil des TensorFlow Ökosystems (Google)
Für die Modellierung wird TensorFlow bzw. Keras verwendet. Zur Aggregierung der Modellparameter ist Federated Averaging (FedAvg) und Federated Stochastic Gradient Descent (FedSGD) implementiert. Zur Wahrung der Privatsphäre kann Differential Privacy genutzt werden. Derzeit kann Federated Learning mit TensorFlow Federated nur in einer Simulation genutzt werden. Auch wenn TensorFlow Federated deshalb noch nicht für den produktiven Einsatz geeignet ist, stellt TensorFlow Federated aufgrund guter Dokumentation, zahlreicher Tutorials und der Möglichkeit, Federated Learning in Google Colab unkompliziert auszuprobieren, einen guten Einstieg dar. Außerdem beteiligen sich derzeit 72 Entwickler an dem Projekt. Es ist damit zu rechnen, dass die Entwicklung zügig voranschreiten wird und stetig neue Funktionen verfügbar sein werden. Da TensorFlow eine der größten Plattformen für Deep Learning ist, kann erwartet werden, dass viele derjenigen, die derzeit TensorFlow für ihre Deep-Learning-Modellierung verwenden, in Zukunft TensorFlow Federated für Federated Learning nutzen werden. Somit stehen die Chancen gut, dass TensorFlow Federated zu einem der führenden Federated Learning Frameworks werden wird und es somit auch jetzt schon sinnvoll ist, frühzeitig Kompetenz in der Nutzung von TensorFlow Federated aufzubauen.
PySyft
- Modellierung: PyTorch
- Teil des OpenMined Ökosystems
PySyft ist Teil des OpenMined Ökosystems und greift für die Implementierung von Federated Learning auf andere OpenMined Projekte wie PyGrid zurück. Zur Modellierung wird PyTorch verwendet. Tensorflow soll aber auch unterstützt werden (siehe README file auf https://github.com/OpenMined/PySyft). PySyft unterstützt Differential Privacy und Secure Multiparty Computation (SMPC). Derzeit ist PySyft aber noch nicht für den Einsatz in Produktion geeignet (Kholod et. al. (2021)). Allerdings hat PySyft 329 Entwickler, die sich bisher an dem Projekt beteiligt haben. Zum Vergleich: Im Ende 2018 waren es nur 117 Unterstützer. Ein weiterer Pluspunkt: PySyft ist eine Erweiterung von PyTorch, sodass Verwender von PyTorch keine großen Probleme bei der Adaption von PySyft haben sollten. „If you know how to use PyTorch, you already know how to use most of PySyft as well“ (https://blog.openmined.org/upgrade-to-federated-learning-in-10-lines/). Da PyTorch neben Tensorflow und Keras zu den führenden Deep Learning Frameworks gehört, ist zu erwarten, dass PyTorch-Nutzer für Federated Learning PySyft nutzen werden. Die große Anzahl an unterstützenden Entwicklern lässt eine rasche Weiterentwicklung der Funktionalitäten erwarten, sodass PySyft in Zukunft auch für den produktiven Einsatz verwendet werden kann.
FATE
- Modellierung: FederatedML (TensorFlow für Deep Learning)
- Initiiert durch KI-Abteilung von Webank
FATE ist ein Open-Source-Projekt, das durch Webank (Tencent) ins Leben gerufen wurde. FATE hat eine Vielzahl gängiger ML-Algorithmen implementiert wie z.B. Logistische Regression, Tree-based Methods und Neuronale Netze. FATE unterstützt sowohl horizontales Federated Learning als auch vertikales Federated Learning. Zur Aggregierung der lokalen Modellupdates werden FedAvg und SecAgg verwendet. Zur Verschlüsselung kommen homomorphe Verschlüsselung und Multiparty Computation (MPC) zum Einsatz. Ein wesentlicher Vorteil von FATE ist, dass FATE nicht nur in einer Simulation, sondern auch im Federated-Mode genutzt werden kann. Aktuell hat FATE 48 Unterstützer bei GitHub. Ein Minuspunkt: FATE hat keine Core API, sodass Entwickler den Source Code anpassen müssen, wenn sie eigene Algorithmen innerhalb des Frameworks implementieren wollen (Kholod et. al. (2021)). Im Gegensatz zu PySyft und TFF liegt FATE bereits in einer Release Version vor (1.6.0). Somit liegt FATE derzeit beim Deployment vor PySyft und TFF. Es bleibt abzuwarten, ob FATE diesen Vorsprung halten und die Deep Learning Community von der Nutzung des Frameworks, anstatt PySyft oder TFF, überzeugen kann.
Paddle Federated Learning (PFL)
- Modellierung: PaddlePaddle
Paddle Federated Learning liegt bereits in Version 1.1.x vor und verfügt über eine hohe Funktionalität. PFL unterstützt vertikales und horizontales Federated Learning. Neben Differential Privacy Stochastic Gradient Descent (DPSGD) und MPC sind FedAvg sowie Secure Aggregation im Funktionsumfang enthalten. Nach Einschätzung von Kholod et. al. (2021) hat PFL die höchste Reife für den praktischen Einsatz unter den hier vorgestellten Frameworks. Allerdings hat PFL nur 12 Contributors auf GitHub, die Dokumentation ist überschaubar und PFL nutzt mit PaddlePaddle eine wenig verbreitete Deep Learning Plattform des Suchmaschinenanbieters Baidu. Es ist deshalb schwer vorstellbar, dass sich ein großer Anteil der Community für PFL über PySyft, TFF und FATE entscheidet.
Der Vergleich der Federated Learning Tools bezieht sich auf den Stand Juli 2021 und auf folgende Versionen: TFF: 0.19.0, PySyft: 0.5.0, FATE: 1.6.0, Paddle 1.1.0.
Ausblick
Analogie zur Konsolidierung der Deep Learning Frameworks
Als die Beta-Version von PyTorch veröffentlicht wurde, waren Theano und TensorFlow die Vorreiter der Deep Learning Bibliotheken. Daneben gab es weitere Frameworks. Etwa zwei Jahre nach Release der Beta Version von PyTorch hatte sich die Landschaft der Deep Learning Frameworks deutlich verändert, sodass TensorFlow und PyTorch nun die meistgenutzten Frameworks waren und es (zusammen mit Keras) auch heute noch sind. Theano wird nicht mehr weiterentwickelt, während sich PyTorch zunehmender Beliebtheit erfreut.
Ebenso ist die relative Positionierung der FL-Frameworks noch lange nicht als stabil anzusehen. In den nächsten Jahren sind große Veränderungen der Frameworks selbst und deren relativen Positionen zueinander, was Funktionalität und Nutzeranzahl betrifft, erwartbar.
Entwicklung der Frameworks (Funktionalität)
Federated Learning ist ein relativ neues Konzept. Die FL Frameworks sind zum Großteil in frühen Stadien der Entwicklung. Es ist zu erwarten, dass sich die hier vorgestellten Frameworks in den nächsten Jahren stark weiter entwickeln werden. Insbesondere bei TensorFlow Federated mit 72 Entwicklern und PySyft mit 329 Entwicklern kann man eine zügige Weiterentwicklung annehmen.
Adaption durch DL Anwender
Da Tensorflow/Keras und PyTorch für Deep Learning führend sind, erwarte ich, dass sich die Deep Learning Community entsprechend hinter TFF und PySyft versammeln wird. Für Tensorflow-Anwender ist TFF der logische Schritt, für PyTorch-Anwender macht PySyft die Adoption von FL am einfachsten.
Auch Sie sehen das Potenzial von Federated Learning? Wir sind Ihr Ansprechpartner für das föderale Lernen in der DACH-Region und unterstützen Sie bei der Konzeption und Umsetzung von Federated Learning in Ihrem Anwendungsfeld. Mit YUNA elements bieten wir Ihnen eine eigene Lösung mit Funktionalitäten zur technischen Realisierung von Federated Learning an. Sprechen Sie uns an.