Rag 2 0 Endlich Bekommt Rag Es Richtig Hin Rag 2 0 Endlich Bekommt Rag Es Richtig Hin

RAG 2.0, Endlich bekommt RAG es richtig hin!

Wenn man sich die KI-Branche ansieht, haben wir uns daran gewöhnt, täglich zu sehen, dass Dinge „getötet“ werden. Manchmal erschaudere ich selbst, wenn ich darüber sprechen muss, dass zum 23923. Mal etwas aus heiterem Himmel „getötet“ wird.

Aber selten ist der Fall so überzeugend wie das, was Contextual.ai mit Kontextbezogenen Sprachmodellen (Contextual Language Models, CLMs) vorgeschlagen hat. Sie nennen es „RAG 2.0“ und wollen damit die gängige Methode der Retrieval-Unterstützten Generierung (Retrieval Augmented Generation, RAG), eine der beliebtesten, wenn nicht die beliebteste Art der Implementierung von Generativen KI-Modellen, obsolet machen.

Hinter der Behauptung stehen keine Geringeren als die ursprünglichen Erschaffer von RAG.

Und während dies eine enorme Verbesserung gegenüber dem Status quo der produktionsreifen Generativen KI darstellt, bleibt eine Frage in diesem gesamten Teilbereich bestehen: Zählt RAG seine letzten Tage, und sind diese Innovationen einfach nur ein Totschlagargument?

Das Fundament auf Daten

Wie Sie vielleicht wissen oder nicht wissen, haben alle alleinstehenden Großen Sprachmodelle (Large Language Models, LLMs), mit prominenten Beispielen wie ChatGPT, einen Wissensabschnitt.

Das bedeutet, dass das Vortraining ein einmaliger Vorgang ist (im Gegensatz zu kontinuierlichen Lernmethoden). Mit anderen Worten: LLMs haben Daten bis zu einem bestimmten Zeitpunkt „gesehen“.

Zum Beispiel ist ChatGPT zum Zeitpunkt des Schreibens bis April 2023 aktualisiert. Folglich sind sie nicht darauf vorbereitet, Fakten und Ereignisse zu beantworten, die nach diesem Datum stattgefunden haben.

Und hier kommt RAG ins Spiel.

Es ist alles eine Frage der semantischen Ähnlichkeit

Wie der eigentliche Name schon sagt, besteht die Idee darin, die Daten aus einer bekannten Datenbank abzurufen, Daten, die das LLM höchstwahrscheinlich noch nie gesehen hat, und sie in Echtzeit in das Modell einzuspeisen, damit es einen aktualisierten – und vor allem semantisch relevanten – Kontext hat, um eine genaue Antwort zu geben.

Aber wie funktioniert dieser Abrufprozess?

Die gesamte Architektur basiert auf einem einzigen Prinzip: der Fähigkeit, semantisch bedeutsame Daten abzurufen, die für den Kontext der Anfrage oder des Prompts relevant sind.

Auto Draft

Quelle

Dieser Prozess beinhaltet die Verwendung von drei Elementen:

  1. Das Embedding-Modell
  2. Der Retriever, oft eine Vektordatenbank
  3. Und der Generator, das LLM

Zunächst einmal müssen die Daten, damit dieser Abrufprozess funktioniert, in „Embedding-Form“ vorliegen, einer Darstellung von Text in Form eines Nummer-Vektors.

Und noch wichtiger ist, dass diese Embeddings ein Ähnlichkeitsprinzip haben: Ähnliche Konzepte werden durch ähnliche Vektoren repräsentiert.

Zum Beispiel sind die Konzepte „Hund“ und „Katze“ für uns ähnlich: Beide sind Tiere, Säugetiere, vierbeinig und Haustiere. Übersetzt in Vektoren könnte „Hund“ [3, -1, 2] und „Katze“ [2,98, -1, 2,2] sein, und man kann sich jede Zahl als ein „Attribut“ dieses Konzepts vorstellen. Somit bedeuten ähnliche Zahlen ähnliche Attribute.

Lesen Sie meine eingehende Rezension darüber, was Embeddings sind.

