0 / 0
Zurück zur englischen Version der Dokumentation
Retrieval-Augmented Generation
Letzte Aktualisierung: 26. Feb. 2025
Retrieval-Augmented Generation

Sie können Fundamentmodelle in IBM watsonx.ai verwenden, um eine sachlich korrekte Ausgabe zu generieren, die auf Informationen in einer Wissensdatenbank basiert, indem Sie das RAG-Muster (Retrieval-Augmented Generation) anwenden.

 

Dieses Video bietet eine visuelle Methode zum Erlernen der Konzepte und Tasks in dieser Dokumentation.

Video-Kapitel

[ 0:08 ] Szenariobeschreibung
[ 0:27 ] Überblick über das Muster
[ 1:03 ] Wissensdatenbank
[ 1:22 ] Suchkomponente
[ 1:41 ] Eingabeaufforderung mit Kontext
[ 2:13 ] Generierung der Ausgabe
[ 2:31 ] Vollständige Lösung
[ 2:55 ] Überlegungen zur Suche
[ 3:58 ] Überlegungen zum Aufforderungstext
[ 5:01 ] Überlegungen zur Erklärbarkeit

 

Bereitstellung von Kontext in Ihrer Eingabeaufforderung verbessert die Genauigkeit

Basismodelle können Ausgaben generieren, die aus verschiedenen Gründen faktisch ungenau sind. Eine Möglichkeit zur Verbesserung der Genauigkeit der generierten Ausgabe besteht darin, die erforderlichen Fakten als Kontext in Ihrem Eingabeaufforderungstext bereitzustellen.

Beispiel

Die folgende Eingabeaufforderung enthält Kontext zum Erstellen einiger Fakten:

Aisha recently painted the kitchen yellow, which is her favorite color.

Aisha's favorite color is 

Wenn Aisha keine berühmte Person ist, deren Lieblingsfarbe in vielen Online-Artikeln erwähnt wurde, die in den üblichen Datensätzen vor dem Training enthalten sind, kann kein Basismodell ohne den Kontext zu Beginn der Eingabeaufforderung zuverlässig die korrekte Vervollständigung des Satzes am Ende der Eingabeaufforderung generieren.

Wenn Sie ein Modell mit Text anfordern, der einen mit Fakten gefüllten Kontext enthält, ist die vom Modell generierte Ausgabe wahrscheinlich genauer. Weitere Informationen finden Sie unter Faktisch genaue Ausgabe generieren.

 

Das durch Abruf erweiterte Generationsmuster

Sie können das Verfahren zum Einbeziehen von Kontext in Ihre Eingabeaufforderungen mithilfe von Informationen in einer Wissensbasis skalieren.

Das folgende Diagramm veranschaulicht das durch Abruf erweiterte Generierungsmuster. Obwohl das Diagramm ein Beispiel für die Beantwortung von Fragen zeigt, unterstützt derselbe Workflow andere Anwendungsfälle.

Diagramm, das das Hinzufügen von Suchergebnissen zur Eingabe für die abruferweiterte Generierung zeigt

Das durch Abruf erweiterte Generierungsmuster umfasst die folgenden Schritte:

  1. Durchsuchen Sie Ihre Wissensbasis nach Inhalten, die sich auf die Frage eines Benutzers beziehen.
  2. Extrahieren Sie die relevantesten Suchergebnisse als Kontext in Ihre Eingabeaufforderung und fügen Sie eine Anweisung hinzu, z. B. "Beantworten Sie die folgende Frage, indem Sie nur Informationen aus den folgenden Passagen verwenden."
  3. Nur wenn das von Ihnen verwendete Modell nicht auf Anweisungen abgestimmt ist : Fügen Sie einige Beispiele hinzu, die das erwartete Eingabe- und Ausgabeformat veranschaulichen.
  4. Senden Sie den kombinierten Aufforderungstext (Anweisung + Suchergebnisse + Frage) an das Stiftungsmodell.
  5. Das Modell der Stiftung verwendet Kontextinformationen aus der Eingabe, um eine sachliche Antwort zu generieren.

