Freigeben über


Entwerfen und Entwickeln einer RAG-Lösung

Das Muster der Retrieval-Augmented Generation (RAG) ist ein Branchenstandardansatz zum Erstellen von Anwendungen, die Sprachmodelle verwenden, um spezifische oder proprietäre Daten zu verarbeiten, die das Modell noch nicht kennt. Die Architektur ist einfach, aber das Entwerfen, Experimentieren und Auswerten von RAG-Lösungen, die in diese Architektur passen, umfassen viele komplexe Aspekte, die von einem strengen, wissenschaftlichen Ansatz profitieren.

Dieser Artikel ist die Einführung einer Reihe. Jeder Artikel in der Reihe befasst sich mit einer bestimmten Phase des RAG-Lösungsdesigns.

Die anderen Artikel dieser Reihe umfassen die folgenden Überlegungen:

  • Ermitteln, welche Testdokumente und Abfragen während der Auswertung verwendet werden sollen
  • Auswählen einer Chunking-Strategie
  • So bestimmen Sie, welche Blöcke Sie bereichern sollten und wie Sie sie anreichern
  • Auswählen des richtigen Einbettungsmodells
  • So konfigurieren Sie den Suchindex
  • Wie Sie feststellen, welche Suchvorgänge Sie ausführen sollten, z. B. Vektorsuchen, Volltextsuchen, Hybridsuchen und manuelle Mehrfachsuchen
  • So bewerten Sie jeden Schritt

RAG-Architektur

Diagramm, das die allgemeine Architektur einer RAG-Lösung zeigt, einschließlich des Anforderungsflusses und der Datenpipeline.

RAG-Anwendungsfluss

Der folgende Workflow beschreibt einen übergeordneten Ablauf für eine RAG-Anwendung.

  1. Der Benutzer schreibt eine Abfrage in einer intelligenten Anwendungs-Benutzeroberfläche.
  2. Die intelligente Anwendung führt einen API-Aufruf an einen Orchestrator durch. Sie können den Orchestrator mit Tools oder Plattformen wie Semantic Kernel, Azure Machine Learning Prompt Flow oder LangChain implementieren.
  3. Der Orchestrator bestimmt, welche Suche bei Azure AI Search ausgeführt werden soll, und gibt die Abfrage aus.
  4. Der Orchestrator packt die wichtigsten N- Ergebnisse aus der Abfrage. Sie verpackt die wichtigsten Ergebnisse und die Abfrage als Kontext in einer Eingabeaufforderung und sendet die Eingabeaufforderung an das Sprachmodell. Der Orchestrator gibt die Antwort auf die intelligente Anwendung zurück, sodass der Benutzer sie lesen kann.

Ablauf der RAG-Datenpipeline

Der folgende Workflow beschreibt einen allgemeinen Fluss für eine Datenpipeline, die Erdungsdaten für eine RAG-Anwendung bereitstellt.

  1. Dokumente werden entweder in eine Datenpipeline eingespeist oder aus einer Datenpipeline abgerufen.
  2. Die Datenpipeline verarbeitet jedes Dokument einzeln, indem die folgenden Schritte ausgeführt werden:
    1. Blockdokument: Unterteilt das Dokument in semantisch relevante Teile, die idealerweise eine einzelne Idee oder ein Konzept aufweisen.
    2. Anreichern von Blöcken: Fügt Metadatenfelder hinzu, die die Pipeline basierend auf dem Inhalt in den Blöcken erstellt. Die Datenpipeline kategorisiert die Metadaten in diskrete Felder, z. B. Titel, Zusammenfassung und Schlüsselwörter.
    3. Einbettungsblöcke: Verwendet ein Einbettungsmodell, um den Block und alle anderen Metadatenfelder zu vektorisieren, die für Vektorsuchen verwendet werden.
    4. Blöcke beibehalten: Speichert die Blöcke im Suchindex.

Überlegungen zum Design und zur Bewertung von RAG

Sie müssen verschiedene Implementierungsentscheidungen treffen, während Sie Ihre RAG-Lösung entwerfen. Das folgende Diagramm veranschaulicht einige der Fragen, die Sie beim Treffen dieser Entscheidungen stellen sollten.

Diagramm, das die allgemeine Architektur einer RAG-Lösung zeigt, einschließlich der Fragen, die Sie beim Entwerfen der Lösung stellen sollten.