Nachdem wir die Embeddings haben, fügen wir sie in die Vektordatenbank (den Retriever) ein, eine hochdimensionale Datenbank, die diese Embeddings speichert.

Unter Anwendung des zuvor diskutierten Ähnlichkeitsprinzips befinden sich in diesem Raum ähnliche Dinge näher beieinander.

Dann, wann immer der Nutzer eine Anfrage wie die folgende stellt: „Gib mir ähnliche Ergebnisse wie eine ‚gelbe Katze'“, führt die Vektordatenbank eine „semantische Abfrage“ durch.

In einfachen Worten: Sie extrahiert die am nächsten liegenden Vektoren (in Distanz) zu dem der Nutzeranfrage.

Da diese Vektoren die zugrunde liegenden Konzepte repräsentieren, stellen ähnliche Vektoren ähnliche Konzepte dar, in diesem Fall andere Katzen.

Auto Draft

Quelle

Nachdem wir den extrahierten Inhalt haben, erstellen wir den LLM-Prompt, der Folgendes enthält:

  • Die Nutzeranfrage
  • Den extrahierten Inhalt
  • Und in der Regel eine Reihe von Systeminstruktionen

Aber was sind Systeminstruktionen?

Als Teil des Prompt-Engineering-Prozesses möchten Sie steuern, wie das Modell antwortet. Eine typische Systeminstruktion könnte „Sei knapp“ lauten.

Das ist RAG in einer Nussschale: Ein System, das relevante Inhalte in Echtzeit (zur Inferenzzeit) für die Nutzeranfrage bereitstellt, um die Antwort des LLM zu verbessern.

Der Grund, warum RAG-Systeme überhaupt funktionieren, liegt in der größten Superkraft von LLMs: dem In-Context-Lernen, das es Modellen ermöglicht, zuvor ungesehene Daten zu verwenden, um genaue Vorhersagen ohne Gewichtsanpassung zu treffen.

Hier finden Sie eine ausführliche Erklärung des In-Context-Lernens und wie LLMs lernen, es zu nutzen.

Aber dieser Prozess klingt zu gut, um wahr zu sein, und natürlich sind die Dinge nicht so erstaunlich, wie sie aussehen.

Das Zusammennähen ohne Verfeinerung ist Vergangenheit

Eine Möglichkeit, die aktuellen RAG-Systeme zu visualisieren, sind die folgenden Hosen:

Auto Draft

Obwohl diese Hosen für manche Zielgruppen funktionieren mögen, würde die meisten Leute sie niemals tragen, da es an Homogenität fehlt, obwohl geflickte Hosen ursprünglich unauffällig sein sollten.

Der Grund für diese Analogie ist, dass Standard-RAG-Systeme drei verschiedene Komponenten zusammenfügen, die getrennt vortrainiert wurden und per Definition niemals dafür gedacht waren, zusammenzuarbeiten.

Stattdessen sind RAG 2.0-Systeme von Anfang an als „eine Sache“ definiert.

Keine Frankenstein-Modelle erlaubt

In der Praxis wird das vollständige System end-to-end trainiert, während es verbunden ist, wie die Annahme, dass LLMs immer eine Vektordatenbank haben sollten, um auf dem Laufenden zu bleiben.

Im Vergleich zu Standard-RAG werden Pretraining, Finetuning und Reinforcement Learning aus menschlichem Feedback (RLHF), alles wesentliche Komponenten des Standard-LLM-Trainings, von Grund auf neu durchgeführt, einschließlich des LLM und des Retrievers (der Vektordatenbank).

Technisch gesprochen bedeutet dies, dass während der Rückwärtspropagierung, dem Algorithmus zum Trainieren dieser Modelle, die Gradienten nicht nur durch das gesamte LLM, sondern auch durch den Retriever propagiert werden, so dass das gesamte System als Einheit aus den Trainingsdaten lernt.

Auto Draft

Und die Ergebnisse zeigen sich zweifellos:

Trotz der Verwendung eines Modells, das fast garantiert schlechter ist als GPT-4, übertrifft diese neue Methodik jede andere mögliche RAG 1.0-Kombination zwischen GPT-4 und anderen Retrievalsystemen.

