
Adam-Optimierer
Der Adam-Optimierer ist ein Rechenverfahren, das beim Training von KI-Modellen bestimmt, wie stark die internen Einstellwerte nach jedem Lernschritt verändert werden. Er passt die Schrittweite für jeden Wert einzeln an und ist seit 2015 das Standardverfahren beim Training neuronaler Netze.
Ein KI-Modell besteht aus Millionen oder Milliarden von Zahlen, die zu Beginn zufällig gesetzt sind. Damit das Modell etwas Sinnvolles tut, müssen diese Zahlen schrittweise verbessert werden. Nach jedem Versuch misst man, wie falsch die Ausgabe war, und verändert die Zahlen ein kleines Stück in die bessere Richtung. Ein Optimierer ist genau das Verfahren, das entscheidet, wie groß dieses Stück ausfällt. Der Adam-Optimierer ist die heute mit Abstand am häufigsten benutzte Variante davon. Sein Name kommt von « Adaptive Moment Estimation », also etwa « anpassende Schätzung von Mittelwerten ».
Warum fast jedes große Modell mit Adam trainiert wird
Vor Adam nutzte man meist ein einfacheres Verfahren, den einfachen Gradientenabstieg. Dort gilt für alle Zahlen im Modell dieselbe Schrittweite. Das ist ein Problem, weil sich manche Zahlen stark auf das Ergebnis auswirken und andere kaum. Wählt man die Schrittweite groß, springen die empfindlichen Werte wild hin und her. Wählt man sie klein, brauchen die trägen Werte ewig.
Adam löst das, indem jede einzelne Zahl im Modell ihre eigene, laufend angepasste Schrittweite bekommt. Dadurch muss der Mensch weniger von Hand einstellen. Ein Training, das mit dem alten Verfahren nur nach tagelangem Herumprobieren funktioniert hätte, läuft mit Adam oft beim ersten Versuch.
Der praktische Effekt ist enorm. Ein Trainingslauf für ein großes Sprachmodell kostet leicht mehrere Millionen Euro an Rechenzeit. Ein Verfahren, das schneller ans Ziel kommt und seltener scheitert, spart also echtes Geld. Der Fachaufsatz zu Adam von 2015 gehört zu den meistzitierten Arbeiten der gesamten Informatik.
Schwung und Bremse: die zwei Gedächtnisse von Adam
Adam merkt sich für jede Zahl im Modell zwei Dinge aus der Vergangenheit. Das erste ist die durchschnittliche Richtung der letzten Änderungen. Das wirkt wie Schwung: Zeigten die letzten Schritte alle in dieselbe Richtung, geht es dort zügiger weiter. Man kann es sich wie eine Kugel vorstellen, die einen Hang hinabrollt. Sie wird schneller, statt bei jedem Schritt neu anzufahren.
Das zweite Gedächtnis speichert, wie stark die Änderungen zuletzt schwankten. Eine Zahl mit großen, unruhigen Ausschlägen bekommt eine kleinere Schrittweite. Eine Zahl, die sich lange kaum bewegt hat, bekommt eine größere. Das ist die Bremse, die verhindert, dass empfindliche Werte über das Ziel hinausschießen.
Aus beiden Gedächtnissen berechnet Adam für jede Zahl einen eigenen Änderungswert. Der Mensch gibt dabei nur eine Grundschrittweite vor, die Lernrate. Ein verbreiteter Irrtum ist, dass Adam diese Lernrate überflüssig macht. Sie bleibt der wichtigste einzustellende Wert, Adam verteilt sie nur klüger auf die einzelnen Zahlen.
AdamW, Trainingskurven und was in Fachartikeln davon auftaucht
Wer ein neuronales Netz programmiert, egal ob in der Schule oder bei einem Konzern, wählt Adam meist als Voreinstellung. In den gängigen Programmbibliotheken steht es als eine einzige Zeile bereit. Auch Bilderzeuger und Übersetzungsmodelle sind fast durchweg damit trainiert worden.
In technischen Berichten zu neuen Modellen findet man oft die Abkürzung AdamW. Das ist eine leicht veränderte Fassung, die zusätzlich verhindert, dass die Zahlen im Modell unnötig groß werden. Große Sprachmodelle werden heute üblicherweise mit AdamW trainiert, nicht mit dem Original von 2015.
Ein Nachteil taucht bei sehr großen Modellen auf. Adam muss für jede Zahl zwei zusätzliche Werte im Speicher halten. Der Speicherbedarf des Trainings verdreifacht sich dadurch grob. Deshalb wird gerade daran geforscht, sparsamere Verfahren zu finden. Bis dahin bleibt Adam der Standard, an dem sich jede Neuentwicklung messen lassen muss.