Künstliche Intelligenz

Ein tiefer Einblick in Retrieval-Augmented Generation in LLM

mm
Retrieval Augmented Generation Illustration using Midjourney

Stellen Sie sich vor, Sie sind ein Analyst und haben Zugang zu einem Large Language Model. Sie sind begeistert von den Möglichkeiten, die es Ihrem Workflow bietet. Aber dann fragen Sie es nach den aktuellen Aktienkursen oder der aktuellen Inflationsrate, und es trifft Sie mit:

“Es tut mir leid, aber ich kann keine Echtzeit- oder Nach-Cutoff-Daten bereitstellen. Meine letzte Trainingsdaten reichen nur bis Januar 2022.”

Large Language Model, trotz all ihrer sprachlichen Macht, fehlt die Fähigkeit, das “Jetzt” zu erfassen. Und in der schnellen Welt ist “Jetzt” alles.

Forschung hat gezeigt, dass große vorgebildete Sprachmodelle (LLM) auch Repositorien von faktischem Wissen sind.

Sie wurden auf so vielen Daten trainiert, dass sie viele Fakten und Zahlen aufgenommen haben. Wenn sie fein abgestimmt werden, können sie bemerkenswerte Ergebnisse auf einer Vielzahl von NLP-Aufgaben erzielen.

Aber hier ist der Haken: Ihre Fähigkeit, auf dieses gespeicherte Wissen zuzugreifen und zu manipulieren, ist manchmal nicht perfekt. Insbesondere wenn die Aufgabe, die vorliegt, wissensintensiv ist, können diese Modelle hinter spezielleren Architekturen zurückbleiben. Es ist, als ob man eine Bibliothek mit allen Büchern der Welt hätte, aber keinen Katalog, um zu finden, was man benötigt.

OpenAI’s ChatGPT Gets a Browsing Upgrade

OpenAI’s jüngste Ankündigung über ChatGPT’s Browsing-Funktion ist ein bedeutender Schritt in Richtung Retrieval-Augmented Generation (RAG). Mit ChatGPT, das jetzt in der Lage ist, das Internet nach aktuellen und autoritativen Informationen zu durchsuchen, spiegelt es den RAG-Ansatz wider, der dynamisch Daten aus externen Quellen abruft, um bereicherte Antworten zu liefern.

https://twitter.com/OpenAI/status/1707077710047216095

Aktuell ist diese Funktion für Plus- und Enterprise-Benutzer verfügbar. OpenAI plant, diese Funktion bald für alle Benutzer bereitzustellen. Benutzer können diese Funktion aktivieren, indem sie “Mit Bing durchsuchen” unter der GPT-4-Option auswählen.

Chatgpt New Browsing Feature

Chatgpt New ‘Bing’ Browsing Feature

 Prompt-Engineering ist effektiv, aber unzureichend

Prompts dienen als Tor zum Wissen von LLM. Sie leiten das Modell und geben eine Richtung für die Antwort. Allerdings ist das Erstellen eines effektiven Prompts nicht die umfassende Lösung, um das zu erhalten, was Sie von einem LLM wollen. Dennoch sollten wir uns einige gute Praktiken ansehen, die bei der Erstellung eines Prompts zu beachten sind:

  1. Klarheit: Ein gut definiertes Prompt eliminiert Mehrdeutigkeit. Es sollte direkt und klar sein, damit das Modell die Absicht des Benutzers versteht. Diese Klarheit führt oft zu kohärenteren und relevanten Antworten.
  2. Kontext: Insbesondere für umfangreiche Eingaben kann die Platzierung der Anweisung die Ausgabe beeinflussen. Zum Beispiel kann das Verschieben der Anweisung ans Ende eines langen Prompts oft bessere Ergebnisse liefern.
  3. Präzision in der Anweisung: Die Kraft der Frage, oft durch das “wer, was, wo, wann, warum, wie”-Rahmenwerk vermittelt, kann das Modell zu einer fokussierteren Antwort leiten. Darüber hinaus kann die Angabe des gewünschten Ausgabeformats oder der Größe die Ausgabe des Modells weiter verfeinern.
  4. Umgang mit Unsicherheit: Es ist wichtig, das Modell anzuleiten, wie es reagieren soll, wenn es unsicher ist. Zum Beispiel kann die Anweisung, das Modell mit “Ich weiß nicht” zu antworten, wenn es unsicher ist, verhindern, dass es ungenaue oder “halluzinierte” Antworten generiert.
  5. Schrittweises Denken: Für komplexe Anweisungen kann die Anleitung des Modells, systematisch oder die Aufgabe in Unterbeschäftigungen zu unterteilen, zu umfassenderen und genauereren Ausgaben führen.