Auto Draft

Quelle: Contextual.ai

Der Grund ist einfach: Bei RAG 1.0 trainieren wir Dinge getrennt, nähen sie zusammen und hoffen auf das Beste. Bei RAG 2.0 sieht es ganz anders aus, da alle Komponenten von Anfang an zusammen sind.

Technisch gesprochen ist das Zusammennähen von zwei getrennt trainierten Systemen ein Rezept für Desaster, besonders wenn die gelernten Repräsentationen nicht gleich sind.

Es ist wie wenn eine englische Person eine japanische Datenbank verwendet; der Kontext ist da, aber er ist für die englische Person nicht interpretierbar.

Aber selbst wenn die Vorteile von RAG 2.0 klar sind, bleibt eine große Frage bestehen.

Die wirkliche Frage bleibt unbeantwortet

Obwohl es den Anschein hat, dass RAG 2.0 bald zum Unternehmensstandard werden könnte, da sein Design speziell für Unternehmen konzipiert ist, die nicht bereit sind, vertrauliche Daten mit den LLM-Anbietern zu teilen, gibt es Gründe für die Annahme, dass RAG, egal welche Version, letztendlich gar nicht mehr benötigt wird.

Die Ankunft enormer Sequenzlängen

Ich bin sicher, dass Ihnen bewusst ist, dass unsere modernen Modelle von heute, Modelle wie Gemini 1.5 oder Claude 3, riesige Kontextfenster von bis zu einer Million Tokens (750.000 Wörtern) in ihren produktionsreifen Modellen und bis zu 10 Millionen Tokens (7,5 Millionen Wörtern) in Forschungslaboren haben.

In einfachen Worten bedeutet dies, dass diese Modelle absurd lange Textsequenzen in jedem einzelnen Prompt verarbeiten können.

Zum Vergleich: Die Herr der Ringe-Bücher haben insgesamt 576.459 Wörter und die gesamte Harry Potter-Buchtrilogie hat etwa 1.084.170 Wörter. Ein 7,5-Millionen-Wörter-Kontextfenster könnte daher beide Geschichten zusammen, fünffach, in jedem einzelnen Prompt unterbringen.

In diesem Szenario brauchen wir wirklich eine Wissensdatenbank anstatt einfach die Informationen in jeden Prompt einzuspeisen?

Ein Grund, diese Option zu verwerfen, könnte die Genauigkeit sein. Je länger die Sequenz, desto schwieriger sollte es für das Modell sein, den richtigen Kontext abzurufen, oder?

Andererseits erlaubt der RAG-Prozess, anstatt den gesamten Kontext in jeden Prompt einzuspeisen, die Auswahl von nur den semantisch relevanten Daten, was insgesamt einen effizienteren Prozess darstellt.

Allerdings wird die Genauigkeit, wie Google bewiesen hat, bei langen Sequenzen nicht beeinträchtigt. Sie zeigten fast 100% Genauigkeit, selbst bei 10-Millionen-Token-langen Kontexten für die „Needle-in-the-Haystack“-Aufgabe, bei der eine kleine, manchmal unrelevante Tatsache in den Tiefen des Prompts versteckt ist, um zu sehen, ob das Modell sie korrekt abruft.

Und das tut es:

Auto Draft

Aber wie ist das möglich?

Der technische Grund für eine so erstaunliche Leistung unabhängig von der Länge ist, dass der zugrunde liegende Operator hinter diesen Modellen, der Aufmerksamkeitsmechanismus, einen absoluten globalen Kontext hat, da der Aufmerksamkeitsmechanismus erzwingt, dass jedes einzelne Token (d.h. ein Wort oder Subwort) auf jedes einzelne vorherige Wort in der Sequenz achtet.

Dies stellt sicher, dass das Modell in der Lage sein sollte – und es ist in der Lage – unabhängig davon, wie langreichweitig die Abhängigkeit ist und wie klein das Signal ist (die Schlüsselinformation könnte in einem einzigen Wort Millionen von Wörtern entfernt gespeichert sein), es zu erkennen.

