Reproduzierbarer paralleler stochastischer Gradientenabstieg
Der stochastische Gradientenabstieg (SGD) ist eine der erfolgreichsten Techniken, die jemals sowohl für machine learning als auch für mathematische Optimierung entwickelt wurden. Lokad nutzt den SGD seit Jahren intensiv für supply chain Zwecke, hauptsächlich durch differentiable programming. Die meisten unserer Kunden haben irgendwo in ihrer data pipeline mindestens einen SGD.
In der Software ist Geschwindigkeit ein Feature. Wir wollten unsere SGD-Implementierung schneller machen – jedoch ohne ihr deterministisches Verhalten zu opfern. Tatsächlich ist Determinismus entscheidend, um betriebsbereite supply chain Setups zu liefern. Kurz gesagt, sollte das zweimalige Ausführen des SGD exakt dasselbe Ergebnis liefern.

Diesen Sommer hatten wir das Vergnügen, Ziyad Benomar für ein Praktikum willkommen zu heißen, das der reproduzierbaren Beschleunigung unserer SGD-Implementierung gewidmet war. Ziyad Benomar lieferte ein bemerkenswertes Stück Arbeit ab, das wir im Folgenden teilen.
Kurz gesagt: Wir erreichen eine 5-fache Beschleunigung bei 6-fachen Rechenkosten im Vergleich zu einem Baseline-SGD. Darüber hinaus wird in der Lokad-Architektur das Laden der Daten zum Engpass. Die Leistungsoptimierung ist ein endloses Whac-A-Mole: Sobald ein Engpass behoben ist, taucht ein neuer auf. Die Lösung dieses I/O-Problems ist für uns der nächste logische Schritt. Bleiben Sie dran!
Titel: Reproduzierbarer paralleler stochastischer Gradientenabstieg für sehr hochdimensionale Daten
Autor: Ziyad Benomar, École polytechnique
Zusammenfassung: Wir beschäftigen uns mit der Untersuchung verteilter stochastischer Gradientenabstiegsalgorithmen und deren Implementierung auf einer Maschine mit mehreren Prozessoren. Wir gehen das Problem aus der Sicht der Leistung und der Rechengeschwindigkeit an und bestehen zudem darauf, dass unsere Lösungen reproduzierbar sind, d.h. dass sie bei Ausführung auf demselben Datensatz dieselben Ergebnisse liefern. Wir konzentrieren uns hauptsächlich auf den PR-SGD-Algorithmus und werden einige Anpassungen vorstellen, die die Ausführungsgeschwindigkeit verbessern, wenn die Zeit zum Laden der Daten in den Arbeitsspeicher des Computers sehr lang ist. Für jeden vorgeschlagenen Algorithmus liefern wir einen Beweis der Konvergenz und eine Schätzung seiner Laufzeit. Schließlich vergleichen wir unsere Algorithmen anhand eines von uns definierten ε-Performance-Maßes.