Skip to main content

Längere Kontexte und externes Wissen mit LLMs

Tagtäglich werden neue News zu den Themen Künstliche Intelligenz, Machine Learning und Language Modeling publiziert. Einige wissenschaftliche Abhandlungen schauen wir uns genauer an und teilen unsere Erkenntnisse im KI-Journal Club. Heute stehen drei Dokumente aus dem LLM-Cosmos im Fokus.

Wie integriert man firmeneigenes Wissen in Large Language Models?

Die aktuell wohl am heißesten diskutierte Variante lautet Retrieval Augmented Generation (RAG) - dessen Effektivität hängt aber stark vom eingesetzten Retriever ab. In "Adapting Large Language Models via Reading Comprehension"wird vorgeschlagen, die jeweiligen Dokumente stattdessen in einem "fortgesetzten Pre-training" direkt in den Gewichten der Modelle zu speichern.

Zunächst zeigen die Autoren, dass ein "naives" fortgesetztes Pre-training auf domänenspezifischen Daten dazu führt, dass die Modelle Faktenwissen hinzulernen. Dafür büßen sie aber ihre Fähigkeiten, Instruktionen zu befolgen und als hilfreicher Chatbot zu agieren ein.

Um dieses Problem zu beheben, wird vorgeschlagen, die Rohdaten mittels Regex-Mustern in ein Chat-Format zu verwandeln. Beispielsweise würde ein Dokument nach Zwei-Dritteln des Textes unterbrochen und die Frage "Wie würdest du diesen Text fortsetzen?" eingefügt. Auf den so transformierten Dokumenten wird dann weiter trainiert.

Die Effektivität der Idee Trainingsdaten synthetisch in ein Chatformat zu konvertieren um LLM zu trainieren wurde vor kurzem von Microsoft mit Orca erfolgreich demonstriert. Dort allerdings nicht mit dem Ziel spezifisches Wissen in ein LLM zu integrieren, sondern einen kompetenten Chatbot zu trainieren.

Wir glauben, dass dieser Ansatz zukunftsfähig ist, würden allerdings statt der Regex-Muster eher auf Prompting-Techniken zurückgreifen, um ein breiteres Aufgabenspektrum abzudecken.

Lässt sich die Kontextlänge von Language Models mit LongLoRA steigern?

Die Herausforderung bei der Verwendung von Large Language Models (LLMs) besteht darin, dass der Self-Attention-Mechanismus Rechenaufwände mit quadratisch steigenden Kosten erzeugt, was dazu führt, dass diese Modelle im Pre-Training oft auf kürzeren Kontextlängen trainiert werden. Doch im Zeitalter von Retrieval-Augment-Generation ist es von großer Bedeutung, dass LLMs einen größeren Kontext abdecken können.

Deshalb wurden in jüngster Zeit verschiedene Ansätze entwickelt, um die Kontextlänge während des Fine-Tuning zu erweitern. LongLoRA stellt hierbei eine intelligente Kombination zweier Ideen dar: Shift Short Attention und Low Rank Adapter (LoRA) Training.

Eine interessante Innovation besteht darin, dass die Attention-Heads nicht mehr den gesamten Kontext verarbeiten, sondern parallel mehrere kleinere Token-Fenster behandeln. Dabei werden diese Fenster so konfiguriert, dass sie überlappen, wodurch GPU-Speicherplatz eingespart wird und gleichzeitig ein effizienter Informationsfluss über den gesamten Kontext ermöglicht wird.

Zusätzlich wird der GPU-Speicherverbrauch weiter reduziert, indem nicht alle Parametermatrizen des Self-Attention-Blocks vollständig trainiert werden, sondern stattdessen kleinere Adapter-Matrizen verwendet werden. Die Autoren weisen jedoch darauf hin, dass dieser Ansatz nur dann erfolgreich ist, wenn auch die Embedding- und Normalisierungs-Layer mittrainiert werden.

Obwohl sich in Tests bei sehr großen Kontextlängen, trotz weiterer Information, keine signifikante Verbesserung der Perplexity Scores gezeigt hat, erachten wir die Idee von LongLoRA als vielversprechend. Wir freuen uns auf zukünftige Entwicklungen und auf Open Source LLMs, die in der Lage sind, riesige Kontextfenster zu verarbeiten.

Löst der Graph of Thoughts (GoT) das Chain of Thought (CoT) Prompting für LLMs ab?

Prompting Techniken wie CoT sollen LLMs dazu befähigen über ihren initialen Output mehrmals "nachzudenken" und so zu besseren Ergebnissen führen. Einen ähnlichen Ansatz verfpolgt auch das Graph of Thoughts (GoT)  Framework.

 

Während CoT noch mit kurzen Prompts wie "Lets think step by step" umgesetzt werden kann, wird dies bei seinen Nachfahren immer komplexer. Das GoT Framework verlangt vom Nutzer, die ursprüngliche Aufgabe in gut lösbare Teilaufgaben zu zerlegen und entsprechende Prompting Templates zu erzeugen. Gerade dieses Solution-Engineering möchte man im Machine Learning aber eigentlich vermeiden - nicht zuletzt, weil es häufig unmöglich ist.

Darüber hinaus sind die im Paper veröffentlichten mathematischen Beispiele in unseren Augen nicht auf die chaotische Welt der menschlichen Sprache übertragbar, da in letzterer eine automatische Evaluierung der Ergebnisse Teil der eigentlichen Herausforderung ist.


Leider überzeugt uns die Idee hinter Graph of Thoughts nicht. Die gezeigten Anwendungsbeispiele wirken sehr konstruiert und akademisch. Wir bleiben also vorerst bei Chain-of-Thought.

Datum: 04.12.2023