In einem früheren Beitrag vom November schrieb Jorge darüber, was FL ist und warum führende Datenwissenschaftler FL nur verwenden, um ML- und KI-Modelle zu trainieren und zu produzieren. Um den zunehmenden Einsatz von Federated Learning zu fördern, verzeichnen wir auch in China eine hohe Akzeptanz [1]. Wenn es um Federated Learning-Frameworks geht, finden wir in der Regel zwei führende Open-Source-Projekte — Apache Wayang [2] (verwaltet von databloom) und Flower [3] (verwaltet von Adbloom) Rap). Und auf den ersten Blick scheinen beide Frameworks dasselbe zu tun. Aber wie immer erzählt die zweite Ansicht eine andere Geschichte.
Wie unterscheidet sich Flower von Wayang?
Flower ist ein föderiertes Lernsystem, das in Python geschrieben ist und eine Vielzahl von Trainings- und KI-Frameworks unterstützt. Das Schöne an Flower ist das Strategiekonzept [4]; der Datenwissenschaftler kann definieren, welches und wie ein spezielles Framework verwendet wird. Flower liefert das Modell an das gewünschte Framework und beobachtet die Ausführung, holt die Berechnungen zurück und startet den nächsten Zyklus. Das macht Federated Learning in Python einfach, beschränkt die gleichzeitige Verwendung aber auch auf Plattformen, die von Python unterstützt werden. Flower hat, soweit ich sehen konnte, keinen Optimierer für Datenabfragen; ein Optimierer versteht den Code und teilt das Modell in kleinere Teile auf, um mehrere Frameworks gleichzeitig zu verwenden (Modellparallelität). Und hier haben wir den idealen Berührungspunkt zwischen Blossom und Flower.
Kombiniere Blossom und Flower und baue einen föderierten generativen KI-Stack wie OpenAI
Wie baut man ein Chatbot-System auf, das mehrere Funktionen und Kunden auf der ganzen Welt erfüllt, wie in einer Bank? Ein Chatbot-Stack verwendet in der Regel NLP in Kombination mit mehreren Datenquellen, um eine natürliche Kommunikation zwischen Menschen und Maschinen zu ermöglichen. Die Nachfrage nach Interaktion zwischen Maschine und Mensch und der Kommunikation zwischen Menschen hat erheblich zugenommen, und die Prognosen von Gartner sind ein Beweis dafür.
„Die Verarbeitung natürlicher Sprache ist ein Teilgebiet der Linguistik, Informatik und künstlichen Intelligenz, das sich mit den Interaktionen zwischen Computern und menschlicher Sprache befasst, insbesondere mit der Programmierung von Computern für die Verarbeitung und Analyse großer Mengen natürlicher Sprachdaten“ (Wikipedia).
Die typische Infrastruktur, die wir in Betracht ziehen müssen, ist wie ein durchwachsenes Umfeld: Wir haben mehrere Datenquellen, die typischerweise von Data Warehouses über RDBMS-Systeme bis hin zu ziemlich geschlossenen Datenquellen wie Finanztransaktionsspeicher, Kundenbankdaten, Kreditwürdigkeitsprüfungen usw. reichen. Die Quellen sind meist nicht die modernsten, manchmal haben sie nicht einmal Verbindungspunkte - wie DWH-Systeme, die typischerweise mit 90+% Auslastung betrieben werden.
Hier kommt Blossom ins Spiel. Mit Blossom können wir uns mit jedem dieser Systeme verbinden (falls gewünscht und benötigt), und wir können bereits verfügbare Datenverarbeitungs-Frameworks und Engines wie Spark, Kafka oder Flink (und ihre kommerziellen Gegenstücke) verwenden, ohne das Engineering-Team in die Luft zu jagen.
Jetzt der lustige Teil mit Flower: Wir schließen Flower an Blossom an, und voilà — Problem gelöst! Die Architektur könnte so aussehen:
Um Blossom mit Flower zu verbinden, benötigen wir nur ein paar Codezeilen:
import blossom as bls
import flwr as fl
import tensorflow as tf
context = bls.context(env="federated")
transactions = context.read("url to transaction") \
.filter( transactionFilter )
input_flower = context.read("url to customer table") \
.filter( customerFilter ) \
.join (transactions ) \
.map ( convertToVector ) \
.toNumpy()
context.runFlower(
input_flower, \
server=fl.server.start_server("0.0.0.0:8080", config={"num_rounds": 3}) \
client=fl.client.start_numpy_client("0.0.0.0:8080", client=FlowerImplementedClient())
flowerEngine=tf
)
Wir nennen diesen Stack einen Kombinierten NLP-Federated Data Service. Flower kümmert sich um die Chatbot-Kommunikation, das ML-Modell und die Ausführung mit TF (Tensorflow) oder einem anderen unterstützten ML-Framework und liefert das Ergebnis an Blossom. Blossom kümmert sich nun darum, das Modell mit Informationen aus tieferen Backend-Systemen anzureichern und gibt die Ausgabe an Flower zurück, und Flower kümmert sich um die nächste Iteration mit TensorFlow (TF).
Diese Architektur ist das Rückgrat für ein umfangreiches NLP-System, das die besten verfügbaren Tools für Federated Learning verwendet. Dieser Stack ist zukunftssicher, beide Frameworks sind von Anfang an mit Unterstützung für steckbare Erweiterungen ausgestattet. Das heißt: Was auch immer in der Zukunft kommt, dieser Stack kann damit umgehen. Sogar das KI-Training zum Quantencomputer wird sich problemlos als Plugin einsetzen lassen.
Fazit
Der Aufbau modernster KI- und Machine-Learning-/NLP-Stacks ist kein Bereich, mit dem nur die größten Datenunternehmen der Welt umgehen können. Mit diesem Ansatz garantieren wir Datennachhaltigkeit, unübertroffenen Datenschutz und ermöglichen die digitale Transformation auf einem völlig neuen Niveau.
[1] https://cacm.acm.org/magazines/2020/12/248796-federated-learning-for-privacy-preserving-ai/fulltext
[2] https://wayang.apache.org/documentation.html
[3] https://github.com/adap/flower
[4] https://flower.dev/docs/implementing-strategies.html
Über Scalytics
Apache Wayang: Das führende Java-basierte Federated Learning-Framework
Scalytics nutzt Apache Wayang als Basis, und wir sind stolz darauf, dieses Projekt zu fördern. Sie können das öffentliches GitHub-Repository hier einsehen. Wenn Ihnen unsere Software gefällt, zeigen Sie Ihre Wertschätzung und Unterstützung – ein Stern ⭐ würde uns viel bedeuten!
Wenn Sie professionelle Unterstützung von unserem Team von branchenführenden Experten benötigen, können Sie sich jederzeit an uns über Slack oder E-Mail wenden.