KI-Modelle und Plattformen

Ein tiefer Einblick in Retrieval-Augmented Generation in LLM

mm
Unite.AI zu deinen bevorzugten Quellen auf Google hinzufÞgen

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 (GOOGL ), 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 (AMZN ) 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.