Stummel Ein tiefer Einblick in die Retrieval-Augmented Generation in LLM – Unite.AI
Vernetzen Sie sich mit uns

Künstliche Intelligenz

Ein tiefer Einblick in die Retrieval-Augmented Generation im LLM

mm

Veröffentlicht

 on

Abrufen der Augmented Generation Illustration mit Midjourney

Stellen Sie sich vor, Sie sind Analyst und haben Zugriff auf ein großes Sprachmodell. Sie sind begeistert von den Aussichten, die sich daraus für Ihren Arbeitsablauf ergeben. Aber dann fragt man nach den aktuellen Aktienkursen oder der aktuellen Inflationsrate und es kommt zu folgender Antwort:

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

Großen Sprachmodellen mangelt es trotz all ihrer sprachlichen Leistungsfähigkeit an der Fähigkeit, das zu erfassen.jetzt an'. Und in der schnelllebigen Welt „jetzt an' ist alles.

Untersuchungen haben gezeigt, dass große vorab trainierte Sprachmodelle (LLMs) auch Speicher für Faktenwissen sind.

Sie wurden anhand so vieler Daten geschult, dass sie viele Fakten und Zahlen aufgenommen haben. Bei einer Feinabstimmung können sie bei einer Vielzahl von NLP-Aufgaben bemerkenswerte Ergebnisse erzielen.

Aber hier ist der Haken: Ihre Fähigkeit, auf dieses gespeicherte Wissen zuzugreifen und es zu manipulieren, ist manchmal nicht perfekt. Insbesondere wenn es sich um eine wissensintensive Aufgabe handelt, können diese Modelle hinter spezialisierteren Architekturen zurückbleiben. Es ist, als hätte man eine Bibliothek mit allen Büchern der Welt, aber keinen Katalog, in dem man findet, was man braucht.

ChatGPT von OpenAI erhält ein Browsing-Upgrade

Die jüngste Ankündigung von OpenAI zur Browsing-Fähigkeit von ChatGPT ist ein bedeutender Schritt in Richtung Retrieval-Augmented Generation (RAG). Da ChatGPT nun in der Lage ist, das Internet nach aktuellen und verlässlichen Informationen zu durchsuchen, spiegelt es den RAG-Ansatz wider, Daten dynamisch aus externen Quellen abzurufen, um angereicherte Antworten bereitzustellen.

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

Chatgpt Neue Browsing-Funktion

Chatgpt Neue „Bing“-Browsing-Funktion

 Schnelles Engineering ist effektiv, aber unzureichend

Eingabeaufforderungen dienen als Zugang zum Wissen von LLM. Sie leiten das Modell und geben der Reaktion eine Richtung vor. Die Erstellung einer effektiven Eingabeaufforderung ist jedoch nicht die vollständige Lösung, um das zu erreichen, was Sie von einem LLM erwarten. Lassen Sie uns dennoch einige bewährte Vorgehensweisen durchgehen, die Sie beim Schreiben einer Eingabeaufforderung berücksichtigen sollten:

  1. Clarity: Eine klar definierte Eingabeaufforderung beseitigt Unklarheiten. Es sollte unkompliziert sein und sicherstellen, dass das Modell die Absicht des Benutzers versteht. Diese Klarheit führt häufig zu kohärenteren und relevanteren Antworten.
  2. Kontext: Insbesondere bei umfangreichen Eingaben kann die Platzierung der Anweisung Einfluss auf die Ausgabe haben. Wenn Sie beispielsweise die Anweisung an das Ende einer langen Eingabeaufforderung verschieben, können Sie häufig bessere Ergebnisse erzielen.
  3. Präzision im Unterricht: Die Aussagekraft der Frage, die oft durch das „Wer, Was, Wo, Wann, Warum, Wie“-Konzept vermittelt wird, kann das Modell zu einer gezielteren Antwort führen. Darüber hinaus kann die Angabe des gewünschten Ausgabeformats oder der gewünschten Ausgabegröße die Ausgabe des Modells weiter verfeinern.
  4. Umgang mit Unsicherheit: Es ist wichtig, dem Modell Anweisungen zu geben, wie es reagieren soll, wenn es unsicher ist. Wenn Sie beispielsweise das Modell anweisen, bei Unsicherheit mit „Ich weiß nicht“ zu antworten, kann verhindert werden, dass es ungenaue oder „halluziniert” Antworten.
  5. Schritt-für-Schritt-Denken: Bei komplexen Anweisungen kann die Anleitung des Modells zu systematischem Denken oder die Aufteilung der Aufgabe in Teilaufgaben zu umfassenderen und genaueren Ergebnissen führen.

