Der stochastische Gradientenabstieg (SGD) ist eine der erfolgreichsten Techniken, die je für maschinelles Lernen und mathematische Optimierung entwickelt wurden. Lokad nutzt den SGD seit Jahren intensiv für Supply-Chain-Zwecke, hauptsächlich durch differenzierbares Programmieren. Die meisten unserer Kunden haben mindestens einen SGD irgendwo in ihrer Datenpipeline.

In der Softwareentwicklung ist Geschwindigkeit ein Merkmal. Wir wollten unsere SGD-Implementierung schneller machen - ohne dabei ihr deterministisches Verhalten zu opfern. Tatsächlich ist Determinismus entscheidend, um produktionsreife Supply-Chain-Setups bereitzustellen. Kurz gesagt, das zweimalige Ausführen des SGD sollte genau dasselbe Ergebnis liefern.

Reproduzierbarer paralleler stochastischer Gradientenabstieg für sehr hochdimensionale Daten

Diesen Sommer hatten wir das Vergnügen, Ziyad Benomar für ein Praktikum zur reproduzierbaren Beschleunigung unserer SGD-Implementierung willkommen zu heißen. Ziyad Benomar hat eine bemerkenswerte Arbeit geleistet, die wir unten teilen.

Die Kurzfassung lautet, dass wir eine 5-fache Beschleunigung bei 6-fachen Berechnungskosten im Vergleich zu einem Baseline-SGD erreichen. Darüber hinaus wird der Flaschenhals - in der Lokad-Architektur - das Laden der Daten. Die Leistungsoptimierung ist ein endloses Whac-A-Mole: Sobald ein Flaschenhals behoben ist, taucht ein neuer auf. Die Lösung dieses I/O-Problems ist der offensichtliche nächste Schritt für uns. Bleiben Sie dran!


Titel: Reproduzierbarer paralleler stochastischer Gradientenabstieg für sehr hochdimensionale Daten

Autor: Ziyad Benomar, École polytechnique

Zusammenfassung: Wir interessieren uns für die Untersuchung verteilter Algorithmen für den stochastischen Gradientenabstieg und deren Implementierung auf einer Maschine mit mehreren Prozessoren. Wir gehen das Problem aus Sicht der Leistung und der Rechengeschwindigkeit an und stellen sicher, 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 geben einige Anpassungen an, die die Ausführungsgeschwindigkeit verbessern, wenn die Zeit, die zum Laden der Daten in den Arbeitsspeicher des Computers benötigt wird, sehr lang ist. Für jeden vorgeschlagenen Algorithmus geben wir einen Konvergenzbeweis und eine Schätzung seiner Laufzeit an. Schließlich vergleichen wir unsere Algorithmen anhand eines von uns definierten ε-Performance-Begriffs.

PDF herunterladen