11. Juli 2023 von Yelle Lieder
Nachhaltige KI – Künstliche Intelligenz ökologisch nachhaltig entwickeln und betreiben
Wer künstliche Intelligenz (KI) entwickelt und betreibt, verbraucht Strom und emittiert indirekt Treibhausgase. Herstellung, Transport und Entsorgung der dafür benötigten Hardware müssen zusätzlich in der Ökobilanz der KI-Systeme berücksichtigt werden. Sie sorgen nicht nur energetisch, sondern auch beim Abbau seltener Erden, dem Wasserverbrauch und der Entsorgung für eine negative Ökobilanz. Dabei handelt es sich nicht um KI-spezifische Probleme. KI unterscheidet sich jedoch von klassischer Anwendungssoftware darin, dass sie mehr Rechenleistung und damit auch mehr Stromverbrauch und Hardware in Anspruch nimmt. Die folgende Abbildung vermittelt einen Eindruck von der Entwicklung der für KI verwendeten Rechenleistung, die durch die gestiegene Verfügbarkeit von Rechenleistung, höhere Hardwareeffizienz, Unterauslastung von Cloud-Rechenzentren und dadurch gesunkene Kosten möglich wurde. Auch wenn die Forscherinnen und Forscher davon ausgehen, dass sich dieser Trend nicht in diesem Tempo fortsetzen wird, stellen die Umweltauswirkungen der KI bereits heute eine Herausforderung dar, die es zu bewältigen gilt.
Dieser Blog-Beitrag zeigt, wie die Umweltauswirkungen von KI minimiert werden können und warum das Training der KI oft gar nicht so umweltschädlich ist, wie man vielleicht denkt. Dabei fokussiere ich mich auf Aspekte, die speziell KI betreffen. Allgemeine Tipps zur Entwicklung nachhaltiger Software findet ihr in diesem Blog-Beitrag.
Daten
Daten müssen erfasst, geladen, bereinigt, gelabelt und tokenizt werden. Dafür braucht es neben Rechenleistung auch Bandbreite für die Übertragung sowie physischen Speicher. Bei der ressourcenschonenden Datenverarbeitung sollte neben klassischen Best Practices wie Aggregation, Komprimierung und Filterung auf folgende Aspekte geachtet werden:
- Datenqualität: Eine geringe Datenqualität führt zu mehr Experimenten, längeren Trainingszeiten und schlechteren Ergebnissen. Daher sind kuratierte Datensets, die das Problem möglichst gut abbilden, zu bevorzugen, um weniger Rechenleistung in Anspruch zu nehmen.
- Datenmenge: Durch die Arbeit mit qualitativ hochwertigen Daten lässt sich die zu verarbeitende, zu übertragende und zu speichernde Datenmenge – und lassen sich somit die dafür benötigten Ressourcen – deutlich reduzieren.
- Datenformate: Statt CSV als gängiges Datenformat empfiehlt beispielsweise die Green Software Foundation das Parquet-Format. Dieses Format lässt sich in Python deutlich energieeffizienter verarbeiten.
Experimente
Die Entwicklungsphase von KI-Systemen kann deutlich mehr Ressourcen verbrauchen als die von klassischen Anwendungssystemen. Selbst wenn das Data Engineering und das Training der Modelle aus der Entwicklungsphase exkludiert werden, werden doch viele Ressourcen im Feintuning aufgewendet, bis die finale Konfiguration für das Training gefunden ist. In dieser Phase werden immer wieder mit verschiedenen Hyperparametern und Features über Teile der Daten iteriert, um sich einer funktionierenden Lösung zu nähern. Einige Aspekte, die dabei zu beachten sind:
- „Data centricity over model centricity“: Während der Entwicklung sollte das zu den Daten und der Problemstellung passende Modell gewählt werden. Zu häufig sieht man, dass Modelle gewählt werden, die schon immer mal ausprobiert werden sollten oder die gerade besonders heiß diskutiert werden. Dadurch entsteht Ressourcenverbrauch für Experimente mit komplexen Modellen, obwohl das Problem wahrscheinlich auch mit einfacheren Modellen lösbar wäre.
- Programmiersprache: Im Blog-Beitrag über nachhaltige Programmiersprachen wurde bereits deutlich, dass reines Laufzeitverhalten einer Sprache nicht alles ist. Da zwar der Laufzeitaspekt bei KI einen höheren Einfluss hat, gängige Python-Bibliotheken jedoch auf Low-Level-Sprachen basieren, sei hier nur darauf verwiesen, dass es gute Gründe dafür gibt, warum Python, R, C oder C++ sich als Standards etabliert haben.
- Occam’s Razor: Nicht jedes Problem muss mit KI gelöst werden. Oft lassen sich Probleme bereits hinreichend gut mit einfachen statistischen Verfahren oder eindimensionalen Datenreihen lösen.
Training
Über den Lebenszyklus eines KI-Modells hinweg macht das Training oft nur zehn Prozent des verbrauchten Workloads aus. Zwar ist der einzelne Trainingslauf sehr energieintensiv, jedoch werden Modelle eher selten trainiert. Speziell bei komplexeren KI-Verfahren wie neuronalen Netzen steigt mit der Anzahl der Parameter im Modell exponentiell auch der Energieverbrauch. Die doppelte Menge an Parametern führt aufgrund der komplexen Vernetzung und des iterativen Trainings zu mehr als dem doppelten Ressourcenverbrauch. Einige Tipps für das nachhaltige Training sind:
- Trainings-Effizienz: Auch wenn „nur“ zehn Prozent der Emissionen aus dem Training kommen, sollte das Verhalten von Modellen während des Trainings natürlich in der Auswahlentscheidung berücksichtigt werden. Die Effizienz von Modellen ist gut erforscht und Benchmarks liefern einen guten Ausgangspunkt für die Evaluation eigener Anwendungsfälle.
- GPU-optimierte Lösungen: Durch das Training auf Grafikkarten kann die Menge der verbrauchten Energie je Berechnung im Vergleich zum Training im Arbeitsspeicher deutlich reduziert werden.
- Transfer Learning: Durch die Wiederverwendung vortrainierter Modelle kann die initial investierte Rechenleistung auch in späteren Modellen „wiederverwendet“ werden. Somit amortisieren sich die Energiekosten für das Training des Foundation Models über mehrere Anwendungsfälle hinweg.
- Re-Training: Einmal trainiert, liefern Modelle nicht für alle Zeiten sinnvolle Ergebnisse. Für das Re-Training muss darauf geachtet werden, nicht pauschal auf neuen Daten zu trainieren, nur weil sie verfügbar sind. Vor jedem Re-Training ist zu prüfen, wie sich die Leistung der trainierten Modelle über die Zeit entwickelt und ob ein Re-Training sinnvoll ist.
• Speicheroptimierte Modelle: Fertig trainierte Modelle können viel Speicherplatz belegen. Bits und Bytes auf einem Server stehen auch in der Cloud immer physischen Speichermedien gegenüber. Etwa durch die Anwendung von Quantisierung – also die Umwandlung von kontinuierlichen Werten in diskrete Werte – lässt sich die Größe vieler Modelle und so die für die Speicherung benötigte physische Hardware reduzieren.
Inferenz
Die Inferenz, sprich die Berechnung eines Ergebnisses aus einem Modell, macht über den Lebenszyklus vieler Modelle circa 90 Prozent des Workloads aus. Zwar verbraucht eine einzelne Inferenz verglichen mit dem Training nur geringe Mengen Energie – durch die schiere Menge an Inferenzen, die auf einem durchschnittlichen Modell durchgeführt werden, ist der Wirkungsgrad für die Nachhaltigkeit im Bereich der Inferenz jedoch oft höher als im eigentlichen Training. Einige Maßnahmen sind:
- Inferenz-optimierte Modelle: Das Problem ist hinreichend gut verstanden und so kann man sich an öffentlichen Benchmarks wie ELEx – in der nachfolgenden Abbildung zu sehen – orientieren, um herauszufinden, welche Modelle man sich in Bezug auf effiziente Inferenz zuerst anschauen sollte. Bei der Betrachtung des Verhältnisses von der Leistung der Modelle und ihrem Energieverbrauch wird deutlich, dass einige Modelle eine vergleichbare Leistung mit deutlich unterschiedlichen Energieverbräuchen liefern.
- Edge Computing: Indem die Inferenz oder manchmal sogar das Training in die Edge – also näher an Endgeräte – verlagert werden, lassen sich gleich zwei Vorteile kombinieren: Einerseits werden die Übertragungsnetze weniger belastet, wodurch der Energieverbrauch für die Datenübertragung reduziert wird. Andererseits sind die Prozessoren von Endgeräten häufig nicht ansatzweise ausgelastet. Eine zusätzliche Auslastung durch etwas Inferenz lässt den Stromverbrauch aufgrund des nicht linearen Zusammenhangs von Auslastung und Stromverbrauch nur in geringem Umfang steigen und es braucht weniger physische Hardware in den Rechenzentren.
- Caching: Erwartbare oder besonders häufige Anfragen für Inferenzen können zwischengespeichert werden. So muss nicht jedes Mal eine tatsächliche Inferenz für gleichartige Anfragen durchgeführt werden. Häufig genügt in diesem Fall das Abrufen einer bereits gespeicherten Antwort.
Perspektive
Zugegeben, nur wenige der Maßnahmen sind etwas bahnbrechend Neues. Die meisten gehören schlicht zum guten Handwerkszeug eines jeden Data Scientist. Neben allen diskutierten Maßnahmen, um KI nachhaltiger zu gestalten, ist die Transparenz jedoch der mutmaßlich wichtigste Aspekt. Verbraucherinnen und Verbraucher haben häufig keine Intuition dafür, wie viel physische Infrastruktur hinter virtuellen Diensten steckt und dort Ressourcen verbraucht. Wer also nachhaltige KI anbietet, muss auch ihren Ressourcenverbrauch transparent machen. Sowohl für Nutzerinnen und Nutzer, um diese bei nachhaltigen Verhaltensweisen und Auswahlentscheidungen zu fördern, als auch für Entwicklerinnen und Entwickler sowie Entscheidungstragende. Nur wer die tatsächlichen Kosten eines Systems kennt, kann eine ökologische Kosten-Nutzen-Abwägung treffen. Zudem muss klar sein, dass Nachhaltigkeit nicht das einzige Entscheidungskriterium für die Auswahl von Technologien sein kann. Vielmehr muss Nachhaltigkeit zukünftig als eines von vielen Kriterien berücksichtigt werden.
Auch wenn sich dieser Blog-Beitrag nicht direkt wie eine Ode an die KI liest, so ist doch ein Punkt wichtig zu verstehen: KI bietet vor allem das Potenzial, den Umweltschutz und die Erreichung globaler Nachhaltigkeitsziele zu fördern. Indem wir die Energiewende mit intelligenten Lösungen beschleunigen, in den Bereichen Produktion, Mobilität, Bau und Logistik zur Dekarbonisierung beitragen, in Agrar- und Forstwirtschaft Adaption ermöglichen und die Resilienz gegen den menschengemachten Klimawandel erhöhen. Sicher müssen wir auch noch besser darin werden, nicht jedem unsinnigen Problem mit KI zu begegnen. KI kann jedoch ein entscheidender Wegbereiter für mehr Nachhaltigkeit sein, wenn wir auf die vorgestellten Regeln achten und sie verantwortungsvoll einsetzen.