Metas Sprachmodell Llama 2 ist flexibler als der Vorgänger
Llama 2 steht im Gegensatz zum Vorgänger offiziell zur Verfügung. Das Sprachmodell läuft auf eigener Hardware – mit ein paar Tricks auch ohne teure GPU.
- Prof. Christian Winkler
Meta hat das Sprachmodell Llama aktualisiert, das nun leistungsfähiger und vor allem offener ist: Die neue Version steht nicht nur Forschenden zur Verfügung, sondern alle Interessierten können sie sich nach einer Registrierung in unterschiedlichen Varianten herunterladen. Allerdings verlangt das Modell sehr viel GPU-Speicher – den nicht jeder hat. Doch man kann den Umfang so reduzieren, dass das Modell in akzeptabler Geschwindigkeit auf der CPU läuft.
Llama bisher
Bereits im Februar 2023 hatte Meta sein großes Sprachmodell veröffentlicht und Forschenden zur Verfügung gestellt. Durch geleakte Torrent-Downloads und URLs war das Modell schnell "in der Wildnis". Es gab rege Diskussionen über die Legalität der geleakten Variante.
Llama hat bereits damals großes Interesse hervorgerufen, weil sich das Modell im Gegensatz zu ChatGPT an spezielle Domänen anpassen lässt. Da Llama zudem auf eigener Hardware laufen kann, eignet es sich für sensible Daten, da es die Daten nicht wie ChatGPT zu OpenAI in die USA schickt.
Schnell tauchten auf Llama aufbauende Modelle wie Vicuna auf, die sich als sogenannte Instruction-Following-Modelle ähnlich zu ChatGPT verhalten. Weil nicht jeder über eine A100-Grafikkarte mit 80 GB RAM verfügt, erschien bald trickreiche Open-Source-Software, die den Arbeitsspeicherbedarf deutlich reduziert und gleichzeitig die Rechengeschwindigkeit erhöht. Daraus hat sich in den letzten Monaten ein regelrechtes Ökosystem entwickelt, unter anderem mit vielen neuen Basismodellen, die Llama ersetzen können.
Das zweite Llama
Meta hat in der Zwischenzeit aber ebenfalls weitergearbeitet und die Llama-Modelle optimiert. Dass der Konzern vorhatte, sie kommerziell zur Verfügung zu stellen, war zu erwarten. Die Umsetzung ist allerdings etwas überraschend: Neben einer Zusammenarbeit mit Microsoft und dem Bereitstellen in der Azure Cloud können Interessierte die Modelle nach einer Registrierung einfach herunterladen. Auf die Anmelde-Mail erhält man schnell eine Antwort mit einem personalisierten Link, den man zuerst im Browser ausprobieren sollte, weil Meta anfangs einige Probleme mit der Signatur hatte. Anschließend lassen sich die Modelle mit einem auf GitHub beheimateten Projekt herunterladen. Aber Achtung: Die Downloads benötigen viel Speicherplatz und Bandbreite – insgesamt kommen etwa 330 GByte an Daten zusammen.
Einiges hat sich an den Modellen geändert. Zuerst fällt ins Auge, dass es kein Modell mit 30 Milliarden Parametern (30B-Modell) mehr gibt. Das bisher größte ist außerdem von 65 Milliarden auf 70 Milliarden Parameter (70B-Modell) angewachsen – aus groß wird größer. Das Modell ist nicht nur umfangreicher, sondern integriert zusätzlich mit der sogenannten Grouped-Query Attention (GQA) einen neuen Mechanismus. Er kombiniert die Geschwindigkeit der ungenauen Multi Query Attention mit der Genauigkeit der Multi Head Attention und ist daher besonders für sehr große Sprachmodelle sinnvoll. Dort lohnt sich das dann aufwändigere Training, weil die Inferenzgeschwindigkeit deutlich höher ist.
Fast noch spannender ist allerdings, dass alle Modelle nun obendrein in einer -chat-Variante zur Verfügung stehen, die als Instruction-Following-Modell trainiert ist. Dabei hat Meta laut eigener Aussagen 100.000 Instruktionen feingetunt und eine Million menschliche Annotationen zusätzlich berücksichtigt. Das klingt vielversprechend.
Los geht's
Wer die Modelle im Hugging-Face-Ökosystem benutzen möchte, muss sich lediglich bei Hugging Face mit derselben E-Mail-Adresse registrieren wie für die Modelle von Meta. Mit huggingface-cli login
kann man sich anschließend auf dem Computer anmelden, von dem aus man die Modelle nutzen möchte. Danach stehen sie wie gewohnt zur Verfügung, benötigen allerdings GPUs mit viel Video-RAM. Das aktuelle Transformer-Paket bietet sogenanntes Rope-Scaling an. Es rechnet mit geringerer Genauigkeit und benötigt weniger Speicher, liefert aber trotzdem eine gute Vorhersage-Performance.
Da eine leistungsstarke Grafikkarte nicht immer zur VerfĂĽgung steht, lohnt sich ein Blick darauf, wie sich die Modelle auf einer CPU ausfĂĽhren lassen. Der Entwickler Georgi Gerganov stellt dazu auf GitHub Software zur VerfĂĽgung. Im ersten Schritt muss man mit einem Konverter-Tool die von Meta bereitgestellten Modelle, die im ZIP-Format vorliegen, in das in der Software genutzte ggml-Format umwandeln:
python3 convert.py --outfile \
${MODEL_PATH}/llama-2-7b-chat/ggml-model-f16.bin \
--outtype f16 ${MODEL_PATH}/llama-2-7b-chat/
Leider ist das ggml-Format nicht schlanker, sodass zum Konvertieren aller Modelle über 300 GByte zusätzlicher Speicher erforderlich sind. Auch für Computer mit großem Arbeitsspeicher ist es daher schwierig, die Modelle im RAM zu halten. Daher – und um deutlich schneller rechnen zu können – werden die Modelle quantisiert: Das reduziert die Genauigkeit von 16 Bit auf 4 Bit. Auf den ersten Blick ist es erstaunlich, dass das überhaupt funktioniert. Die dahinter liegende Methode namens GPTQ wurde erst Anfang 2023 veröffentlicht.
Mit einer weniger fortgeschrittenen Quantisierung würde man tatsächlich keine vernünftigen Resultate erzielen. Der Befehl
./quantize \
${MODEL_PATH}/llama-2-7b-chat/ggml-model-f16.bin \
${MODEL_PATH}/llama-2-7b-chat/ggml-model-q4_0.bin q4_0
quantisiert beispielsweise das Modell mit sieben Milliarden Parametern. Der Zeitaufwand hält sich dabei noch im Rahmen.