Im Zusammenhang mit der Bedeutung von Prompts bei der Steuerung von ChatGPT kann ein umfassender Artikel auf Unite.ai gefunden werden.

Herausforderungen in generativen AI-Modellen

Prompt-Engineering beinhaltet die Feinabstimmung der Direktiven, die dem Modell gegeben werden, um seine Leistung zu verbessern. Es ist eine sehr kosteneffektive Möglichkeit, die Genauigkeit von Generative-AI-Anwendungen zu steigern, da nur geringe Code-Anpassungen erforderlich sind. Während Prompt-Engineering die Ausgaben erheblich verbessern kann, ist es wichtig, die inhärenten Einschränkungen von Large Language Models (LLM) zu verstehen. Zwei primäre Herausforderungen sind Halluzinationen und Wissensabschnitte.

  • Halluzinationen: Dies bezieht sich auf Fälle, in denen das Modell mit Sicherheit eine falsche oder erfundene Antwort zurückgibt. Obwohl fortschrittliche LLM eingebaute Mechanismen haben, um solche Ausgaben zu erkennen und zu vermeiden.
Halluzinationen in LLMs

Halluzinationen in LLM

  • Wissensabschnitte: Jedes LLM-Modell hat ein Trainingsenddatum, nach dem es sich nicht mehr über Ereignisse oder Entwicklungen im Klaren ist. Diese Einschränkung bedeutet, dass das Wissen des Modells auf den Zeitpunkt seines letzten Trainingsdatums eingefroren ist. Zum Beispiel würde ein Modell, das bis 2022 trainiert wurde, nichts über die Ereignisse von 2023 wissen.
Wissensabschnitt in LLMS

Wissensabschnitt in LLM

Retrieval-augmentierte Generation (RAG) bietet eine Lösung für diese Herausforderungen. Es ermöglicht Modellen, auf externe Informationen zuzugreifen, was Probleme von Halluzinationen durch den Zugriff auf proprietäre oder domänen-spezifische Daten mildert. Für Wissensabschnitte kann RAG auf aktuelle Informationen jenseits des Trainingsdatums des Modells zugreifen, um sicherzustellen, dass die Ausgabe auf dem neuesten Stand ist.

Es ermöglicht auch, dass das LLM Daten aus verschiedenen externen Quellen in Echtzeit abruft. Dies kann Wissensbasen, Datenbanken oder sogar das weite Feld des Internets umfassen.

Einführung in Retrieval-Augmented Generation

Retrieval-augmentierte Generation (RAG) ist ein Rahmenwerk, das es Large Language Models ermöglicht, auf Daten zuzugreifen, auf die sie nicht trainiert wurden. Es gibt mehrere Möglichkeiten, RAG umzusetzen, und die beste Lösung hängt von der spezifischen Aufgabe und der Art der Daten ab.

Das RAG-Rahmenwerk funktioniert in einer strukturierten Weise:

Prompt-Eingabe

Der Prozess beginnt mit der Eingabe oder dem Prompt des Benutzers. Dies kann eine Frage oder eine Aussage sein, die spezifische Informationen anfordert.

Abruf aus externen Quellen

Anstatt direkt eine Antwort auf der Grundlage seines Trainings zu generieren, sucht das Modell mit Hilfe eines Abrufkomponenten durch externe Datenquellen. Diese Quellen können von Wissensbasen, Datenbanken und Dokumentenspeichern bis hin zu internetzugänglichen Daten reichen.

