Retrieval Augmented Generation
Was ist Retrieval Augmented Generation (RAG)?
Retrieval Augmented Generation (RAG) ist ein Architekturkonzept, mit dem sich die Effizienz von LLM-Anwendungen (Large Language Model) durch Nutzung kundenspezifischer Daten verbessern lässt. Zu diesem Zweck werden Daten und/oder Dokumente, die für eine Frage oder Aufgabe relevant sind, abgerufen und als Kontext für das LLM bereitgestellt. RAG hat sich bei der Unterstützung von Chatbots und Q&A-Systemen, die aktuelle Informationen bereithalten oder auf fachspezifisches Wissen zugreifen müssen, als erfolgreich erwiesen.
Ähnliche Themen erkunden
Das Big Book zu MLOps
Pflichtlektüre für ML-Engineers und Data Scientists, die nach einer besseren Methode zur Durchführung von MLOps suchen
Das Potenzial von LLMs erschließen
So erzielen Sie mit KI Effizienzsteigerungen und senken Ihre Kosten.
Sorgen Sie für Disruption in Ihrer Branche – mit generativer KI
Erfahren Sie, wie Sie LLMs mit RAG optimieren können und vieles mehr.
Welche Herausforderungen löst der RAG-Ansatz?
Problem 1: LLM-Modelle kennen Ihre Daten nicht
LLMs nutzen Deep-Learning-Modelle und trainieren mit riesigen Datasets, um Daten zu verstehen und zusammenzufassen und neue Inhalte zu generieren. Die meisten LLMs werden mit einer breiten Palette öffentlicher Daten trainiert, damit ein Modell viele verschiedene Arten von Aufgaben oder Fragen lösen kann. Nach dem Training können viele LLMs nicht mehr auf Daten zugreifen, die über ihren Trainingsdatenbestand hinausgehen. Dadurch werden LLMs statisch und können fehlerhaft reagieren, veraltete Antworten geben oder halluzinieren, wenn ihnen Fragen zu Daten gestellt werden, für die sie nicht trainiert wurden.
Problem 2: KI-Anwendungen müssen maßgeschneiderte Daten nutzen, um effektiv zu sein
Damit LLMs relevante und konkrete Antworten geben können, müssen die Unternehmen dafür sorgen, dass das Modell das betreffende Fachgebiet versteht und Antworten auf der Grundlage seiner Daten liefert, anstatt allgemeine und pauschale Antworten zu geben. Unternehmen entwickeln beispielsweise Kundensupport-Bots mit LLMs, und diese Lösungen sollen unternehmensspezifische Antworten auf Kundenfragen geben. Andere arbeiten an internen Q&A-Bots, die Fragen von Mitarbeitern zu internen HR-Daten beantworten sollen. Wie können Unternehmen solche Lösungen entwickeln, ohne diese Modelle neu zu trainieren?
Lösung: Retrieval Augmentation Generation – der neue Industriestandard
Eine gleichermaßen einfache wie beliebte Möglichkeit, eigene Daten zu verwenden, besteht darin, sie als Teil des Prompts anzugeben, mit dem Sie das LLM-Modell abfragen. Dies wird als Retrieval Augmented Generation (RAG) bezeichnet: Sie rufen relevante Daten ab und nutzen sie als erweiterten Kontext für das LLM. Statt sich also ausschließlich auf das aus den Trainingsdaten abgeleitete Wissen zu verlassen, zieht ein RAG-Workflow relevante Informationen heran und verbindet statische LLMs mit Echtzeitdatenabfragen.
Mit der RAG-Architektur können Unternehmen jedes beliebige LLM-Modell einsetzen und es so erweitern, dass es relevante Ergebnisse für ihr Unternehmen liefert, indem sie ihm eine kleine Menge ihrer Daten zur Verfügung stellen. Dabei fallen weder Kosten noch Zeit für Fine-Tuning oder Pre-Training des Modells an.
Welche Anwendungsfälle gibt es für RAG?
Für RAG gibt es viele verschiedene Anwendungsfälle. Die gängigsten sind nachstehend aufgeführt:
- Chatbots für Fragen und Antworten: Die Einbindung von LLMs in Chatbots ermöglicht diesen, automatisch bessere Antworten aus Unternehmensdokumenten und Wissensdatenbanken abzuleiten. Chatbots werden zur Automatisierung des Kundensupports und zum Nachfassen bei auf der Website gewonnenen Leads eingesetzt, denn sie können Fragen schnell beantworten und Probleme lösen.
- Erweiterung von Suchfunktionen: Durch das Einbinden von LLMs in Suchmaschinen, die ihre Ergebnisse mit von den LLMs generierten Antworten anreichern, können Informationsanfragen besser beantwortet werden. So wird es für Nutzer einfacher, genau diejenigen Informationen zu finden, die sie für ihre Arbeit benötigen.
- Wissens-Engine: Stellen Sie Fragen zu Ihren Daten (z. B. Personaldaten, Compliance-Dokumente usw.): Unternehmensdaten können als Kontext für LLMs verwendet werden und ermöglichen es Mitarbeitern, auf einfache Weise Antworten auf ihre Fragen zu erhalten. Hierzu gehören etwa HR-Fragen zu Leistungen und Richtlinien oder Fragen zu Sicherheit und Compliance.
Welche Vorteile bietet RAG?
Der RAG-Ansatz bietet eine Reihe wesentlicher Vorteile:
- Er liefert aktuelle und fehlerfreie Antworten: RAG sorgt dafür, dass die Reaktion eines LLM nicht nur auf statischen, veralteten Trainingsdaten basiert. Stattdessen nutzt das Modell aktuelle externe Datenquellen, um Antworten zu geben.
- Er sorgt für weniger falsche Antworten oder Halluzinationen: Indem die Ausgabe des LLM-Modells auf relevantes externes Wissen aufsetzt, versucht RAG, das Risiko falscher oder erfundener Informationen (sogenannter „Halluzinationen“) zu vermeiden. Die Ausgaben können Zitate aus Originalquellen enthalten, sodass eine Überprüfung durch den Menschen möglich ist.
- Er stellt fachspezifische und relevante Antworten bereit: Mithilfe von RAG kann das LLM kontextbezogene Antworten geben, die auf die unternehmenseigenen oder fachspezifischen Daten zugeschnitten sind.
- Er ist hocheffizient und kostengünstig: Im Vergleich zu anderen Ansätzen zur Anpassung von LLMs mit fachspezifischen Daten ist RAG einfach und kostengünstig. Unternehmen können RAG sofort einsetzen, ohne das Modell anpassen zu müssen. Dies ist besonders vorteilhaft, wenn Modelle häufig mit neuen Daten aktualisiert werden müssen.
Wann sollte ich RAG verwenden und wann ist Fine-Tuning für das Modell angebracht?
RAG ist ein guter Einstiegspunkt, denn es ist unkompliziert und für manche Anwendungsfälle möglicherweise bereits völlig ausreichend. Fine-Tuning ist am besten in einer anderen Situation angebracht, nämlich dann, wenn man das Verhalten des LLM ändern möchte oder es eine andere „Sprache“ lernen soll. Dies schließt sich nicht gegenseitig aus. In einem zukünftigen Schritt könnte man ein Modell verfeinern, um die fachspezifische Sprache und die gewünschte Ausgabeform besser zu verstehen – und dann auch RAG verwenden, um Qualität und Relevanz der Antworten zu verbessern.
Ich möchte mein LLM mit Daten anpassen. Welche Möglichkeiten gibt es und welche Methode ist die beste (Prompt Engineering, RAG, Fine-Tuning, Pre-Training)?
Bei der Anpassung einer LLM-Anwendung an die Daten Ihres Unternehmens sind vier Architekturmuster zu berücksichtigen. Diese Techniken werden im Folgenden beschrieben und schließen sich nicht gegenseitig aus. Vielmehr können (und sollten) sie kombiniert werden, um die Stärken einer jeden zu nutzen.
Methode | Definition | Primärer Anwendungsfall | Datenanforderungen | Vorteile | Überlegungen |
---|---|---|---|---|---|
Prompt Engineering | Formulierung spezieller Prompts zur Steuerung des LLM-Verhaltens | Schnelle, spontane Modellführung | N/A | Schnell, kostengünstig, kein Training erforderlich | Weniger Kontrolle als beim Fine-Tuning |
Retrieval Augmented Generation (RAG) | Kombiniert ein LLM mit externem Wissensabruf | Dynamische Datasets und externes Wissen | Externe Wissensbasis oder Datenbank (z. B. Vektordatenbank) | Dynamisch aktualisierter Kontext, höhere Fehlerfreiheit | Verlängert den Prompt und die Inferenzberechnung |
Fine-Tuning | Passt ein vortrainiertes LLM an spezifische Datasets oder Fachgebiete an | Fach- oder Aufgabenspezialisierung | Tausende fachspezifische Beispiele oder Anleitungen | Granulare Kontrolle, hoher Spezialisierungsgrad | Erfordert gelabelte Daten und hohen Rechenaufwand |
Pre-Training | Training eines LLM von Grund auf | Individuelle Aufgaben oder fachspezifische Korpora | Große Datasets (Milliarden oder Billionen Tokens) | Maximale Kontrolle, maßgeschneidert für hochspezielle Anforderungen | Äußerst ressourcenintensiv |
Unabhängig von der gewählten Technik stellt der Aufbau einer gut strukturierten und modularisierten Lösung sicher, dass Unternehmen nach Bedarf iterieren und Anpassungen vornehmen können. Mehr über diesen Ansatz und weitere Informationen finden Sie im Big Book of MLOps.
Was ist eine Referenzarchitektur für RAG-Anwendungen?
Je nach konkreten Anforderungen und Datennuancen gibt es viele Möglichkeiten, ein RAG-System zu implementieren. Nachstehend finden Sie einen häufig verwendeten Workflow, der Ihnen ein grundlegendes Verständnis des Prozesses vermitteln soll.
- Daten aufbereiten: Die Dokumentdaten werden zusammen mit den Metadaten erfasst und einer ersten Vorverarbeitung unterzogen – z. B. für den Umgang mit personenbezogenen Daten (Erkennung, Filterung, Schwärzung, Ersetzung). Damit sie in RAG-Anwendungen verwendet werden können, müssen die Dokumente je nach Wahl des Einbettungsmodells und der nachgelagerten LLM-Anwendung, die diese Dokumente als Kontext verwendet, in geeignete Längen zerlegt werden.
- Relevante Daten indizieren: Erzeugen Sie Dokumenteinbettungen und generieren Sie mit diesen Daten einen Vector Search-Index.
- Relevante Daten abrufen: Abruf derjenigen Teile Ihrer Daten, die für die Anfrage eines Nutzers relevant sind. Diese Textdaten werden dann als Teil des Prompts bereitgestellt, der für das LLM verwendet wird.
- LLM-Anwendungen entwickeln: Binden Sie die Bestandteile der Promptaugmentierung und der LLM-Abfrage in einen Endpoint ein. Dieser Endpoint kann dann Anwendungen wie Q&A-Chatbots über eine einfache REST-API zur Verfügung gestellt werden.
Databricks empfiehlt noch einige weitere wichtige Architekturelemente einer RAG-Architektur:
- Vektordatenbank: Einige (wenn auch nicht alle) LLM-Anwendungen verwenden Vektordatenbanken für schnelle Ähnlichkeitssuchen, meist um Kontext- oder Fachwissen in LLM-Abfragen anzugeben. Damit das eingesetzte Sprachmodell auf aktuelle Informationen zugreifen kann, lassen sich regelmäßige Aktualisierungen der Vektordatenbank als Job planen. Beachten Sie, dass die Logik zum Abrufen von Informationen aus der Vektordatenbank und zum Einfügen von Informationen in den LLM-Kontext in das Modellartefakt gepackt werden kann, das in MLflow mit den MLflow-Modellvarianten LangChain oder PyFunc protokolliert wird.
- MLflow LLM Deployments oder Model Serving: In LLM-basierten Anwendungen, in denen die LLM-API eines Drittanbieters verwendet wird, kann die Unterstützung von MLflow LLM Deployments oder Model Serving für externe Modelle als standardisierte Schnittstelle verwendet werden, um Anfragen von Anbietern wie OpenAI und Anthropic weiterzuleiten. MLflow LLM Deployments oder Model Serving ist nicht nur ein API-Gateway auf Unternehmensniveau, sondern zentralisiert außerdem die Verwaltung der API-Schlüssel und bietet die Möglichkeit, Kostenkontrollen zu implementieren.
- Model Serving: Im Falle von RAG besteht bei Verwendung der API eines Drittanbieters eine wesentliche architektonische Änderung darin, dass die LLM-Pipeline externe API-Aufrufe vom Model-Serving-Endpoint zu internen LLM-APIs oder solchen von Drittanbietern ausführt. Dies führt zu mehr Komplexität, potenzieller Latenz und einer weiteren Ebene der Zugangsdatenverwaltung. Im Gegensatz dazu werden beim Beispiel des feinabgestimmten Modells das Modell und seine Modellumgebung implementiert.
Ressourcen
- Databricks-Blogposts
- Demo von Databricks
- E-Book von Databricks: The Big Book of MLOps
Databricks-Kunden, die RAG nutzen
JetBlue
JetBlue hat „BlueBot“ implementiert. BlueBot ist ein Chatbot, der Open-Source-GenAI-Modelle nutzt und diese – gestützt auf Databricks – mit Unternehmensdaten ergänzt. Dieser Chatbot kann von allen Teams bei JetBlue genutzt werden, um auf Rollenbasis Zugriff auf Daten zu erhalten. So kann beispielsweise das Finanzteam Daten aus SAP und behördliche Unterlagen einsehen, während das Betriebsteam nur Wartungsinformationen erhält.
Lesen Sie auch diesen Artikel.
Chevron Phillips
Chevron Phillips Chemical nutzt Databricks zur Unterstützung seiner GenAI-Initiativen, etwa zur Automatisierung von Dokumentprozessen.
Thrivent Financial
Thrivent Financial setzt auf generative KI, um die Suchfunktion zu optimieren, bessere Zusammenfassungen und leichter zugängliche Erkenntnisse zu generieren und die Produktivität der Entwicklungsabteilung zu verbessern.
Wo finde ich weitere Informationen über Retrieval Augmented Generation?
Es gibt viele Ressourcen mit ausführlichen Informationen zu RAG, beispielsweise die folgenden:
Blogs
- Erstellen hochwertiger RAG-Anwendungen mit Databricks
- Databricks Vector Search (öffentliche Vorschau)
- Verbessern der Antwortqualität von RAG-Anwendungen mit strukturierten Echtzeitdaten
- Schnellere Entwicklung von KI-Apps mit den neuen Möglichkeiten der Foundation-Modelle
- Best Practices für die LLM-Auswertung von RAG-Anwendungen
- Mit MLflow AI Gateway und Llama 2 Apps für generative KI entwickeln (so erzielen Sie höhere Präzision durch Einsatz von Retrieval Augmented Generation (RAG) mit Ihren eigenen Daten)
E-Books
Demos
Setzen Sie sich mit Databricks in Verbindung, um einen Termin für eine Demo zu vereinbaren und mit einem Mitarbeiter über Ihre LLM- und RAG-Projekte zu sprechen.