In Bezug auf die Bedeutung von Eingabeaufforderungen bei der Führung von ChatGPT finden Sie einen ausführlichen Artikel in einem Artikel unter Unite.ai.

Herausforderungen bei generativen KI-Modellen

Bei der schnellen Entwicklung geht es um die Feinabstimmung der Anweisungen, die Ihrem Modell gegeben werden, um seine Leistung zu verbessern. Dies ist eine sehr kostengünstige Möglichkeit, die Genauigkeit Ihrer generativen KI-Anwendung zu steigern, da nur geringfügige Codeanpassungen erforderlich sind. Während Prompt Engineering die Ergebnisse erheblich verbessern kann, ist es wichtig, die inhärenten Einschränkungen großer Sprachmodelle (LLM) zu verstehen. Zwei Hauptherausforderungen sind Halluzinationen und Wissenslücken.

  • Halluzinationen: Dies bezieht sich auf Fälle, in denen das Modell sicher eine falsche oder erfundene Antwort zurückgibt. Obwohl fortgeschrittenes LLM über integrierte Mechanismen verfügt, um solche Ausgaben zu erkennen und zu vermeiden.
Halluzinationen bei LLMs

Halluzinationen bei LLM

  • Wissenskürzungen: Jedes LLM-Modell hat ein Ausbildungsenddatum, nach dem es keine Kenntnis von Ereignissen oder Entwicklungen hat. Diese Einschränkung bedeutet, dass das Wissen des Modells zum Zeitpunkt seines letzten Trainingsdatums eingefroren wird. Beispielsweise würde ein bis 2022 trainiertes Modell die Ereignisse von 2023 nicht kennen.
Wissensgrenze im LLMS

Wissensgrenze im LLM

Abruf-erweiterte Generation (RAG) bietet eine Lösung für diese Herausforderungen. Es ermöglicht Modellen den Zugriff auf externe Informationen und mildert Halluzinationsprobleme durch den Zugriff auf proprietäre oder domänenspezifische Daten. Bei Wissensgrenzen kann RAG über das Trainingsdatum des Modells hinaus auf aktuelle Informationen zugreifen und so sicherstellen, dass die Ausgabe auf dem neuesten Stand ist.

Es ermöglicht dem LLM außerdem, Daten aus verschiedenen externen Quellen in Echtzeit abzurufen. Dies können Wissensdatenbanken, Datenbanken oder sogar die Weiten des Internets sein.

Einführung in die Retrieval-Augmented Generation

Retrieval-Augmented Generation (RAG) ist ein Framework und keine spezifische Technologie, die es großen Sprachmodellen ermöglicht, auf Daten zuzugreifen, auf die sie nicht trainiert wurden. Es gibt mehrere Möglichkeiten, RAG zu implementieren, und die beste Lösung hängt von Ihrer spezifischen Aufgabe und der Art Ihrer Daten ab.

Das RAG-Framework funktioniert strukturiert:

Prompte Eingabe

Der Prozess beginnt mit der Eingabe oder Aufforderung eines Benutzers. Dabei kann es sich um eine Frage oder eine Aussage mit der Suche nach bestimmten Informationen handeln.

Abruf aus externen Quellen

Anstatt direkt eine Antwort basierend auf seinem Training zu generieren, durchsucht das Modell mithilfe einer Retriever-Komponente externe Datenquellen. Diese Quellen können von Wissensdatenbanken, Datenbanken und Dokumentenspeichern bis hin zu über das Internet zugänglichen Daten reichen.

