Entfesselte LLMs trotz Token-Beschränkung

Zurück zum Blog

Durch den Hype rund um Large Language Models (LLM) planen Unternehmen die Realisierung einer chatbotbasierten Interaktion mit der unternehmensinternen Wissensdatenbank. Diese neue Form der Benutzerinteraktion ist durchaus als innovative Weiterentwicklung im Umgang mit Wissen zu betrachten, wenn auch nicht ganz frei von Risiken und Limitationen. Die mächtigen Sprachmodelle sind durch das Token-Limit in ihrer Verarbeitungskapazität eingeschränkt.

Ein Token im Zusammenhang mit Large Language Models (LLMs) ist eine grundlegende Einheit, die verwendet wird, um Text in kleinere Abschnitte oder Wörter aufzuteilen, damit der Computer sie besser verarbeiten kann. Diese Einheiten sind normalerweise sehr klein und können Wörter, Buchstaben oder sogar Teile von Wörtern sein, je nachdem, wie ein Modell trainiert ist.

Um ein Gefühl dafür zu bekommen, wieviele Token ein Text enthält, kann man einen Token Calculator verwenden: https://platform.openai.com/tokenizer

Beispiel

In diesem Beispiel sieht man, dass die 443 Zeichen/49 Wörter aus einer kurzen Bio effektiv 148 Tokens für GPT-3 sind

Jetzt, da geklärt ist, wieviele Token der Textinput hat, können wir uns die Token-Limitierungen einiger Sprachmodelle anschauen:

Übersicht einiger Tokenlimits, Stand August 2023. 32k Token bei GPT4 sind zudem nur über die API verfügbar

Die Limitierung ist der Grund, weshalb man nicht einfach die gesamte Wissensdatenbank als Kontext an ein Sprachmodell übergeben kann (davon abgesehen, dass dies extreme Kosten verursachen würde, da die LLM-Anbieter pro Token abrechnen). Selbst Claude 2 (nur in UK und USA verfügbar) mit seinen vergleichsweise beeindruckenden 100k Token Limit würde bereits bei einem (sic!) größeren Handbuch aussteigen, ganz zu schweigen von der Suche über viele Dokumente hinweg.

Das passiert, wenn der Input Promp zu lange war

Wie kann ein Sprachmodell umfangreiche Dokumente effektiv durchforsten und gleichzeitig die Leistungsfähigkeit der Modelle beibehalten? Die Lösung liegt in der Anwendung einer Vielzahl innovativer Strategien und Technologien.

Die Herausforderungen des Token Limits beherrschen

Im ersten Schritt braucht man noch kein Sprachmodell, sondern eine bewährte und ausgereifte Herangehensweise, wie sie heute schon im Wissensmanagement im Einsatz ist: Eine intelligente Suche nimmt zunächst die Anfrage des Nutzers entgegen und filtert nur relevante Inhalte aus dem Wissensbestand raus, bevor diese an ein Sprachmodell als Input Prompt übergeben werden. Was sich trivial anhört, ist bereits mit sehr viel (KI-)Technologie verbunden und Anbieter haben ihre Technologie seit Jahren kontinuierlich optimiert, um diese Aufgabe zu erledigen. Das Prinzip dieses Zusammenspiels nennt sich Retrieval Augmented Generation (RAG).

Mit RAG legt man sich einen Grundstein, um überhaupt mit Sprachmodellen auf die eigene Wissensbasis zuzugreifen. Damit lässt sich nicht direkt das Token-Limit-Problem beseitigen, aber man kann auf diesem Fundament aufbauen und weitere Strategien nutzen, um die Symptome zu minimieren.

Chunking

Im Zusammenhang mit der Erstellung von LLM-bezogenen Anwendungen ist Chunking der Prozess, bei dem große Textteile in kleinere Segmente zerlegt werden. Es handelt sich um eine wesentliche Technik, die dazu beiträgt, die Relevanz der Inhalte zu optimieren, die wir aus einer Vektordatenbank erhalten, sobald wir das LLM zum Einbetten von Inhalten verwenden.

Der Vorteil des Chunking besteht in der Sicherstellung, dass Inhalte mit möglichst geringem Rauschen eingebettet werden, aber dennoch semantisch relevant sind.

