Uber stellt mit Fiber eine neue Machine-Learning-Bibliothek vor

Das Entwicklerteam von Uber hat eine mit Fiber eine Bibliothek auf Python-Basis veröffentlicht, die ein verteiltes Trainieren von ML-Modellen ermöglichen soll.

In Pocket speichern vorlesen Druckansicht
Uber

(Bild: dpa, Seth Wenig/AP/dpa)

Lesezeit: 2 Min.
Von
  • Björn Bohn

Das Engineering-Team des Fahrdienstleisters Uber hat mit Fiber eine neue Bibliothek für Machine-Learning-Aufgaben freigegeben. Sie basiert auf Python und ist auf die verteilte Verarbeitung auf zeitgemäßen Computer-Clustern ausgelegt. Damit sollen sich auch große wissenschaftliche Projekte umsetzen lassen, die eine entsprechende Rechenleistung erfordern. Das Projekt schlägt dabei in dieselbe Kerbe wie das von Uber stammende POET und ist wohl ebenfalls bei den hauseigenen Machine- und Deep-Learning-Projekten im Einsatz.

Fiber startet in einem Cluster verschiedene Prozesse und führt Fiber-Komponenten und Benutzerprozesse in ihnen aus. Fiber Master ist der Hauptprozess, der alle anderen Prozesse verwaltet. Prozesse wie Ring Node sorgen für die Kommunikation zwischen den einzelnen Abläufen. Fiber kann Anwendern helfen, die an groß angelegten verteilten Berechnungen arbeiten, die Zeit von der Idee bis zur tatsächlichen Ausführung verteilter Jobs auf Berechnungsclustern zu verkürzen. Außerdem soll es von den Details der Konfiguration und Ressourcenzuweisung abschirmen, schnellere Debug-Zyklen ermöglichen und den Übergang von der lokalen zur Cluster-Entwicklung vereinfachen.

Die Architektur von Fiber

(Bild: Uber)

Laut Uber benutzt Fiber dieselben Python-APIs wie die standardmäßige Multiprocessing-Bibliothek der Programmiersprache. Das hält die Hürde wohl niedrig: Wer weiß, wie man Multiprocessing in Python einsetzt, soll auch Cluster mit Fiber programmieren können. Außerdem ist wohl kein näheres Wissen zu den Details eines Clusters erforderlich, ebenso wenig wie ein besonderes Deployment.

Als Applikationsbeispiel stellt Uber einen Reinforcement-Learning-Algorithmus vor. Hierfür soll die Architektur von Fiber besonders geeignet sein, da solche Aufgaben wohl viele parallele Arbeiten erlauben. Fiber sei insofern für viele Anwendungsfälle denkbar, da Python-Entwickler nur wenige Codezeilen ändern müssten, um ihre Applikationen beispielsweise auf verteilten Clustern der Container-Orchestrierung Kubernetes ablaufen zu lassen.

Einen vollständigen Überblick über das neue Framework bietet die Dokumentation zu Fiber. Das gesamte Projekt findet sich ebenfalls auf GitHub. (bbo)