Abrufen verstehen

Im Wesentlichen spiegelt der Abruf einen Suchvorgang wider. Es geht darum, die relevantesten Informationen als Reaktion auf die Eingaben eines Benutzers zu extrahieren. Dieser Prozess kann in zwei Phasen unterteilt werden:

  1. Indizierung: Der wohl anspruchsvollste Teil der gesamten RAG-Reise ist die Indexierung Ihrer Wissensdatenbank. Der Indexierungsprozess kann grob in zwei Phasen unterteilt werden: Laden und Aufteilen. In Tools wie LangChain werden diese Prozesse als „Lader" und "Splitter„. Loader rufen Inhalte aus verschiedenen Quellen ab, sei es Webseiten oder PDFs. Nach dem Abruf segmentieren Splitter diesen Inhalt in mundgerechte Stücke und optimieren ihn so für die Einbettung und Suche.
  2. Abfragen: Dies ist der Vorgang des Extrahierens der relevantesten Wissensfragmente basierend auf einem Suchbegriff.

Während es viele Möglichkeiten gibt, sich dem Abruf zu nähern, vom einfachen Textabgleich bis hin zur Verwendung von Suchmaschinen wie Google, basieren moderne Retrieval-Augmented Generation (RAG)-Systeme auf der semantischen Suche. Im Zentrum der semantischen Suche steht das Konzept der Einbettungen.

Einbettungen sind von zentraler Bedeutung dafür, wie Large Language Models (LLM) Sprache verstehen. Wenn Menschen versuchen zu artikulieren, wie sie aus Wörtern eine Bedeutung ableiten, greift die Erklärung oft auf das inhärente Verständnis zurück. Tief in unseren kognitiven Strukturen erkennen wir, dass „Kind“ und „Kind“ Synonyme sind oder dass „Rot“ und „Grün“ beide Farben bezeichnen.

Erweiterung der Eingabeaufforderung

Die abgerufenen Informationen werden dann mit der ursprünglichen Eingabeaufforderung kombiniert, wodurch eine erweiterte oder erweiterte Eingabeaufforderung entsteht. Diese erweiterte Eingabeaufforderung versorgt das Modell mit zusätzlichem Kontext, was besonders wertvoll ist, wenn die Daten domänenspezifisch sind oder nicht Teil des ursprünglichen Trainingskorpus des Modells sind.

Den Abschluss generieren

Mit der erweiterten Eingabeaufforderung generiert das Modell dann eine Vervollständigung oder Antwort. Diese Reaktion basiert nicht nur auf dem Training des Modells, sondern wird auch durch die abgerufenen Echtzeitdaten beeinflusst.

Retrieval-Augmented Generation

Retrieval-Augmented Generation

Architektur des ersten RAG LLM

Das im Jahr 2020 veröffentlichte Forschungspapier von Meta „Retrieval-Augmented Generation für wissensintensive NLP-Aufgaben“ bietet einen detaillierten Einblick in diese Technik. Das Retrieval-Augmented Generation-Modell erweitert den traditionellen Generierungsprozess um einen externen Abruf- oder Suchmechanismus. Dadurch kann das Modell relevante Informationen aus riesigen Datenkorpora abrufen und so seine Fähigkeit verbessern, kontextbezogene genaue Antworten zu generieren.

So funktioniert das:

  1. Parametrisches Gedächtnis: Dies ist Ihr traditionelles Sprachmodell, wie ein seq2seq-Modell. Es wurde auf riesigen Datenmengen trainiert und weiß viel.
  2. Nichtparametrisches Gedächtnis: Stellen Sie sich das wie eine Suchmaschine vor. Es handelt sich um einen dichten Vektorindex beispielsweise von Wikipedia, auf den mit einem Neural Retriever zugegriffen werden kann.

In Kombination ergeben diese beiden ein genaues Modell. Das RAG-Modell ruft zunächst relevante Informationen aus seinem nichtparametrischen Speicher ab und nutzt dann sein parametrisches Wissen, um eine kohärente Antwort auszugeben.