Der Ursprung der durch Abruf erweiterten Generation

In diesem Artikel wurde der Begriff "Retrieval-Augmented Generation (RAG)" eingeführt: "Retrieval-Augmented Generation" für wissensintensive NLP-Aufgaben. "Wir erstellen RAG-Modelle, bei denen der parametrische Speicher ein vorab trainierter seq2seq -Transformator ist und der nicht-parametrische Speicher ein dichter Vektorindex von Wikipedia, auf den mit einem neu trainierten neuronalen Retriever zugegriffen wird."

In diesem Dokument bezieht sich der Begriff RAG-Modelle auf eine bestimmte Implementierung einer Abruffunktion (ein bestimmter Abfrageencoder und vektorbasierter Dokumentsuchindex) und einen Generator (ein bestimmtes vortrainiertes generatives Sprachmodell). Der einfache Such-und Generierungsansatz kann jedoch generalisiert werden, um verschiedene Abruffunkomponenten und Basismodelle zu verwenden.

Wissensdatenbank

Die Wissensbasis kann eine beliebige Sammlung von Artefakten sein, die Informationen enthalten, wie z. B.:

  • Prozessinformationen auf Wiki-Seiten des internen Unternehmens
  • Dateien in GitHub (in beliebigem Format: Markdown, einfacher Text, JSON, Code)
  • Nachrichten in einem Tool für Onlinezusammenarbeit
  • Abschnitte in der Produktdokumentation, die lange Textblöcke enthalten können
  • Textpassagen in einer Datenbank, die SQL-Abfragen (Structured Query Language) unterstützt, wie z. B. Db2
  • Ein Dokumentspeicher mit einer Sammlung von Dateien, z. B. rechtsgültige Verträge, die als PDF-Dateien gespeichert werden
  • Kundensupport-Tickets in einem Content-Management-System

Abruffunktion

Die Abruffunktion kann eine beliebige Kombination aus Such-und Inhaltstools sein, die zuverlässig relevante Inhalte aus der Knowledge Base zurückgibt, einschließlich Suchtools wie IBM Watson Discovery oder Such-und Inhalts-APIs, wie sie von GitHubbereitgestellt werden.

Vektordatenbanken sind ebenfalls effektive Retrievalmethoden. Eine Vektordatenbank speichert nicht nur die Daten, sondern auch einen Vektor, der die Daten einbettet. Dies ist eine numerische Darstellung der Daten, die ihre semantische Bedeutung erfasst. Zur Abfragezeit wird ein Vektor-Einbetten des Abfragetexts verwendet, um relevante Übereinstimmungen zu finden.

IBM watsonx.ai enthält keine Vektordatenbank, aber Sie können die Basismodelle in watsonx.ai mit jeder Vektordatenbank auf dem Markt. Die Beispielnotizbücher veranschaulichen die Schritte zum Herstellen einer Verbindung zu beliebten Vektordatenbanken wie Cloud Pak for Data und Elasticsearch.

Um Ihnen bei der Implementierung eines RAG-Musters zu helfen, bei dem der Retriever vektorisierten Text verwendet, bietet watsonx.ai eine Einbettungs-API und Einbettungsmodelle, mit denen Sie Sätze und Passagen in Vektoren umwandeln können. Weitere Informationen zu dieser Art der RAG-Implementierung finden Sie unter "Verwendung von vektorisiertem Text mit abrufgestützten Generierungsaufgaben ".

Generator

Die Generatorkomponente kann jedes Modell in watsonx.aiverwenden, je nachdem, welches Modell für Ihren Anwendungsfall, das Eingabeaufforderungsformat und Inhalte, die Sie für den Kontext extrahieren, geeignet ist.

Beispielprojekt

