So funktionieren grosse (Open-Source-)Sprachmodelle
Open-Source-Grosssprachmodelle (LLMs) sind leistungsstarke Werkzeuge, die eine breite Palette von Anwendungsfällen abdecken. Der folgende Fachbeitrag bietet einen detaillierten Einblick in die Funktionsweise eines LLM und erklärt, welche Faktoren man bei der Auswahl eines grossen Sprachmodells berücksichtigen muss.
Grosse Sprachmodelle (Large Language Models, LLMs), wie wir sie heute kennen, sind nur die Spitze des Eisbergs. In der Geschichte der KI wurden Sprachmodelle (Modelle zur Lösung sprachbezogener Probleme wie etwa Übersetzung, Klassifikation oder Textgenerierung) mit Techniken entwickelt, die nicht immer auf neuronalen Netzen basierten (z. B. Hidden-Markov-Modelle). Heute erleben wir die Ära der Transformer-Modelle (das T in GPT). Dabei handelt es sich um Neuronale-Netze-Modelle, die auf dem "Attention"-Mechanismus aufbauen.
Wie funktioniert ein LLM?
Grundsätzlich kann ein LLM in vier Hauptteile oder Funktionen unterteilt werden: Tokenisierung ("Tokenizer"), Einbettung ("Embedding"), Berechnung der Wahrscheinlichkeit des nächsten Tokens und Strategien zur Auswahl der Ausgabe (manchmal auch Dekodierung genannt).
Der erste Teil, die Tokenisierung, besteht darin, einen Text in kleinere Teile zu zerlegen. Für uns Menschen ist es am natürlichsten, Wörter als Token zu verwenden. Es gibt verschiedene Tokenisierungstechniken, von der Verwendung einzelner Zeichen über mehrere Zeichen ("n-grams", Teilwörter) bis hin zu Wörtern. Die Wahl einer Tokenisierungstechnik ist eine Abwägung zwischen der Gesamtzahl der möglichen Tokens (bei der Verwendung von Einzelzeichen in ASCII würden wir potenziell 128 Tokens erhalten, bei der Verwendung von Wörtern im Englischen wären es etwa 200 000 Tokens, im Deutschen potenziell mehr) und ihrem semantischen Informationsgehalt (Einzelzeichen enthalten im Vergleich zu Wörtern nicht viele Informationen). Die aktuellen LLMs haben sich auf Tokenisierungsverfahren umgestellt, die Teilworte benutzen (z.B. Byte-Pair Encoding, Wordpiece, Unigram, Sentencepiece).
Der zweite Teil, die Einbettung (Embedding), besteht darin, Token auf Vektoren abzubilden. Obwohl die Forschung zu Worteinbettungen schon früher begann, ist eine der ersten bekannten Einbettungstechniken Word2vec (2013). Dies ist ein Schlüsselelement, das es Analysetechniken ermöglicht, mit Text zu arbeiten (das klassische Beispiel für Word2vec ist: King – Man + Woman = Queen). In der Transformer-Architektur werden Token nicht nur aufgrund ihrer Semantik, sondern auch aufgrund ihrer Position im Satz in Vektoren eingebettet (sogenannte Positional Encoding).
Der dritte Teil ist die Berechnung der Wahrscheinlichkeit des nächsten Tokens. Dies ist der Kern der LLMs und der Grund, warum sie so gross sind. Obwohl im Prinzip jede Vorhersagetechnik funktionieren würde, verwenden alle aktuellen LLMs neuronale Netze und die meisten (bis heute) die Transformer-Architektur. Die Wahl der Architektur hängt in erster Linie von der Fähigkeit ab, lange Eingaben (den sogenannten Kontext) zu erfassen, auf vielen Daten mit möglichst wenig Rechenaufwand zu trainieren und so gut wie möglich zu sein.
Sobald das Modell eine Wahrscheinlichkeit für alle möglichen Tokens berechnet hat, muss entschieden werden, welcher Token als nächster ausgegeben werden soll. Die Dekodierungsstrategie kann einfach sein (z.B. Greedy Search: immer das wahrscheinlichste Token auswählen, oder Top-K-Sampling: aus den k wahrscheinlichsten Token auswählen) oder komplexer (z.B. Beam Search: aus den wahrscheinlichsten Token-Sequenzen auswählen, oder Contrastive Search: die Wahrscheinlichkeit des Tokens gegen seine Ähnlichkeit mit dem Kontext abwägen).
Welches LLM passt zu Ihren Aufgaben?
Heutige LLMs werden zunächst an einem grossen und vielfältigen Datensatz vortrainiert. Ziel ist es, ein umfassendes Sprachverständnis und -wissen zu erlernen. Dies ist sehr rechenintensiv. Anschliessend werden die Modelle weiter trainiert, um Anweisungen genauer zu befolgen. Dies wird als "Instruction-Tuning" bezeichnet. Schliesslich können Open-Source-LLMs für bestimmte Aufgaben fein abgestimmt werden (Finetuning), wenn dies erforderlich ist.
In der Regel sind LLMs bereits ohne spezielles Finetuning multilingual. Das "Verständnis" deutscher Texte funktioniert unserer Erfahrung nach gut, allerdings kann es vorkommen, dass deutschsprachige Anweisungen ("instructions") nicht so gut befolgt werden wie englischsprachige. Auch beim Generieren deutschsprachiger Antworten kommen unserer Erfahrung nach zumindest kleinere LLMs an ihre Grenzen.
LLMs gibt es in zwei Varianten: Closed-Source (z. B. GPT 4.0) und Open-Source (z. B. Llama 2). Durch den Einsatz von selbstbetriebenen Open-Source-LLMs können Unternehmen und Institutionen von mehr Unabhängigkeit, Datenschutz und Kostenkontrolle profitieren. Es besteht keine Abhängigkeit von einem externen Dienstleister, der Preise erhöhen, Dienste einstellen oder Modelle entfernen kann. Die Daten müssen das eigene Firmen- oder Organisationsnetzwerk nicht verlassen und können vertraulich behandelt werden. Sensible Daten und Codes können sicher verarbeitet werden. Die Kosten basieren nicht auf verarbeiteten Tokens oder Abonnements, sondern auf den Betriebskosten der eigenen Infrastruktur. Open-Source-LLMs bieten in der Regel viele Details (z. B. Trainingsdaten), die bekannt sind. Das erhöht das Vertrauen in die Modelle. Nicht zuletzt können die Modelle weiter trainiert werden (Finetuning).
Die Community hat zahlreiche Rankings erstellt, die Open-Source-LLMs vergleichen und dabei auch kommerzielle Modelle einbeziehen. Diese Vergleiche können dabei helfen, eine fundierte Entscheidung bei der Auswahl eines LLM zu treffen. Es ist jedoch wichtig zu beachten, dass diese Rankings oft nur wenige verschiedene Aufgaben berücksichtigen und dass gute Benchmark-Ergebnisse auch irreführend sein können, etwa aufgrund von "Task Contamination". Aus unserer Sicht ist es hilfreicher, verschiedene Modelle für den konkreten eigenen Anwendungsfall zu evaluieren. Nicht zuletzt sollte bei der Auswahl des Large Language Model die zur Verfügung stehende Hardware berücksichtigt werden.
Um einen ersten Eindruck von Open-Source-LLMs zu bekommen, können Sie mit "kleineren" Modellen experimentieren. Diese können auf älteren Gaming-GPUs, Laptop-GPUs, in Onlinediensten wie Google Colab oder auch auf der CPU getestet werden. Bibliotheken wie llama-cpp-python oder vLLM können verwendet werden, um einen OpenAI-API-kompatiblen Modellserver zu betreiben.
Für den produktiven Einsatz ist der Einsatz eines oder mehrerer GPUs entscheidend, wobei die Menge des verfügbaren VRAM eine wichtige Rolle spielt und die Grafikkarten nicht zu alt sein sollten. Durch Quantisierung können grössere Modelle auch auf GPUs mit weniger VRAM ausgeführt werden. Es ist ratsam, ein entsprechend grosses und aktuelles LLM zu wählen. Unserer Erfahrung nach haben quantisierte Modelle mit vielen Parametern Vorteile gegenüber nicht quantisierten Modellen mit weniger Parametern.
Insgesamt bieten Open Source Large Language Models eine aufregende Zukunftsperspektive und eröffnen neue Möglichkeiten in der Sprachverarbeitung. Mit einem klaren Verständnis der besten Vorgehensweisen und einer sorgfältigen Auswahl können Organisationen die volle Leistungsfähigkeit dieser Modelle nutzen und innovative Wege in der KI-Forschung und -Anwendung einschlagen.
Die Autoren:
Julien Siebert, Senior AI Expert, Fraunhofer-Institut für Experimentelles Software Engineering IESE
Patricia Kelbert, Data Scientist, Fraunhofer-Institut für Experimentelles Software Engineering IESE