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.
Das durch Abruf erweiterte Generierungsmuster umfasst die folgenden Schritte:
- Durchsuchen Sie Ihre Wissensbasis nach Inhalten, die sich auf die Frage eines Benutzers beziehen.
- 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."
- 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.
- Senden Sie den kombinierten Aufforderungstext (Anweisung + Suchergebnisse + Frage) an das Stiftungsmodell.
- 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.
Beispiele
Die folgenden Beispiele zeigen, wie das Muster der abrufgestützten Generierung angewendet wird.
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:
- Erstellen Sie ein Fundamentmodell, indem Sie Prompt Lab
- Erstellen Sie ein Fundamentmodell mit dem abrufgestützten Generierungsmuster
Übergeordnetes Thema: Abgenerative KI-Lösungen entwickeln