Verständnis des Abrufs

Im Wesentlichen spiegelt der Abruf eine Suchoperation wider. Es geht darum, die relevantesten Informationen als Antwort auf die Eingabe des Benutzers zu extrahieren. Dieser Prozess kann in zwei Stufen unterteilt werden:

  1. Indexierung: Dies ist wahrscheinlich der schwierigste Teil der gesamten RAG-Reise. Der Indexierungsprozess kann in zwei Phasen unterteilt werden: Laden und Teilen. In Tools wie LangChain werden diese Prozesse als “Lader” und “Teiler” bezeichnet. Lader holen Inhalte von verschiedenen Quellen ab, sei es Webseiten oder PDFs. Sobald diese abgerufen sind, teilen die Teiler diese Inhalte in kleinere, optimierte Stücke auf, um sie für die Einbettung und Suche zu optimieren.
  2. Abfrage: Dies ist der Vorgang des Abrufs der relevantesten Wissensfragmente basierend auf einer Suchanfrage.

Während es viele Möglichkeiten gibt, den Abruf anzugehen, von einfacher Textübereinstimmung bis hin zur Verwendung von Suchmaschinen wie Google, setzen moderne RAG-Systeme auf semantische Suche. Im Herzen der semantischen Suche liegt das Konzept der Einbettungen.

Einbettungen sind zentral für das Verständnis von Sprache durch Large Language Models (LLM). Wenn Menschen versuchen, zu erklären, wie sie Bedeutung aus Wörtern ableiten, führt die Erklärung oft zurück zu inhärentem Verständnis. Tief in unseren kognitiven Strukturen erkennen wir, dass “Kind” und “Junge” synonym sind oder dass “rot” und “grün” beide Farben bedeuten.

Erweiterung des Prompts

Die abgerufenen Informationen werden dann mit dem ursprünglichen Prompt kombiniert, um ein erweitertes oder ergänztes Prompt zu erstellen. Dieses erweiterte Prompt bietet dem Modell zusätzlichen Kontext, der besonders wertvoll ist, wenn die Daten domänen-spezifisch sind oder nicht Teil des ursprünglichen Trainingskorpus des Modells sind.

Erzeugung der Vervollständigung

Mit dem erweiterten Prompt in der Hand generiert das Modell dann eine Vervollständigung oder Antwort. Diese Antwort basiert nicht nur auf dem Training des Modells, sondern wird auch durch die in Echtzeit abgerufenen Daten informiert.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Architektur des ersten RAG-LLM

Der Forschungsbericht von Meta, veröffentlicht im Jahr 2020 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks“, bietet einen tiefen Einblick in diese Technik. Das Retrieval-Augmented Generation-Modell erweitert den traditionellen Generierungsprozess mit einem externen Abruf- oder Suchmechanismus. Dies ermöglicht es dem Modell, relevante Informationen aus großen Datenmengen abzurufen, um kontextuell genaue Antworten zu liefern.

Hier ist, wie es funktioniert:

  1. Parametrisches Gedächtnis: Dies ist Ihr traditionelles Sprachmodell, wie ein seq2seq-Modell. Es wurde auf großen Datenmengen trainiert und weiß viel.
  2. Nicht-parametrisches Gedächtnis: Denken Sie daran, dass dies wie eine Suchmaschine ist. Es ist ein dichter Vektorindex, zum Beispiel von Wikipedia, der mithilfe eines neuronalen Abrufers abgerufen werden kann.

Wenn diese beiden kombiniert werden, erzeugen sie ein genaues Modell. Das RAG-Modell ruft zunächst relevante Informationen aus seinem nicht-parametrischen Gedächtnis ab und verwendet dann sein parametrisches Wissen, um eine kohärente Antwort zu liefern.

RAG ORIGNAL MODEL BY META

Original RAG-Modell von Meta

1. Zweischrittiger Prozess:

Das RAG-LLM funktioniert in einem zweischrittigen Prozess:

  • Abruf: Das Modell sucht zunächst nach relevanten Dokumenten oder Passagen in einer großen Datenmenge. Dies geschieht mithilfe eines dichten Abrufmechanismus, der Einbettungen verwendet, um sowohl die Abfrage als auch die Dokumente darzustellen. Die Einbettungen werden dann verwendet, um Ähnlichkeitsscores zu berechnen, und die Top-Dokumente werden abgerufen.
  • Generierung: Mit den Top-k relevanten Dokumenten in der Hand werden diese in einen sequenziellen Generator zusammen mit der ursprünglichen Abfrage eingegeben. Dieser Generator erstellt dann die endgültige Ausgabe, indem er Kontext aus beiden, der Abfrage und den abgerufenen Dokumenten, bezieht.

2. Dichter Abruf:

Traditionelle Abrufsysteme verlassen sich oft auf sparse Darstellungen wie TF-IDF. RAG-LLM hingegen verwendet dichte Darstellungen, bei denen sowohl die Abfrage als auch die Dokumente in kontinuierliche Vektorräume eingebettet werden. Dies ermöglicht es, nuanciertere Ähnlichkeitsvergleiche durchzuführen, die semantische Beziehungen jenseits des bloßen Schlüsselwortabgleichs erfassen.

3. Sequenzielle Generation:

Die abgerufenen Dokumente dienen als erweiterter Kontext für das Generierungsmodell. Dieses Modell, oft auf Architekturen wie Transformers basierend, generiert dann die endgültige Ausgabe, indem es sicherstellt, dass diese kohärent und kontextuell relevant ist.

Dokumentensuche

Dokumentenindexierung und -abruf

Für einen effizienten Informationsabruf, insbesondere aus großen Dokumenten, werden die Daten oft in einer Vektordatenbank gespeichert. Jedes Datenstück oder Dokument wird basierend auf einem Einbettungsvektor indexiert, der die semantische Essenz des Inhalts erfasst. Eine effiziente Indexierung stellt sicher, dass relevante Informationen basierend auf dem Eingabeprompt schnell abgerufen werden können.

Vektordatenbanken

Vektordatenbank

Quelle: Redis

Vektordatenbanken, manchmal auch Vektor-Speicher genannt, sind spezielle Datenbanken, die darauf ausgelegt sind, Vektordaten zu speichern und abzurufen. In der Welt von KI und Computerwissenschaften sind Vektoren im Wesentlichen Listen von Zahlen, die Punkte in einem mehrdimensionalen Raum darstellen. Im Gegensatz zu herkömmlichen Datenbanken, die eher auf tabellarische Daten ausgerichtet sind, glänzen Vektordatenbanken im Umgang mit Daten, die natürlicherweise in einem Vektorformat vorliegen, wie zum Beispiel Einbettungen von KI-Modellen.

Einige bemerkenswerte Vektordatenbanken umfassen Annoy, Faiss von Meta, Milvus und Pinecone. Diese Datenbanken sind von entscheidender Bedeutung für KI-Anwendungen, da sie bei Aufgaben wie Empfehlungssystemen bis hin zu Bildsuchen helfen. Plattformen wie AWS bieten auch Dienste an, die auf die Bedürfnisse von Vektordatenbanken zugeschnitten sind, wie zum Beispiel Amazon OpenSearch Service und Amazon RDS für PostgreSQL. Diese Dienste sind für bestimmte Anwendungsfälle optimiert, um eine effiziente Indexierung und Abfrage zu gewährleisten.

Chunking für Relevanz

Da viele Dokumente umfangreich sein können, wird oft eine Technik namens “Chunking” verwendet. Dabei werden große Dokumente in kleinere, semantisch kohärente Chunks unterteilt. Diese Chunks werden dann indexiert und abgerufen, wie benötigt, um sicherzustellen, dass die relevantesten Teile eines Dokuments für die Prompt-Erweiterung verwendet werden.

Kontextfenster-Betrachtungen

