Freigeben über


RAG (Retrieval-Augmented Generation) auf Azure Databricks

Retrieval-Augmented Generation (RAG) ist eine leistungsstarke Technik, die Large Language Models (LLMs) mit Echtzeit-Datenabfragen kombiniert, um korrektere, aktuellere und kontextbezogenere Antworten zu generieren.

Dieser Ansatz ist besonders hilfreich für die Beantwortung von Fragen zu proprietären, häufig wechselnden oder domänenspezifischen Informationen.

Was ist Retrieval Augmented Generation?

In der einfachsten Form führt ein RAG-Agent folgende Aktionen aus:

  1. Abruf: Die Anforderung des Benutzers wird verwendet, um eine externe Wissensdatenbank wie einen Vektorspeicher, eine Schlüsselwortsuche oder SQL-Datenbank abzufragen. Das Ziel ist es, Support-Daten für die Antwort des LLM zu erhalten.
  2. Augmentation: Die unterstützenden Daten werden mit der Anfrage des Benutzers kombiniert, oft unter Verwendung einer Vorlage mit zusätzlicher Formatierung und Anweisungen an das LLM, um einen Prompt zu erstellen.
  3. Generation: Die Aufforderung wird an die LLM übergeben, um eine Antwort auf die Anforderung des Benutzers zu generieren.

Der Fluss einer RAG-Anwendung von der Benutzeranforderung zum Datenabruf und zur Antwort.

RAG-Vorteile

RAG verbessert die LLMs auf folgende Weise:

  • Proprietäres Wissen: RAG kann proprietäre Informationen enthalten, die ursprünglich nicht zum Trainieren der LLM verwendet werden, z. B. Memos, E-Mails und Dokumente, um domänenspezifische Fragen zu beantworten.
  • Aktuelle Informationen: Eine RAG-Anwendung kann die LLM mit Informationen aus einer aktualisierten Wissensbasis bereitstellen.
  • Quellen zitieren: RAG ermöglicht es LLMs, bestimmte Quellen zu zitieren, sodass Benutzer die tatsächliche Genauigkeit der Antworten überprüfen können.
  • Datenquellensicherheits- und Zugriffssteuerungslisten (Access Control Lists, ACL): Der Abrufschritt kann so konzipiert werden, dass persönliche oder proprietäre Informationen basierend auf Benutzeranmeldeinformationen selektiv abgerufen werden.

RAG-Komponenten

Eine typische RAG-Anwendung umfasst mehrere Stufen:

  1. Datenpipeline: Vorabprozess- und Indexdokumente, Tabellen oder andere Daten zum schnellen und genauen Abruf.

  2. RAG-Kette (Retrieval, Augmentation, Generation): Aufrufen einer Reihe (oder Kette) von Schritten, um:

    • Verstehen sie die Frage des Benutzers.
    • Abrufen von unterstützenden Daten.
    • Erweitern Sie die Eingabeaufforderung mit unterstützenden Daten.
    • Generieren Sie eine Antwort von einem LLM unter Verwendung des erweiterten Prompts.
  3. Bewertung und Überwachung: Bewerten Sie die RAG-Anwendung, um ihre Qualität, Kosten und Latenz zu ermitteln, um sicherzustellen, dass sie Ihren Geschäftlichen Anforderungen entspricht.

  4. Governance und LLMOps: Verfolgen und Verwalten des Lebenszyklus jeder Komponente, einschließlich Datenlinien und Zugriffssteuerungen.

Diagramm der RAG-Anwendungskomponenten.

Arten von RAG-Daten: strukturiert und unstrukturiert

Die RAG-Architektur kann entweder mit unstrukturierten oder strukturierten unterstützenden Daten arbeiten. Die Daten, die Sie mit RAG verwenden, hängen von Ihrem Anwendungsfall ab.

Unstrukturierte Daten: Daten ohne eine bestimmte Struktur oder Organisation.

  • PDF-Dateien
  • Google/Office-Dokumente
  • Wikis
  • Bilder
  • Videoaufnahmen

Strukturierte Daten: Tabellendaten, die in Zeilen und Spalten mit einem bestimmten Schema angeordnet sind, z. B. Tabellen in einer Datenbank.

  • Kundendatensätze in einem BI- oder Data Warehouse-System
  • Transaktionsdaten aus einer SQL-Datenbank
  • Daten aus Anwendungs-APIs (z. B. SAP, Salesforce usw.)

Auswertung & Überwachung

Bewertung und Überwachung helfen ihnen zu ermitteln, ob Ihre RAG-Anwendung Ihre Qualitäts-, Kosten- und Latenzanforderungen erfüllt. Die Auswertung erfolgt während der Entwicklung, während die Überwachung erfolgt, sobald die Anwendung in der Produktion bereitgestellt wird.

RAG über unstrukturierte Daten verfügt über viele Komponenten, die sich auf die Qualität auswirken. Datenformatierungsänderungen können z. B. die abgerufenen Blöcke und die Fähigkeit der LLM zum Generieren relevanter Antworten beeinflussen. Daher ist es wichtig, einzelne Komponenten zusätzlich zur Gesamtanwendung zu bewerten.

Weitere Informationen finden Sie unter Mosaik AI Agent Evaluation (MLflow 2).

RAG In Databricks

Databricks bietet eine End-to-End-Plattform für die RAG-Entwicklung, darunter:

Nächste Schritte