RAG ORIGINAL MODELL VON META

Original RAG-Modell von Meta

1. Zweistufiger Prozess:

Das RAG LLM arbeitet in einem zweistufigen Prozess:

  • Abruf: Das Modell sucht zunächst nach relevanten Dokumenten oder Passagen aus einem großen Datensatz. Dies erfolgt mithilfe eines dichten Abrufmechanismus, der Einbettungen verwendet, um sowohl die Abfrage als auch die Dokumente darzustellen. Die Einbettungen werden dann zur Berechnung der Ähnlichkeitswerte verwendet und die Dokumente mit dem höchsten Rang werden abgerufen.
  • Generation: Wenn die Top-K-relevanten Dokumente vorliegen, werden sie zusammen mit der ersten Abfrage in einen Sequenz-zu-Sequenz-Generator geleitet. Dieser Generator erstellt dann die endgültige Ausgabe und zieht den Kontext sowohl aus der Abfrage als auch aus den abgerufenen Dokumenten.

2. Dichtes Abrufen:

Herkömmliche Abrufsysteme basieren häufig auf spärlichen Darstellungen wie TF-IDF. RAG LLM verwendet jedoch dichte Darstellungen, bei denen sowohl die Abfrage als auch die Dokumente in kontinuierliche Vektorräume eingebettet sind. Dies ermöglicht differenziertere Ähnlichkeitsvergleiche und erfasst semantische Beziehungen, die über die bloße Keyword-Übereinstimmung hinausgehen.

3. Sequenz-zu-Sequenz-Generierung:

Die abgerufenen Dokumente fungieren als erweiterter Kontext für das Generierungsmodell. Dieses Modell, das oft auf Architekturen wie Transformers basiert, generiert dann die endgültige Ausgabe und stellt sicher, dass sie kohärent und kontextuell relevant ist.

Dokumentensuche

Indexierung und Abruf von Dokumenten

Für eine effiziente Informationsbeschaffung, insbesondere aus großen Dokumenten, werden die Daten häufig in einer Vektordatenbank gespeichert. Jedes Datenelement oder Dokument wird auf der Grundlage eines Einbettungsvektors indiziert, der die semantische Essenz des Inhalts erfasst. Eine effiziente Indizierung gewährleistet das schnelle Auffinden relevanter Informationen anhand der Eingabeaufforderung.

Vektordatenbanken

Vektordatenbank

Quelle: Redis

Vektordatenbanken, manchmal auch Vektorspeicher genannt, sind maßgeschneiderte Datenbanken, die Vektordaten speichern und abrufen können. Im Bereich der KI und Informatik sind Vektoren im Wesentlichen Zahlenlisten, die Punkte in einem mehrdimensionalen Raum symbolisieren. Im Gegensatz zu herkömmlichen Datenbanken, die eher auf tabellarische Daten ausgerichtet sind, glänzen Vektordatenbanken bei der Verwaltung von Daten, die von Natur aus in ein Vektorformat passen, wie etwa Einbettungen aus KI-Modellen.

Einige bemerkenswerte Vektordatenbanken umfassen Annoy, Faiß von Meta, Milvus und Tannenzapfen. Diese Datenbanken sind für KI-Anwendungen von entscheidender Bedeutung und unterstützen Aufgaben, die von Empfehlungssystemen bis hin zur Bildsuche reichen. Plattformen wie AWS bieten auch auf Vektordatenbankanforderungen zugeschnittene Dienste an, beispielsweise Amazon OpenSearch Service und Amazon RDS für PostgreSQL. Diese Dienste sind für bestimmte Anwendungsfälle optimiert und gewährleisten eine effiziente Indizierung und Abfrage.

Chunking für Relevanz

Da viele Dokumente umfangreich sein können, wird häufig eine Technik namens „Chunking“ verwendet. Dabei werden große Dokumente in kleinere, semantisch zusammenhängende Teile zerlegt. Diese Blöcke werden dann bei Bedarf indiziert und abgerufen, um sicherzustellen, dass die relevantesten Teile eines Dokuments für eine zeitnahe Erweiterung verwendet werden.

