Ressourcenbewusstes Maschinelles Lernen: Konzepte für mehr Energieeffizienz

Autor*in:
Dr.
Sebastian
Buschjäger

Maschinelles Lernen (ML) und Data Mining sind aus unserem Alltag kaum noch wegzudenken. Daher rückt auch der damit verbundene Energieaufwand zunehmend in den Fokus. Das Forschungsfeld des ressourcenbewussten ML hat das Ziel, den Energiebedarf sowohl für die Entwicklung als auch den Einsatz von ML zu reduzieren, ohne dabei die Qualität der Ergebnisse zu verringern. Vor welchen Herausforderungen Forschende dabei stehen und welche Lösungsansätze schon gefunden wurden, erläutern wir in diesem Beitrag unter anderem am Beispiel des autonomen Fahrens.

Um Ansätze für Energieeinsparungen zu finden, schauen wir uns den gesamten Entwicklungszyklus von ML-Anwendungen an. Hier denken wir häufig an Data Scientists, die Daten aufbereiten und eine Vielzahl an Modellen trainieren, um schließlich das beste Modell für eine bestimmte Aufgabe zu finden. Sobald jedoch ein gutes Modell für eine bestimmte Anwendung gefunden ist, verändert sich der Fokus vom Modelltraining auf die kontinuierliche Modellanwendung durch eine Vielzahl von Nutzer*innen. Durch diese vertikale Verteilung des Modells ist der Energieaufwand für die Modellanwendung häufig höher, als der Energiebedarf für das eigentliche Modelltraining.

Beispiel autonomes Fahren: hoher Energiebedarf für ML-Einsatz

Hierzu ein Beispiel aus der Praxis des autonomen Fahrens: Der Tesla Autopilot verwendet zur Autosteuerung ein Deep-Learning-Modell, welches mithilfe eines eigens für diese Anwendung entwickelten Chips, der rund 57 W verbraucht, ausgeführt wird. Das Kraftfahrt-Bundesamt schätzt, dass 2018 (also vor der Corona Pandemie) alle deutschen Autofahrer*innen kombiniert ca. 630 Milliarden Kilometer mit ihrem PKW gefahren sind. Dabei beträgt die Durchschnittsgeschwindigkeit ca. 45 km/h, was zu einer kombinierten Gesamtfahrzeit von ca. 14 Milliarden Stunden führt. Wenn man nun für alle diese Fahrten Teslas Autopiloten benutzen möchte, so kommt man auf einen kombinierten Energieverbrauch von ca. 0.79 Terawattstunden pro Jahr. Dies entspricht ungefähr der jährlichen Energieproduktion des größten Wasserkraftwerkes in Deutschland. Mit anderen Worten, man benötigt ein ganzes Kraftwerk, um ein einzelnes Feature, welches Machine Learning benutzt, bereitzustellen.

Entwicklungszyklus für ressourceneffizientes Maschinelles Lernen

Das Forschungsfeld des Resource-aware Machine Learning beschäftigt sich damit, wie man diesen Energieverbrauch reduzieren kann. Hierzu schauen wir uns zunächst den Entwicklungszyklus eines ML-Modells in der nachfolgenden Abbildung an: Wir starten mit der Analyse des Business-Problems, also des Anwendungsfalls. Daraus ergeben sich die Anforderungen an das Modell (z. B. Zielgenauigkeit) und die Rahmenbedingungen für die Anwendungen des Modells (z. B.  Ausführung in einem fahrenden Auto ohne bestehende Internetverbindung). Anschließend startet die Suche nach dem besten Modell, indem eine Vielzahl verschiedener Modelle trainiert und evaluiert werden. Als besonderer Schritt im Resource-aware Machine Learning hat sich das Nachjustieren (engl. post-processing) von einem bereits trainierten Modell bewährt. Die Idee des post-processing ist, zunächst ein gutes ML-Modell für das Business-Problem zu finden (z. B. mit maximaler Zielgenauigkeit) und anschließend das Modell ressourcenschonender zu machen. Wenn dann das beste Modell gefunden ist, kann es auf einem ressourcenschonenden, kleinen Gerät bereitgestellt und dort kontinuierlich angewendet werden.

Auf dieser Grafik sieht man einen ressourceneffiziente ML-Anwendung
Abb. 1: Entwicklungszyklus für eine ressourceneffiziente ML-Anwendung
© Dr. Sebastian Buschjäger & Lamarr-Institut

Energiebedarf für Rechenoperationen und Speicherzugriff

Um zu einem möglichst effizienten System zu gelangen, müssen alle Schritte in diesem Entwicklungszyklus berücksichtigt werden. Neben der Vorhersagegenauigkeit des Modells sind hier der Speicherbedarf und die Anzahl der Gleitkommaoperationen entscheidend, wie Tabelle 1 zeigt. Nimmt man eine einfache 32-Bit-Integer-Addition, d.h. die Addition von zwei ganzen Zahlen als Referenz (relative Energiekosten von 1), dann ist eine Addition von zwei 32-Bit-Gleitkommazahlen fast 10-mal so teuer. Die Multiplikation von zwei ganzen Zahlen (32-bit integer) ist mehr als 30-mal so teuer und die Multiplikation von zwei Gleitkommazahlen (32-bit float) ist fast 40-mal so teuer wie die Addition von zwei ganzen Zahlen.

