Großes KI-Sprachmodell am eigenen Rechner: Ein LLaMA für die Westentasche?
ChatGPT und GPT-4 sind Blackboxen. Daher lohnt es sich, ein offenes Modell auf dem eigenen Rechner auszuprobieren – mit Abstrichen sogar auf dem Raspi.
- Prof. Christian Winkler
Drei Wochen vor dem Launch von GPT-4 durch OpenAI hat Facebooks Mutterkonzern Meta ein eigenes großes Sprachmodell (LLM) präsentiert: das mit offenen Daten vortrainierte LLaMA (Large Language Model Meta AI). Facebook Research stellte es der weltweiten KI-Forschungs-Community nach einer kurzen Prüfung der jeweiligen E-Mail-Adresse zur Verfügung. Bald wurde das Modell geleakt und war als BitTorrent verfügbar – das lädt zu eigenen Experimenten ein. Ob und wie das Modell verwendet werden darf, ist noch nicht endgültig geklärt. Man kann annehmen, dass Meta die große Popularität nicht mit Rechtsstreitigkeiten ins Gegenteil kehren möchte.
Im Gegensatz zu ChatGPT und GPT-4, die Blackboxen darstellen und außer über Prompts keinerlei Einflussmöglichkeiten bieten, ist LLaMA ein offenes Modell. Man kann es auf eigener Hardware laufen lassen und anpassen. So ist es einem Forschungsteam in Stanford gelungen, aus dem vergleichsweise kleinen LLaMA ein neues Modell abzuleiten, das es mit ChatGPT aufnehmen kann. Durch den offengelegten Trainingsprozess weiß man deutlich besser, was in dem Modell steckt, und kann es risikofreier betreiben.
Anatomie eines Sprachmodells
Moderne Sprachmodelle basieren auf komplexen neuronalen Netzen mit unterschiedlichen Ebenen, die mit Tricks wie dem Attention-Mechanismus arbeiten. Die Architektur wird als Transformer beschrieben. Das erste solche Modell war BERT (Bidirectional Encoder Representations from Transformers) von Google und es hat eine ganze Branche revolutioniert:
BERT ist eine Anwendungsform des Natural Language Processing (NLP). Seine Urversion umfasste 120 Millionen Parameter, allerdings wurden die Modelle im Laufe der Zeit immer größer. Das liegt an der wachsenden Rechenkapazität, aber auch an den nahezu unerschöpflich vorhandenen Trainingsdaten – dafür genügen normale Texte. Das Training eines solchen Modells ist enorm aufwendig und stellt hohe Anforderungen an die Hardware und Rechenkraft. Für die Vorhersage von Tokens, also die Anwendung, genügt es, das neuronale Netz auszuwerten. Auch das dauert selbst in reduzierter Genauigkeit auf CPUs schon eine ganze Weile, wie sich später zeigen wird. Im Training müssen Milliarden Parameter so angepasst werden, dass sich ein möglichst optimales Ergebnis ergibt.
Das ist mit einem enormen Rechenaufwand verbunden – Microsoft hat 2019 eine Milliarde US-Dollar in OpenAI investiert und wird weitere Milliarden investieren. Zurzeit kauft der Konzern Tausende von Nvidia-Beschleuniger, um einen neuen Supercomputer einzurichten. Für große Sprachmodelle belaufen sich die Kosten eines einzelnen Trainingsdurchgangs auf Millionenbeträge.
Auch das LLaMA-Training von Meta war vermutlich sehr kostspielig. Das Modell gibt es in unterschiedlichen Größen: mit 7 Milliarden, 13 Milliarden, 30 Milliarden oder 65 Milliarden Parametern. All diese Parameter müssen im Trainingsprozess optimiert werden. In der Auswertung des neuronalen Netzes dienen sie zur Gewichtung der Vektoren in der Matrixmultiplikation und geben damit eine Größenordnung vor, wie aufwendig die Auswertung (also die Vorhersage von Tokens) sein wird. Das Prinzip ist bei allen Transformer-Modellen ähnlich:
- Ein Text wird für das Training in Tokens unterteilt. In vielen Fällen sind das einzelne Wörter, manchmal auch Wortbestandteile oder Kombinationen von Wörtern (Entitäten). Jedem dieser Tokens entspricht eine bestimmte Nummer/Position im Vokabular.
- Die Nummern der Tokens eines ganzen Absatzes werden dem Transformer-Modell als Input in der ersten Ebene des neuronalen Netzes zur Verfügung gestellt. In obigem Bild (Abb. 1) können das bis zu 512 Tokens sein. Diese Kontextlänge kann bei großen Modellen höhere Werte annehmen.
- Für diesen Absatz werden die Daten durch das gesamte Transformer-Netzwerk propagiert.
- Als Ergebnis entsteht eine Wahrscheinlichkeitsverteilung für ein neues Token, das das Wort repräsentiert, das gut zu dem bisherigen Absatz passt. Dieses Token wird ausgegeben.
- Anschließend beginnt der Prozess von Neuem, dann jedoch jeweils mit einem Token mehr als zuvor.
Die Vorwärtspropagation (in diesem Fall die Vorhersage von Tokens) in einem neuronalen Netzwerk wird durch eine Matrixmultiplikation dargestellt. Dabei werden korrespondierende Werte miteinander multipliziert und das Ergebnis aufaddiert. Für jedes vorherzusagende Token sind das viele Milliarden an Multiplikations- und Additionsschritten. Das ist auch der Grund dafür, dass dieser Vorgang auf Grafikkarten (GPUs) deutlich schneller funktioniert als auf CPUs: Da die Operationen denen beim Rendern von Grafiken entsprechen, sind Grafikkarten darauf optimiert und können sie mit ihren vielen Hunderten (oder Tausenden) Shadern parallel durchführen. Im Vergleich zu CPUs spart das einen Großteil der bisherigen Wartezeit.
Am 10. und 11. Mai 2023 findet die Minds Mastering Machines in Karlsruhe statt. Der Autor dieses Artikels hält auf der Konferenz eine Keynote, bei der seine hier beschriebenen Erfahrungen rund um LLaMA auf dem eigenen Rechner im Mittelpunkt stehen. Vor Ort gibt es die Möglichkeit, nachzufragen.
Die seit 2018 von iX, heise Developer und dpunkt.verlag ausgerichtete Fachkonferenz richtet sich in erster Linie an Data Scientists, Data Engineers und Developer, die Machine-Learning-Projekte in die Realität umsetzen. Das Programm bietet an zwei Tagen gut 30 Vorträge unter anderem zu Sprachmodellen, Cybersecurity, Resilienz und Modelloptimierung. Die Vorträge widmen sich unter anderem dem Umgang mit Verzerrungen in Datenprodukten, der Qualitätssicherung in KI-Systemen und resilientem Machine Learning.
Bis zum 27. März gibt es Tickets zum vergünstigten Frühbucherpreis.
Sprachmodelle auf der CPU
Lassen sich Sprachmodelle mit nur einer Grafikkarte betreiben? Für das Training ist ein Cluster von (Profi-)GPUs unumgänglich. Mit viel Geduld konnte man die Vorhersage großer Sprachmodelle bisher auch rein durch CPUs erledigen lassen.
Wer mit ChatGPT experimentiert, bekommt unweigerlich das Bedürfnis, Modelle dieser Art auch auf der eigenen Hardware auszuprobieren. Der Leak des Modells hat einige Entwickler motiviert, mit Approximationen (also Näherungen) das Verfahren auch auf CPUs zur Verfügung zu stellen. Mit den angenäherten Werten können diese schnell genug rechnen, dass man auf Ergebnisse nicht allzu lange warten muss.
Dazu sind einige Einschränkungen notwendig:
- Die Gewichte im Original-Modell sind als 32-Bit-Fließkommazahlen abgespeichert. Da CPUs für solche Berechnungen zu langsam sind, ist der Vorgang auf 16 Bit zu verkürzen.
- Aber selbst damit funktioniert die Berechnung nicht schnell genug. Deshalb werden diese 16-Bit-Zahlen auf lediglich vier Bit quantisiert.
- Anschließend können die Modelle ausgewertet werden. Das geht so behäbig, dass man fast mitlesen kann.