Überlegungen zum Kontextfenster

Jedes LLM arbeitet innerhalb eines Kontextfensters, das im Wesentlichen die maximale Informationsmenge darstellt, die es gleichzeitig berücksichtigen kann. Wenn externe Datenquellen Informationen bereitstellen, die über dieses Fenster hinausgehen, müssen diese in kleinere Teile zerlegt werden, die in das Kontextfenster des Modells passen.

Vorteile der Nutzung der Retrieval-Augmented Generation

  1. Erhöhte Genauigkeit: Durch die Nutzung externer Datenquellen kann das RAG LLM Antworten generieren, die nicht nur auf seinen Trainingsdaten basieren, sondern auch auf den relevantesten und aktuellsten Informationen basieren, die im Abrufkorpus verfügbar sind.
  2. Wissenslücken überwinden: RAG behebt effektiv die inhärenten Wissensbeschränkungen von LLM, sei es aufgrund der Trainingsgrenze des Modells oder des Fehlens domänenspezifischer Daten in seinem Trainingskorpus.
  3. Vielseitigkeit: RAG kann in verschiedene externe Datenquellen integriert werden, von proprietären Datenbanken innerhalb einer Organisation bis hin zu öffentlich zugänglichen Internetdaten. Dadurch ist es an eine Vielzahl von Anwendungen und Branchen anpassbar.
  4. Reduzierung von Halluzinationen: Eine der Herausforderungen bei LLM ist die Möglichkeit von „Halluzinationen“ oder der Generierung sachlich falscher oder erfundener Informationen. Durch die Bereitstellung von Echtzeit-Datenkontext kann RAG die Wahrscheinlichkeit solcher Ausgaben erheblich reduzieren.
  5. Skalierbarkeit: Einer der Hauptvorteile von RAG LLM ist seine Skalierbarkeit. Durch die Trennung der Abruf- und Generierungsprozesse kann das Modell große Datensätze effizient verarbeiten und eignet sich daher für reale Anwendungen mit großen Datenmengen.

Herausforderungen und Überlegungen

  • Rechenaufwand: Der zweistufige Prozess kann rechenintensiv sein, insbesondere wenn es um große Datensätze geht.
  • Datenabhängigkeit: Die Qualität der abgerufenen Dokumente wirkt sich direkt auf die Generierungsqualität aus. Daher ist ein umfassender und gut kuratierter Retrieval-Korpus von entscheidender Bedeutung.

Zusammenfassung

Durch die Integration von Abruf- und Generierungsprozessen bietet Retrieval-Augmented Generation eine robuste Lösung für wissensintensive Aufgaben und sorgt für fundierte und kontextbezogene Ergebnisse.

Das wahre Versprechen von RAG liegt in seinen potenziellen realen Anwendungen. Für Bereiche wie das Gesundheitswesen, in denen zeitnahe und genaue Informationen von entscheidender Bedeutung sein können, bietet RAG die Möglichkeit, nahtlos Erkenntnisse aus umfangreicher medizinischer Literatur zu extrahieren und zu generieren. Im Finanzbereich, wo sich Märkte von Minute zu Minute weiterentwickeln, kann RAG datengesteuerte Erkenntnisse in Echtzeit liefern und so eine fundierte Entscheidungsfindung unterstützen. Darüber hinaus können Wissenschaftler in Wissenschaft und Forschung RAG nutzen, um riesige Informationsbestände zu durchsuchen und so Literaturrecherchen und Datenanalysen effizienter zu gestalten.

Ich habe die letzten fünf Jahre damit verbracht, in die faszinierende Welt des maschinellen Lernens und des Deep Learning einzutauchen. Meine Leidenschaft und mein Fachwissen haben dazu geführt, dass ich an über 50 verschiedenen Software-Engineering-Projekten mitgewirkt habe, mit besonderem Schwerpunkt auf KI/ML. Meine anhaltende Neugier hat mich auch zur Verarbeitung natürlicher Sprache geführt, einem Bereich, den ich gerne weiter erforschen möchte.