Importieren Sie ein Beispielprojekt mit Notizbüchern und anderen Ressourcen, die eine Frage-und-Antwort-Lösung durch abrufgestützte Generierung umsetzen. Das Projekt zeigt Ihnen, wie Sie die folgenden Dinge tun können:

  • Verwenden Sie HTML-, PDF-, DOC- oder PPT-Dateien als Wissensbasis und einen Elasticsearch Vektorindex als Retriever. (Sie müssen die Elasticsearch-Dienstinstanz separat erstellen)
  • Schreiben Sie eine Python -Funktion, die den Vektorindex abfragt, um nach Informationen zu einer Frage zu suchen, und dann ein Basismodell ableitet und die generierte Antwort auf halluzinierte Inhalte überprüft.
  • Verwenden Sie Vorlagen für Aufforderungen, die Ihnen dabei helfen, effektive Aufforderungen für Stiftungsmodelle zu formatieren.
  • Folgen Sie dem Muster effizient mit RAG-Dienstprogrammen aus der watsonx.ai Python-Bibliothek.
  • Implementieren Sie die nächste Phase einer RAG-Implementierung, indem Sie Funktionen zum Sammeln und Analysieren von Benutzerfeedback zu generierten Antworten einfügen.

Probieren Sie das Beispielprojekt Q&A mit RAG Accelerator aus.

Weitere Informationen finden Sie in den Fragen und Antworten mit RAG Accelerator.

Hinweis: Wenn Sie das Beispielprojekt nicht erstellen können, versuchen Sie, den Text im Beschreibungsfeld zu ersetzen.

Beispiele

Die folgenden Beispiele zeigen, wie das Muster der abrufgestützten Generierung angewendet wird.

Beispiele für die Generation mit erweiterter Abfrage
Beispiel Beschreibung Verknüpfung
Einfache Einführung Verwendet eine kleine Wissensbasis und eine einfache Suchkomponente, um das grundlegende Muster zu veranschaulichen Einführung in die abrufgestützte Generierung
Einfache Einführung mit Discovery Dieses Beispielnotebook verwendet kurze Artikel in IBM Watson Discovery als Knowledge Base und die Discovery-API zum Ausführen von Suchabfragen. Einfache Einführung in die abrufgestützte Generierung mit watsonx.ai und Discovery
Beispiel aus der Praxis Die Dokumentation zu watsonx.ai verfügt über eine Such-und Antwortfunktion, die grundlegende Was-ist-Fragen beantworten kann, indem die Themen in der Dokumentation als Knowledge Base verwendet werden. Beantwortung von Fragen an watsonx.ai anhand eines Grundmodells
Beispiel mit LangChain Enthält die Schritte und den Code, um die Unterstützung der abrufgestützten Generierung mit LangChain in watsonx.ai zu demonstrieren. Es werden Befehle für den Datenabruf, die Erstellung und Abfrage von Wissensbasen und Modelltests eingeführt. Verwenden Sie watsonx und LangChain, um Fragen mit Hilfe von RAG zu beantworten
Beispiel mit LangChain und einer Elasticsearch -Vektordatenbank Veranschaulicht die Verwendung von LangChain zum Anwenden eines Einbettungsmodells auf Dokumente in einer Elasticsearch -Vektordatenbank. Anschließend indexiert und verwendet das Notebook den Datenspeicher zum Generieren von Antworten auf eingehende Fragen. Verwendung von watsonx, Elasticsearch und LangChain zur Beantwortung von Fragen (RAG)
Beispiel mit der Bibliothek Elasticsearch Python Veranschaulicht, wie die Python -Bibliothek von Elasticsearch verwendet wird, um ein einbettendes Modell auf Dokumente in einer Elasticsearch -Vektordatenbank anzuwenden. Anschließend indexiert und verwendet das Notebook den Datenspeicher zum Generieren von Antworten auf eingehende Fragen. Verwendung von watsonx und der Python Elasticsearch zur Beantwortung von Fragen (RAG)
Beispiel mit LangChain und einer SingleStoreDB Datenbank Zeigt Ihnen, wie Sie die abrufgestützte Generierung auf große Sprachmodelle in watsonx anwenden, indem Sie die SingleStoreDB -Datenbank verwenden. RAG mit SingleStoreDB und watsonx

Weitere Informationen

Testen Sie diese Lernprogramme:

Übergeordnetes Thema: Abgenerative KI-Lösungen entwickeln