Wenn man sich nun die Kosten für den Speicherzugriff anschaut, wird das Problem noch gravierender. Der Zugriff auf Daten aus dem Zwischenspeicher (Cache) ist 50 bis 500-mal so teuer und der Zugriff auf den Hauptspeicher kann bis zu 6000-mal teurer sein als eine einfache Addition. Wir kommen kurz auf unser vorheriges Beispiel des selbstfahrenden Autos zurück. Der genaue Aufbau des Tesla Autopiloten ist zwar ein gut gehütetes Geheimnis, doch es ist bekannt, dass Tesla Tiefe Neuronale Netze in einer sogenannten HydraNet-Architektur als Basis für den Autopiloten nimmt. Die kleinsten Netze aus der HydraNet-Familie haben rund 1,2 Millionen Parameter und benötigen damit rund 1 MB Festplattenspeicher, sowie gut 52 Millionen (Gleitkomma) Additionsoperationen für eine Vorhersage. Sie bieten dabei auf dem populären ImageNet Datensatz eine Genauigkeit von lediglich 65 %. Das größte Netz der HydraNet-Familie hingegen hat etwa 14 Millionen Parameter, was zu einem Speicherbedarf von rund 10 MB führt und rund 500 Millionen (Gleitkomma) Additionsoperationen für eine einzelne Vorhersage benötigt. Dafür verbessert sich die Vorhersagegenauigkeit dieses Modells auf ca. 75 % für die Objekterkennung. Diese Verbesserung von rund 10 Prozentpunkten ist aber teuer erkauft: Das größte Modell ist fast 11 mal größer als sein kleinster Bruder, was bedeutet, dass wir rund 67.200 Picojoule mehr Energie pro Klassifikation benötigen.

OperationEnergie [Picojoule]Relative Energiekosten
8 bit integer ADD0.030.3
32 bit integer ADD0.11
8 bit integer MULT0.22
16 bit float ADD0.44
32 bit float ADD0.99
16 bit float MULT1.111
32 bit integer MULT3.131
32 bit float MULT3.737
Cache access5-5050-500
DRAM access320-6403200-6400
Tabelle 1: Vergleich des Energieverbrauchs verschiedener Instruktionen bei einer 45 NM CMOS Architektur. ADD steht für eine Addition, MULT für eine Multiplikation.

Offene Forschungsfragen zur Anpassung des ML-Entwicklungszyklus

Das zentrale Ziel im Resource-aware Machine Learning ist also, den Speicherbedarf und die Anzahl von Gleitkommaoperationen zu reduzieren. Zu diesem Zweck kann man beispielsweise Gleitkommazahlen zu ganzen Zahlen runden, mit ganzen Zahlen Gleitkommaoperationen simulieren oder Modelle benutzen, die gar keine Gleitkommazahlen benötigen. Bezogen auf den in Abbildung 1 beschriebenen Entwicklungszyklus ergeben sich die folgenden weiteren Forschungsfragen:

  1. Modell trainieren: Können wir ein Modell trainieren, welches weniger Parameter hat, aber die gleiche Vorhersagegenauigkeit wie das Referenzmodell? Können wir ein Modell trainieren, welches ohne Gleitkommaoperationen auskommt?
  2. Modell nachjustieren: Können wir Parameter aus dem Modell entfernen, ohne dass die Vorhersagequalität leidet? Können wir das Modell so anpassen, dass es weniger Gleitkommaoperationen benötigt, ohne die Genauigkeit zu verändern?
  3. Modell anwenden: Was ist für die konkrete Anwendung des Modells die optimale Implementierung für die gegebene Hardware? Können wir Hardwareeigenschaften wie beispielsweise Tensor Processing Units für eine effizientere Anwendung nutzen?

Ressourcenschonendes Maschinelles Lernen als Schlüsseltechnologie für die Zukunft

Nachhaltigkeit wird eine der zentralen Herausforderungen im kommenden Jahrzehnt sein. Durch die immer weitere Verbreitung von ML-Modellen in unserem Alltag ist ML selbst auch davon betroffen. Auf den ersten Blick kostet das häufige Trainieren von ML-Modellen am meisten Energie, doch durch die vertikale Auslieferung von Modellen an eine große Anzahl von Nutzer*innen übersteigt der Energiebedarf für die Modellanwendung oft den Energieverbrauch des Trainings um ein Vielfaches. Aus diesem Grund muss vor allem die Anwendung von Modellen optimiert werden. Eine optimierte Modellanwendung bedeutet auch, dass Modelle in der Regel schneller ausgeführt werden können, was insgesamt zu einer Zeitersparnis führt. Da während des Trainings und während der explorativen Phase des Trainings Modelle immer und immer wieder angewendet werden, wirkt sich eine verbesserte Modellanwendung also ultimativ auch positiv auf das Training von neuen Modellen aus. Daher hilft Resource-aware Machine Learning sowohl dem Training als auch der Modellanwendung. Insgesamt ist ressourcenschonendes Maschinelles Lernen eine Schlüsseltechnologie für die Zukunft, die dazu beitragen kann, den Energieverbrauch von ML-Modellen zu reduzieren und gleichzeitig die Effizienz des Trainingsprozesses zu verbessern.

Autor*in

Dr.
Sebastian
Buschjäger

Sebastian Buschjäger ist Wissenschaftlicher Mitarbeiter am Lamarr-Institut für Maschinelles Lernen und Künstliche Intelligenz an der Technischen Universität Dortmund. Seine Forschung befasst sich mit ressourcen-bewusstem Maschinellen Lernen sowie Spezialhardware für ML. Hier beschäftigt er sich vorwiegend mit den Teilgebieten des Ensemble-Learning, sowie randomisierten Algorithmen und der schnellen Modellanwendung auf Field-Programmable-Gate-Arrays (FPGAs).