Bei der semantischen Suche wird beispielsweise ein Dokumentenkorpus indiziert, wobei jedes Dokument wertvolle Informationen zu einem bestimmten Thema enthält. Die Anwendung einer effektiven Chunking-Strategie stellt sicher, dass die Suchergebnisse den Kern der Benutzeranfrage genau erfassen. Wenn die Blöcke zu klein oder zu groß sind, kann dies zu ungenauen Suchergebnissen oder verpassten Möglichkeiten zur Anzeige relevanter Inhalte führen. Als Faustregel gilt: Wenn der Textabschnitt ohne den umgebenden Kontext für einen Menschen sinnvoll ist, wird er auch für das Sprachmodell sinnvoll sein. Daher ist es entscheidend, die optimale Blockgröße für die Dokumente im Korpus zu finden, um sicherzustellen, dass die Suchergebnisse korrekt und relevant sind.

Manchmal können semantisch zusammenhängende Inhalte über mehrere Abschnitte oder sogar über Dokumente hinweg vorhanden sein. Beispielsweise erfragt ein Nutzer die Vorgehensweise zur Verankerung eines Baukrans, aber die benötigten Werkzeuge für die Arbeitsschritte sind nicht unmittelbar im selben Absatz beschrieben.

Kritischer wird es, wenn noch Sicherheitshinweise zu berücksichtigen sind. Bei der Bestimmung der besten Chunking-Strategie spielen daher mehrere Variablen eine Rolle, und diese variieren je nach Anwendungsfall und der Datengrundlage. Aber sie hängen auch von den verwendeten Embedding-Modellen und natürlich dem Token-Limit-Spielraum ab.

Das Aufteilen der Inhalte ist aus technischer Sicht in den meisten Fällen ziemlich einfach. Es empfiehlt sich, nach den Begriffen Content-aware Chunking oder Fixed-size Chunking zu suchen. Die Schwierigkeit liegt darin, dass es keine allgemeingültige Lösung für das Chunking gibt und die Optimierung letztlich zu den Use-Cases passen muss.

Embedding

Wieso finden Suchmaschinen so schnell das Gesuchte? Wieso „wissen“ Empfehlungssysteme genau, welches Produkt oder welchen Film man mögen könnte? Die Antwort: Vektor-Einbettungen!

Was sind Vektor-Einbettungen?

Vektor-Einbettungen helfen uns dabei, Dinge so zu organisieren, dass ähnliche Dinge in einem Graphen nahe beieinander liegen.

In einem Vektorraum für Embeddings, wie er in der Verarbeitung von natürlicher Sprache oder in anderen maschinellen Lernanwendungen verwendet wird, repräsentieren die Achsen keine spezifischen, benannten Eigenschaften wie „Gewicht“ oder „Süße“, wie es bei konkreten, physischen Objekten der Fall wäre. Stattdessen repräsentiert jede Achse eine abstrakte Dimension, die durch das Training des Modells gelernt wurde.

Wie funktioniert das?

Um das zu erreichen, wird jedes Objekt (zum Beispiel ein Apfel) in eine Liste von Zahlen (einen „Vektor“) verwendelt. Diese Liste beschreibt, wie das Objekt ist. Zum Beispiel könnte die Liste für einen Apfel so aussehen: [rot, rund, süß]. Diese Listen helfen Computern, Dinge zu verstehen und zu organisieren.

Vektoren sind eine ideale Datenstruktur für Algorithmen des Maschinellen Lernens. Moderne CPUs und GPUs sind für die Ausführung der zu ihrer Verarbeitung erforderlichen mathematischen Operationen optimiert. Aber die Daten werden selten als Vektoren dargestellt. Hier kommt die Vektor-Einbettung ins Spiel. Mit dieser Technik können wir praktisch jeden Datentyp als Vektoren darstellen.

Es soll dabei sichergestellt werden, dass Aufgaben an diesen transformierten Daten ausgeführt werden können, ohne die ursprüngliche Bedeutung der Daten zu verlieren. Wenn man beispielsweise zwei Sätze vergleichen möchte, sollten nicht nur die darin enthaltenen Wörter verglichen werden, sondern auch, ob sie dasselbe bedeuten oder nicht. Um die Bedeutung der Daten zu bewahren, muss man verstehen, wie Vektoren erzeugt werden, bei denen Beziehungen zwischen den Vektoren sinnvoll sind.