Jedes LLM arbeitet innerhalb eines Kontextfensters, das im Wesentlichen die maximale Menge an Informationen ist, die es gleichzeitig berücksichtigen kann. Wenn externe Datenquellen Informationen liefern, die dieses Fenster überschreiten, müssen sie in kleinere Chunks unterteilt werden, die in das Kontextfenster des Modells passen.

Vorteile der Nutzung von Retrieval-Augmented Generation

  1. Erhöhte Genauigkeit: Durch die Nutzung externer Datenquellen kann das RAG-LLM Antworten generieren, die nicht nur auf seinem Trainingsdatensatz basieren, sondern auch durch die relevantesten und aktuellsten Informationen im Abrufkorpus informiert sind.
  2. Überwindung von Wissenslücken: RAG löst die inhärenten Wissensbeschränkungen von LLM effektiv, sei es aufgrund des Trainingsenddatums des Modells oder des Fehlens von domänen-spezifischen Daten in seinem Trainingskorpus.
  3. Vielseitigkeit: RAG kann mit verschiedenen externen Datenquellen integriert werden, von proprietären Datenbanken innerhalb einer Organisation bis hin zu öffentlich zugänglichen Internetdaten. Dies macht es anpassbar an eine breite Palette von Anwendungen und Branchen.
  4. Reduzierung von Halluzinationen: Eine der Herausforderungen bei LLM ist die Möglichkeit von “Halluzinationen” oder der Generierung von tatsächlich falschen oder erfundenen Informationen. Durch die Bereitstellung von Echtzeit-Datenkontext kann RAG die Wahrscheinlichkeit solcher Ausgaben erheblich reduzieren.
  5. Skalierbarkeit: Einer der primären Vorteile von RAG-LLM ist seine Fähigkeit, zu skalieren. Durch die Trennung des Abrufs und der Generierung kann das Modell effizient mit großen Datenmengen umgehen, was es für reale Anwendungen geeignet macht, bei denen Daten reichlich vorhanden sind.

Herausforderungen und Überlegungen

  • Rechnerischer Overhead: Der zweischrittige Prozess kann rechnerisch intensiv sein, insbesondere bei der Arbeit mit großen Datenmengen.
  • Datenabhängigkeit: Die Qualität der abgerufenen Dokumente hat direkten Einfluss auf die Generierungsqualität. Daher ist es entscheidend, ein umfassendes und sorgfältig kuratiertes Abrufkorpus zu haben.

Schlussfolgerung

Durch die Integration von Abruf- und Generierungsprozessen bietet Retrieval-Augmented Generation eine robuste Lösung für wissensintensive Aufgaben, um Ausgaben zu gewährleisten, die sowohl informiert als auch kontextuell relevant sind.

Das wahre Versprechen von RAG liegt in seinen potenziellen realen Anwendungen. In Branchen wie der Gesundheitsversorgung, wo zeitnahe und genaue Informationen von entscheidender Bedeutung sein können, bietet RAG die Fähigkeit, Erkenntnisse aus umfangreichen medizinischen Literaturquellen nahtlos zu extrahieren und zu generieren. Im Finanzsektor, wo Märkte von Minute zu Minute evolvieren, kann RAG Echtzeit-Daten-Insights liefern, um fundierte Entscheidungen zu unterstützen. Darüber hinaus können Wissenschaftler in der Wissenschaft und Forschung RAG nutzen, um umfangreiche Informationsrepositorien zu durchsuchen und Literaturübersichten sowie Datenanalysen effizienter zu gestalten.

Ich habe die letzten fünf Jahre damit verbracht, mich in die faszinierende Welt des Machine Learning und Deep Learning zu vertiefen. Mein Engagement und meine Expertise haben mich dazu geführt, an über 50 verschiedenen Software-Entwicklungsprojekten mit einem besonderen Fokus auf AI/ML beizutragen. Meine anhaltende Neugier hat mich auch zum Bereich der Natural Language Processing hingezogen, einem Feld, das ich weiter erforschen möchte.