Supercomputing
19.01.2022, 14:33 Uhr
Vorausschauende Software beschleunigt das Training von neuronalen Netzen
Neuronale Netze erfüllen viele Aufgaben besser als herkömmliche Algorithmen und manches können nur sie allein. Allerdings kostet deren Training enorm viel Rechenzeit und Geld. Dank ETH-Forschenden kann dieses Training beschleunigt werden.
Neuronale Netze erfüllen viele Aufgaben besser als herkömmliche Algorithmen. ETH-Informatiker haben eine Software entwickelt, die das Training der künstlichen Intelligenz auf dem Supercomputer «Alps» am CSCS beschleunigt.
(Quelle: CSCS)
Zurzeit ist das der ETH angeschlossene Nationale Hochleistungsrechenzentrum der Schweiz CSCS dabei, einen neuen Supercomputer aufzubauen. Die Maschine namens «Alps» wird das derzeitige Schweizer Flaggschiff unter den Hochleistungscomputern, «Piz Daint», bis im Frühling 2023 ersetzen. Aufgrund der Architektur seiner Grafikprozessoren und seines Dateisystems wird «Alps» einer der leistungsstärksten auf künstliche Intelligenz optimierten Rechner der Welt.
«Das System ist besonders gut auf Machine-Learning-Anwendungen angepasst und wird hochgradig parallele Rechenoperationen mit riesigen Datenmengen ermöglichen», sagt Torsten Hoefler, Professor an der ETH Zürich und Leiter des Scalable Parallel Computing Lab der ETH. Zudem unterstützt es speziell für Deep Learning entwickelte Funktionen wie das sogenannte Sparsity – eine Funktion, die das Speichern und Verarbeiten überflüssiger Daten verhindert und dadurch neuronale Netze beschleunigt.
Um aber ein derart leistungsstarkes System so effizient wie möglich zu nutzen, müssen auch die Anwendungen intelligenter werden. Mit diesem Ziel haben zwei Wissenschaftler aus Torsten Hoeflers Team, Roman Boehringer und Nikoli Dryden, eine Software entwickelt, die das Training von Deep-Learning-Anwendungen beschleunigt. Denn bei der Arbeit mit neuronalen Netzen und Deep-Learning-Anwendungen ist deren Training der aufwendigste und teuerste Arbeitsschritt überhaupt.
So kann ein einziger Trainingslauf eines ausgefeilten Spracherkennungs-Modells rund zehn Millionen Dollar kosten. Die neue Software namens NoPFS (Near-optimal Pre-Fetching System) kurbelt diesen Prozess durch ein Phänomen namens «Clairvoyance» an, zu Deutsch «Hellseherei»: Sie nutzt einen vorhersagbaren Vorgang beim Training aus – und zwar konsequenter, als andere Programme dies bisher tun.
Teures Training
Während des Trainings von neuronalen Netzen werden diese mit Datenproben sowie den gewünschten Labels für diese Proben gefüttert. Bei einer Bilderkennungsanwendung beispielsweise sind diese Datenbeispiele Bilder von Objekten – beispielsweise eine Katze. Wenn die Anwendung das Bild zunächst falsch klassifiziert, als Hund etwa, korrigiert und aktualisiert sie sich auf der Grundlage des wahren Werts «Katze» selbst. So wird sie das Tier beim nächsten Mal mit grösserer Wahrscheinlichkeit richtig identifizieren. Sofern dieser Zyklus mit genügend Proben aus dem Datensatz wiederholt wird, tippt die Anwendung schliesslich annähernd jedes Mal richtig.
Dieser Lernprozess ist jedoch äusserst langsam. Um zu lernen, benötigen neuronale Netze Hunderttausende, manchmal Millionen von Datenproben, und dazu wiederum braucht es unzählige Schritte zum Laden der Daten und zum Aktualisieren der Werte. Diese Lade- und Speicherschritte, die Informationen zwischen Dateisystemen und Prozessoren übertragen, heissen in der Fachsprache «I/O» und bilden zeitaufwändigsten und teuersten Teil des Trainings. In der Praxis verschlingt «I/O» bis zu 85 Prozent der gesamten Trainingszeit.
Blick in die Kristallkugel
Hier nun kommt die neue Software NoPFS ins Spiel. Sie nutzt das Konzept der «Clairvoyance», um diese das Laden der Trainingsdaten zu beschleunigen. Zwar werden die Datenbeispiele, die das Deep-Learning-Modell zu sehen bekommt, grundsätzlich zufällig ausgewählt. Sie werden nach dem Zufallsprinzip in sogenannte Mini-Batches aus beispielsweise 32 Datenelementen zusammengestellt und dem Modell nach und nach vorgelegt.
Dieses Sampling der Daten in Mini-Batches benötigt jedoch zu Beginn einen bekannten Seed-Wert, also einen Startwert. Das macht den Prozess nunmehr pseudo-zufällig: Ist der Startwert einmal ausgewählt, ist die Reihenfolge der Datenproben festgelegt und kann vorhergesagt werden.
«Genau das macht NoPFS», sagt Nikoli Dryden, Postdoktorand in Hoeflers Forschungsgruppe und Hauptentwickler der Software. Diese prognostiziert während einem Trainingslauf, in welcher Reihenfolge und mit welcher Häufigkeit die Datenbeispiele geladen werden, um sie dem Modell zu zeigen. «Dieses Wissen nutzen wir, um häufig genutzten Datenelemente im Voraus zu laden», sagt Dryden. Die am häufigsten genutzten Elemente werden direkt im Random-Access-Memory (RAM) zwischengespeichert, die weniger populären auf einer lokalen Festplatte oder einem Computer Node mit sehr schnellem Zugriff. «So werden die Daten vorzeitig bereitgestellt, was das Training beschleunigt», erklärt Dryden.
Halbierte Trainingszeit
Die Forschenden prüften NoFPS in Trainingsläufen von verschiedenen Deep-Learning-Modellen auf verschiedenen Supercomputern, darunter «Piz Daint» am CSCS. Sie testeten die Software an CosmoFlow, einer Deep-Learning-Anwendung zur Vorhersage von Parametern zur dunklen Materie im Universum, und am Bilderkennungsmodell ResNet-50 mit zwei unterschiedlich grossen Trainingsdatensätzen, ImageNet-1k und ImageNet-22k. Dabei verglichen sie die Leistung von NoFPS mit zwei weiteren Datenladesystemen, dem des Deep Learning Frameworks PyTorch und mit der NVIDIA Data Loading Library (DALI).
Die Ergebnisse zeigten, dass NoFPS das Training tatsächlich beschleunigt – abhängig von der Anzahl der verwendeten Grafikprozessoren (GPU), dem jeweiligen Supercomputer und der Grösse des Trainingsdatensatzes unterschiedlich stark. Im besten Fall war das Training CosmoFlow um einen Faktor 2,1 schneller, für ImageNet-22k 2,4 Mal und für ImageNet-1k sogar 5,4 Mal schneller.
«Generell erzielen wir grössere Leistungsverbesserungen, je mehr GPUs wir verwenden», sagt Torsten Hoefler. Diese Ergebnisse seien allerdings mit Dateisystemen erreicht worden, die nicht auf Deep-Learning-Berechnungen optimiert sind. Mit auf künstliche Intelligenz abgestimmten Systemen wie «Alps» könnte die Trainingseffizienz etwas weniger stark steigen. «Auch auf solchen Systemen wird NoPFS das Training aber erheblich beschleunigen», sagt Hoefler.
Besonders relevant für wissenschaftliche Anwendungen
Das Konzept von NoPFS ist indessen nicht völlig neu. Andere Deep-Learning-Frameworks nutzen eine vereinfachte Version desselben Prinzips: Sie blicken einen oder mehrere Schritte voraus und beginnen vorzeitig mit Laden der nächsten Datenelemente, wodurch sie etwas effizienter werden. Allerdings hat bisher kein Tool diese Möglichkeit zur Voraussage so konsequent ausgereizt wie NoPFS – über den gesamte Trainingslauf hinweg.
«Die kürzere Trainingszeit mit NoPFS wird besonders für Anwendungen und Modelle in der Forschung und damit für das CSCS und seine Nutzer relevant sein», sagt Hoefler. In der Forschung wird das maschinelle Lernen meist auf zwei Arten eingesetzt: Zum einen können neuronale Netze dazu dienen, Ergebnisse von Computersimulationen zu verfeinern und analysieren. Zum anderen lassen sich einzelne Teile eines Simulationscodes mit Deep-Learning-Anwendungen ersetzen, um Simulationen schneller und präziser zu machen.
Hoefler, Dryden sowie ihre Kolleginnen und Kollegen haben kürzlich selbst eine solche Arbeit veröffentlicht: Sie haben die statistische Nachbearbeitung im Wettervorhersagemodell des Europäischen Zentrums für mittelfristige Wettervorhersage ECMWF verbessert, indem sie den klassischen Code durch eine Deep-Learning-Applikation ersetzt haben. Das erhöhte die Vorhersagewahrscheinlichkeit des Modells um über 14 Prozent.
Allerdings: «Um ein solches Ergebnis zu erreichen, müssen meist verschiedene Modelle und Varianten ausgetestet und trainiert werden, um dasjenige zu finden, das am besten funktioniert», sagt Hoefler. «Das bedeutet wochenlange Rechenzeit. Solche Forschungsanwendungen werden darum am meisten von NoPFS und dem schnelleren Training profitieren.» Künftig will das Team die Art verfeinern, wie NoPFS Datenelemente vorzeitig lädt und zwischenspeichert, um so das Training noch mehr zu beschleunigen.
Allerdings: «Um ein solches Ergebnis zu erreichen, müssen meist verschiedene Modelle und Varianten ausgetestet und trainiert werden, um dasjenige zu finden, das am besten funktioniert», sagt Hoefler. «Das bedeutet wochenlange Rechenzeit. Solche Forschungsanwendungen werden darum am meisten von NoPFS und dem schnelleren Training profitieren.» Künftig will das Team die Art verfeinern, wie NoPFS Datenelemente vorzeitig lädt und zwischenspeichert, um so das Training noch mehr zu beschleunigen.
Dieser Text von Santina Russo erschien zuerst auf ETH-News sowie davor auf Englisch auf der Website des CSCS.
Autor(in)
Santina
Russo, ETH-News