Mit Gpipe veröffentlicht Google eine Bibliothek als Open-Source-Software, die das Training großer DNN-Modelle besser an GPUs und TPUs anpasst.
Die Größe der Modelle für Deep Neural Networks (DNN) zählt unter anderem beim akkuraten Erkennen von Bildern. Laut dem Blogpost zu Gpipe ermöglicht die Größe eines DNN-Modells eine bessere Task-Performance sowie eine genauere Klassifizierung. Die Größe bezieht sich dabei auf die Menge der eingesetzten Modellparameter. Laut Google zeigt unter anderem der Imagenet Visual Recognition Challenge, dass mehr Parameter zu genaueren Resultaten bei der Bilderkennung führen.
Allerdings gibt es auch einen Nachteil: Die Hardware kommt der schnell steigenden Zahl der eingesetzten Parameter nicht hinterher. Damit neuronale Netzwerke mit vielen Parametern skalieren, muss die zugehörige Infrastruktur die durch die Hardware verursachten Begrenzungen überwinden. Dabei hilft die so genannte Pipeline-Parallelisierung, die das DNN-Training skalieren kann.
Auftritt Gpipe
Gpipe ist eine verteilte Machine-Learning-Bibliothek, die einen synchronen stochastischen Gradientenabstieg und Pipeline-Parallelisierung für das Training verwendet und sich mit allen DNN einsetzen lässt, die mehrfache sequenzielle Layer verwenden. Forscher, die Gpipe verwenden, können im Training einfach mehr Beschleunigerkerne auf GPUs oder TPUs einsetzen, ohne dafür die Hyperparameter des Modells anfassen zu müssen.
Google selbst habe die Effektivität von Gpipe demonstriert, indem die Forscher ein Amoebanet-B mit 557 Millionen Modellparametern und einer Bildgröße von 480 x 480 Pixeln auf Google-Cloud-TPUs (v2) trainiert haben. Das habe mit populären Datensets gut geklappt und etwa die Trefferrate für Imagenet auf 84,3 Prozent erhöht, die für die CIFAR-10-Sammlung auf 99 Prozent und die für CIFAR 100 auf 91,3 Prozent.
Kernspaltung
Um mehrere Accelerator-Cores auf TPUs und GPUs parallel zu verwenden, zerlegt Gpipe eine kleine Menge an Trainingsbeispielen in noch kleinere Micros-Batches. Es verteilt diese Micro-Batches dann auf die Beschleunigerkerne, die sie parallel bearbeiten. Zugleich verteilt es die Gradienten konsistent auf die Micro-Batches, um die Modellqualität nicht zu beeinträchtigen.
Auf diese Weise konnte Google mit einem TPUv2-Beschleuniger-Core deutlich mehr Parameter trainieren als zuvor, nämlich 318 statt 82 Millionen. Bei den aktuellen TPUs der dritten Generation habe man noch eine bessere Performance erzielt. Nötig sei das Ganze, schließt der Blogpost, weil die Anforderungen an die Bilderkennung im autonomen Fahren und bei der medizinischen Bilderkennung sehr hoch seien.