Die folgende Liste enthält eine kurze Beschreibung, was Sie während jeder Phase der RAG-Lösungsentwicklung tun sollten.

  • Während der Vorbereitungsphasesollten Sie:

    • Ermitteln Sie die Lösungsdomäne. Definieren Sie klar die Geschäftsanforderungen für die RAG-Lösung.
    • Sammeln Sie repräsentative Testdokumente. Sammeln Sie Testdokumente für Ihre RAG-Lösung, die für Ihre Dokumentsammlung repräsentativ sind.
    • Sammeln von Testabfragen. Sammeln Sie Informationen und Testabfragen, und generieren Sie synthetische Abfragen und Abfragen, die Ihre Dokumente nicht abdecken.
  • In der Chunking-Phase sollten Sie:

    • Die Ökonomie des Chunkings verstehen. Verstehen Sie, welche Faktoren sie berücksichtigen sollten, wenn Sie die Gesamtkosten Ihrer Blocklösung für Ihre Textsammlung bewerten.
    • Führen Sie eine Dokumentanalyse durch. Stellen Sie die folgenden Fragen, um Entscheidungen zu treffen, wenn Sie einen Dokumenttyp analysieren:
      • Welchen Inhalt im Dokument möchten Sie ignorieren oder ausschließen?
      • Welche Inhalte möchten Sie in Blöcken erfassen?
      • Wie möchten Sie diesen Inhalt blöcken?
    • Die Ansätze des Chunkings verstehen. Machen Sie sich mit den verschiedenen Ansätzen des Chunkings vertraut, z. B. satzbasiert, feste Größe, benutzerdefiniert oder Verwendung einer Sprachmodellerweiterung, Dokumentlayoutanalyse und Machine Learning-Modelle.
    • Verstehen, wie sich die Dokumentstruktur auf die Segmentierung auswirkt. Wählen Sie einen Segmentierungsansatz basierend auf dem Grad der Struktur, die das Dokument hat.
  • Während der Phase der Blockanreicherungsollten Sie:

    • Saubere Brocken Implementieren Sie Reinigungsansätze, um Unterschiede zu beseitigen, die sich nicht auf die Bedeutung des Texts auswirken. Diese Methode unterstützt nahe Übereinstimmungen.
    • Blöcke erweitern. Erwägen Sie, Ihre Datenabschnitte mit allgemeinen Metadatenfeldern zu erweitern und deren potenzielle Verwendungsmöglichkeiten bei der Suche zu verstehen. Erfahren Sie mehr über häufig verwendete Tools oder Techniken zum Generieren von Metadateninhalten.
  • Während der Einbettungsphasesollten Sie:

    • Verstehen Sie die Bedeutung des Einbettungsmodells. Ein Einbettungsmodell kann sich erheblich auf die Relevanz Ihrer Vektorsuchergebnisse auswirken.
    • Wählen Sie das richtige Einbettungsmodell für Ihren Anwendungsfall aus.
    • Einbettungsmodelle auswerten. Bewerten Sie Einbettungsmodelle, indem Sie Einbettungen visualisieren und Einbettungsabstände berechnen.
  • Während der Informationsabrufphasesollten Sie:

    • Erstellen Sie einen Suchindex. Wenden Sie die entsprechenden Vektorsuchkonfigurationen auf Ihre Vektorfelder an.
    • Grundlegendes zu Suchoptionen. Berücksichtigen Sie die verschiedenen Suchtypen, einschließlich Vektor-, Volltext-, Hybrid- und manueller Suchen. Erfahren Sie, wie Sie eine Abfrage in Unterabfragen aufteilen und Abfragen filtern.
    • Suchvorgänge auswerten. Verwenden Sie Abrufauswertungsmethoden, um Ihre Suchlösung auszuwerten.
  • Während der End-to-End-Evaluierungsphase des Sprachmodells sollten Sie:

    • Verständnis der Bewertungsmetriken für Sprachmodelle. Es gibt mehrere Metriken, einschließlich Grundkenntnisse, Vollständigkeit, Auslastung und Relevanz, die Sie zum Auswerten der Antwort des Sprachmodells verwenden können.
    • Verstehen von Ähnlichkeits- und Auswertungsmetriken. Sie können Ähnlichkeits- und Auswertungsmetriken verwenden, um Ihre RAG-Lösung auszuwerten.
    • Verstehen sie die Bedeutung von Dokumentation, Berichterstellung und Aggregation. Dokumentieren Sie die Hyperparameter und die Auswertungsergebnisse. Aggregieren Sie die Ergebnisse aus mehreren Abfragen, und visualisieren Sie die Ergebnisse.
    • Verwenden Sie den RAG Experiment Accelerator. Sie können das RAG Experiment Accelerator GitHub-Repository verwenden, um Ihrem Team zu helfen, die besten Strategien für die RAG-Implementierung zu finden, indem Sie mehrere Experimente ausführen, beibehalten und die Ergebnisse auswerten.

Strukturierter Ansatz

Aufgrund der Anzahl der Schritte und Variablen ist es wichtig, dass Sie einen strukturierten Auswertungsprozess für Ihre RAG-Lösung befolgen. Bewerten Sie die Ergebnisse der einzelnen Schritte, und nehmen Sie Änderungen basierend auf Ihren Anforderungen vor. Sie sollten jeden Schritt unabhängig für die Optimierung auswerten, aber denken Sie daran, dass das Endergebnis das Ergebnis ist, das Ihre Kunden erleben. Stellen Sie sicher, dass Sie alle Schritte in diesem Prozess verstehen, bevor Sie Ihre eigenen Akzeptanzkriterien für jeden Schritt ermitteln.

Beitragende

Dieser Artikel wird von Microsoft verwaltet. Sie wurde ursprünglich von den folgenden Mitwirkenden verfasst.

Hauptautoren:

Um nicht öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.

Nächste Schritte