Folglich wird meiner Meinung nach, ob RAG letztendlich überlebt oder nicht, nicht von der Genauigkeit abhängen, sondern von einem anderen entscheidenden Faktor, der über die Technologie hinausgeht:

Kosten.

Besserer Business Case oder Tod

Heute implizieren längere Sequenzen aufgrund der Unfähigkeit des Transformers, Kontexte zu komprimieren, nicht nur einen quadratischen Kostenanstieg (eine 2-fache Sequenz bedeutet eine 4-fache Berechnung oder eine 3-fache Erhöhung bedeutet eine 9-fache Berechnung), sondern auch, dass die Speicheranforderungen explodieren, da die Größe des KV-Cache zunimmt.

Der KV-Cache ist der „zwischengespeicherte Speicher“ des Modells, der vermeidet, dass riesige Mengen redundanter Aufmerksamkeitsdaten neu berechnet werden müssen, was den Prozess andernfalls wirtschaftlich undurchführbar machen würde. Hier finden Sie eine eingehende Überprüfung dessen, was der KV-Cache ist und wie er funktioniert.

Kurz gesagt, ist die Verarbeitung sehr langer Sequenzen extrem teuer, so dass für Modalitäten mit extrem langen Sequenzlängen, wie DNA, Transformers gar nicht erst in Betracht gezogen werden.

In der Tat verwendeten die Forscher bei DNA-Modellen wie EVO anstelle des Aufmerksamkeitsmechanismus den Hyena-Operator, um die oben erwähnte quadratische Beziehung zu vermeiden. Hyena-Operatoren verwenden lange Faltungen anstelle von Aufmerksamkeit, um Langstrecken-Abhängigkeiten mit subquadratischen Kosten zu erfassen.

Aber warte mal, ist Faltung nicht auch eine quadratische Operation?

Ja, aber während die Standard-Faltung in der Tat quadratisch in den Kosten ist, können Sie durch Anwendung des Faltungstheorems, das besagt, dass die Fourier-Transformierte einer Faltung zwischen zwei Funktionen das punktweise Produkt (Hadamard-Produkt) ihrer jeweiligen Fourier-Transformierten ist, die Operation in subquadratischer Zeit und Kosten durchführen, eine Operation, die als „schnelle Faltung“ bekannt ist.

Im Wesentlichen berechnen Sie, obwohl Sie eine Faltung in der Zeitdomäne berechnen, diese als punktweises Produkt in der Frequenzdomäne, was schneller und billiger ist.

Andere Alternativen zielen auf einen hybriden Ansatz ab, der anstatt den Aufmerksamkeitsmechanismus ganz aufzugeben, den Sweetspot zwischen Aufmerksamkeit und anderen Operatoren findet, um die Leistung bei niedrigeren Kosten beizubehalten.

Jüngste Beispiele sind Jamba, das geschickt Transformer mit anderen, effizienteren Architekturen wie Mamba mischt.

Mamba, Hyena, Aufmerksamkeit… Sie denken wahrscheinlich, ich lasse nur merkwürdige Wörter fallen, um einen Punkt zu beweisen.

Aber vergessen Sie die unterschiedlichen seltsamen Namen, letztendlich läuft es auf dasselbe Prinzip hinaus: Es sind verschiedene Möglichkeiten, Muster in Sprache zu entdecken und unseren KI-Modellen dabei zu helfen, Text zu verstehen.

Aufmerksamkeit treibt heute 99% der Modelle an und der Rest versucht einfach, billigere Wege mit minimaler Leistungseinbuße zu finden, um LLMs kostengünstiger zu machen.

Alles in allem sollten wir bald extrem lange Sequenzen zu einem Bruchteil der derzeitigen Kosten verarbeiten können, was den Skeptizismus gegenüber der Notwendigkeit von RAG-Architekturen erhöhen sollte.

Wenn diese Zeit kommt, was wir fast garantieren können, werden wir uns dann noch auf RAG verlassen? Ich weiß es nicht, aber es besteht die Chance, dass wir an diesem Punkt ein totes Pferd schlagen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert