Was ist Retrieval Augmented Generation (RAG) in KI?

Retrieval-Augmented Generation (RAG) ist eine Methode, um eine neue Datenquelle zu einem Large Language Model (LLM) hinzuzufügen, ohne diese neu zu trainieren.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Retrieval Augmented Generation (RAG) in KI verstehen
  • Erläutern können, wie RAG LLMs verbessert
  • RAG-Chatbots und AutoRAG verstehen

Link zum Artikel kopieren

Was ist Retrieval Augmented Generation (RAG) in KI?

Retrieval-Augmented Generation (RAG) ist der Prozess der Optimierung eines Large Language Models (LLM) für die Verwendung in einem bestimmten Kontext, ohne dass es vollständig neu trainiert werden muss, indem ihm Zugang zu einer für diesen Kontext relevanten Wissensdatenbank gewährt wird. RAG ist eine kostengünstige Möglichkeit, ein LLM schnell an einen speziellen Anwendungsfall anzupassen. Dies ist eine der Methoden, die Entwicklerinnen und Entwickler zur Feinabstimmung eines Modells der künstlichen Intelligenz (KI) verwenden können.

LLMs werden mit großen Datenmengen trainiert, sind aber möglicherweise nicht in der Lage, die spezifischen Informationen zu generieren, die in bestimmten Umgebungen benötigt werden. Sie haben ein allgemeines Verständnis dafür, wie menschliche Sprache funktioniert, verfügen aber nicht immer über spezifisches Fachwissen für ein bestimmtes Themengebiet. RAG ist eine Möglichkeit, dies zu korrigieren.

Stellen Sie sich vor, ein Automechaniker geht an einem Chevy, Baujahr 1964. Auch wenn der Techniker nach Tausenden von Praxisstunden über viel allgemeines Fachwissen in der Wartung von Autos verfügt, benötigt er für die effektive Wartung des Autos immer noch die Anleitung für das Auto. Der Automechaniker muss sich jedoch nicht erneut als Automechaniker zertifizieren lassen – er kann einfach das Handbuch durchlesen und dann das allgemeine Wissen über Autos anwenden, die er bereits besitzt.

Bei RAG ist es ähnlich. Es stellt einem LLM ein „Handbuch“ – oder eine Wissensdatenbank – zur Verfügung, damit das LLM sein allgemeines Wissen an den spezifischen Anwendungsfall anpassen kann. Ein allgemeines LLM kann zum Beispiel erklären, wie API-Abfragen grundsätzlich funktionieren, aber nicht unbedingt, wie genau die API einer bestimmten Anwendung abgefragt wird. Aber mit RAG könnte dieses LLM für die Verwendung mit dieser Anwendung angepasst werden, indem es mit der technischen Dokumentation der Anwendung verknüpft wird.

Wie funktioniert RAG?

Üblicherweise nutzt ein LLM seine bestehenden Trainingsdaten und Parameter, um eine eingehende Anfrage zu verarbeiten.

RAG ermöglicht es dem LLM, auf „externe Daten“ zu verweisen – eine Datenbank, die nicht im Trainingsdatensatz des LLM enthalten ist. Im Gegensatz zur normalen Funktionsweise eines LLM verwendet ein LLM mit RAG externe Daten, um seine Antworten zu verbessern – daher der Name Retrieval (zuerst externe Daten abrufen) Augmented (Antworten mit diesen Daten verbessern) Generation (Erstellung einer Antwort).

Angenommen, der Automechaniker aus dem obigen Beispiel möchte ein LLM verwenden, anstatt direkt in den Handbüchern nachzuschlagen. Durch RAG wäre das LLM in der Lage, die Nutzung von Handbüchern unmittelbar in seinen Ablauf zu integrieren. Obwohl das LLM vermutlich nicht auf klassische Auto-Handbücher trainiert wurde – oder, falls solche Informationen enthalten waren, nur zu einem sehr kleinen Teil – kann es mithilfe von RAG relevante und präzise Abfragen erzeugen.

Damit das LLM die externe Datenquelle (z. B. die Handbücher) verwenden und abfragen kann, werden die Daten zunächst in Vektoren umgewandelt und dann in einer Vektordatenbank gespeichert. Bei diesem Prozess werden maschinelle Lernmodelle verwendet, um mathematische Darstellungen von Elementen eines Datensatzes zu erzeugen. (Jeder „Vektor“ ist eine Reihe von Zahlen, wie [-0.41522345,0.97685323...]).

Wenn ein Nutzender einen Prompt sendet, wandelt das LLM diesen Prompt in einen Vektor um und durchsucht dann die aus der externen Datenquelle erstellte Vektordatenbank nach relevanten Informationen. Er fügt diese Informationen als zusätzlichen Kontext für den Prompt hinzu und lässt dann den erweiterten Prompt durch sein typisches Modell laufen, um eine Antwort zu erstellen.

Was sind die Vor- und Nachteile von RAG in KI?

Die Verwendung von RAG zur Feinabstimmung eines LLMs bietet folgende Pros:

  • Höhere Genauigkeit innerhalb des Anwendungsfalls: Ein LLM gibt mit größerer Wahrscheinlichkeit eine richtige Antwort, wenn es Zugang zu einer Wissensdatenbank hat, die mit den Prompts zusammenhängt, so wie ein Techniker ein Auto mit größerer Wahrscheinlichkeit richtig repariert, wenn er das Handbuch hat.
  • Kostengünstige Möglichkeit, ein Modell anzupassen: Da kein erneutes Training erforderlich ist, ist es weniger rechenintensiv und zeitaufwändiger, ein LLM in einem neuen Kontext einzusetzen.
  • Flexibilität: Da die Parameter des Modells nicht angepasst werden, kann dasselbe Modell schnell über verschiedene Anwendungsfälle hinweg verschoben werden.

Einige der potenziellen Nachteile sind:

  • Langsamere Reaktionszeiten: RAG erfordert zwar kein erneutes Training, doch die Inferenz – der Prozess des Denkens und der Reaktion auf Prompts – kann länger dauern, da das LLM nun mehrere Datensätze abfragen muss, um eine Antwort zu erhalten.
  • Inkonsistenzen zwischen Datensätzen: Die externe Wissensdatenbank lässt sich nicht unbedingt nahtlos in den Trainingsdatensatz des Modells integrieren, so wie zwei Sätze von Enzyklopädien historische Ereignisse leicht unterschiedlich beschreiben könnten. Dies kann zu uneinheitlichen Antworten auf Abfragen führen.
  • Manuelle Pflege: Jedes Mal, wenn die externe Wissensdatenbank aktualisiert wird – zum Beispiel, wenn neue Automodelle auf den Markt kommen – müssen die Entwicklerinnen und Entwickler den Prozess der Umwandlung der neuen Daten in Vektoren und der Aktualisierung der Vektordatenbank manuell einleiten. (Cloudflare hat AutoRAG entwickelt, um Entwicklerinnen und Entwicklern zu helfen, diesen manuellen Prozess zu vermeiden – mehr dazu später.)

Was ist ein RAG-Chatbot?

Ein RAG-Chatbot ist ein LLM-basierter Chatbot, der durch RAG auf bestimmte Anwendungsfälle spezialisiert wurde – er ist mit einer oder mehreren externen Datenquellen verbunden, die für den Kontext relevant sind, in dem der Chatbot arbeitet. Ein RAG-Chatbot für den Einsatz in einer Autowerkstatt hätte Zugriff auf Fahrzeugdokumentationen; das wäre für die Mechaniker dort deutlich hilfreicher als die Nutzung eines allgemeinen LLM-Chatbots.

RAG im Vergleich zu Low-Rank Adaptation (LoRA)

Low-Rank Adaptation (LoRA) ist eine weitere Methode zur Feinabstimmung eines Modells – das heißt, es wird an einen spezifischen Kontext angepasst, ohne vollständig neu trainiert zu werden. LoRA beinhaltet jedoch eine Anpassung der Modellparameter, während RAG die Parameter des Modells überhaupt nicht verändert. Erfahren Sie hier mehr über LoRA.

Was ist AutoRAG?

AutoRAG richtet RAG-Pipelines für Entwicklerinnen und Entwickler ein und verwaltet sie. Es verbindet die für die Indizierung, den Abruf und die Generierung erforderlichen Tools und hält alles auf dem neuesten Stand, indem es die Daten regelmäßig mit dem Index synchronisiert. Nach der Einrichtung indexiert AutoRAG Inhalte im Hintergrund und beantwortet Anfragen in Echtzeit. Erfahren Sie, wie AutoRAG funktioniert.