Dazu wird das Embedding benötigt. Viele moderne Embeddings werden erstellt, indem eine große Menge gelabelter Daten an ein neuronales Netzwerk übergeben wird. Letztendlich kann es vorhersagen, wie ein Output-Label für eine bestimmte Eingabe aussehen sollte – auch wenn es diese bestimmte Eingabe noch nie zuvor gesehen hat.

Wörter, die nahe beieinander erscheinen, sind semantisch ähnlich, während Wörter, die weit voneinander entfernt sind, unterschiedliche semantische Bedeutungen haben.

Nach dem Training kann ein Einbettungsmodell die Rohdaten in Vektoreinbettungen umwandeln. Das bedeutet, dass es weiß, wo neue Datenpunkte im Vektorraum platziert werden müssen.

Jedes Mal, wenn ein Benutzer eine Frage stellt, wird seine Frage ebenfalls in einen Vektor umgewandelt und mithilfe der Kosinusdistanz die Vektoren unserer Dokumentteile ermittelt, die dem Fragevektor am nächsten liegen. Es wird nach den am besten geeigneten Vektoren gesucht, in denen wahrscheinlich Informationen zum Thema enthalten sind.

Durch Embedding werden Textelemente in Vektoren umgewandelt, die die semantische Ähnlichkeit zwischen verschiedenen Textelementen darstellen. Diese Technik ist essentiell, um relevante Informationen in großen Dokumenten schnell und präzise zu identifizieren und somit die Effizienz der Informationsgewinnung zu steigern.

Gedankenanstoß für die Zukunft: Vorverarbeitung der Informationen

Bislang werden Dokumente im Wesentlichen von Menschen für Menschen geschrieben. Für die unterschiedlichen Einsatzzwecke dieser Dokumente haben sich über die Zeit verschiedenste Formate durchgesetzt. Beispielsweise weisen viele Dokumente einen Titel, ein Inhaltsverzeichnis und Seitenzahlen auf, weil Sie dem Menschen das Lesen und Verstehen vereinfachen.

Die Frage, die man sich stellen muss: Wenn immer mehr Inhalte nicht nur für den menschlichen Leser, sondern auch für die Künstliche Intelligenz erstellt werden, müssen diese nach den gleichen Prinzipien erstellt werden?

Wann ist die kritische Masse der Verarbeitung von Inhalten durch Sprachmodelle erreicht, sodass das Thema Content-Erstellung neu gedacht werden muss? Zumindest wenn ohnehin verschiedene Verfahren wie Text Summarization, Keyword Extraction und die oben genannten Methoden eingesetzt werden, könnte ein Lean-Information-Ansatz als Vorbearbeitungsstufe die Dokumentlänge extrem verkürzen, ohne an Inhalt zu verlieren.

Ironischerweise können das Sprachmodelle sehr gut. Und das muss nicht live passieren, sondern kann „kalt“ im Hintergrund ablaufen, wenn die Inhalte gerade gar nicht abgefragt werden. Jedes Mal, wenn ein Dokument hochgeladen wird, wird eine leaner Zwilling erstellt, der lediglich bei der Abfrage über ein Sprachmodell zum Einsatz kommt. Zugegebenerweise ist dieser Ansatz noch Gegenstand weiterer Forschung, doch der Gedanke ist witzig: Lange Zeit machten sich Menschen Gedanken, wie sie Inhalte für Maschinen zugänglicher machen. Vielleicht wird es schon bald genau andersherum der Fall sein.

Einer der Gründer von OpenAI sagte: „Prediction is compression.“

Fazit

Das Token-Limit der Sprachmodelle ist zwar unterschiedlich, wird aber in jedem Fall jeglichen Einsatz im Kontext von Wissensmanagement zunichte machen, wenn man sich nicht mit weiteren Ansätzen und Methoden auseinandersetzt. Oder mit Anbietern zusammenarbeitet, die alles aus einer Hand anbieten.