Supercomputing

Vorausschauende Software beschleunigt das Training von neuronalen Netzen

von - 21.01.2022
Foto: CSCS
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.
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ößerer Wahrscheinlichkeit richtig identifizieren. Sofern dieser Zyklus mit genügend Proben aus dem Datensatz wiederholt wird, tippt die Anwendung schließlich annähernd jedes Mal richtig.
Dieser Lernprozess ist jedoch äußerst 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, heißen 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.
Verwandte Themen