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
Copy link to section
[ 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
Copy link to section
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
Copy link to section
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
Copy to clipboardIn die Zwischenablage kopiert
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
Copy link to section
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
Copy link to section
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
Copy link to section
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
Copy link to section
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
Copy link to section
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
Copy link to section
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.
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.
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.
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.
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.
Über den Einsatz von Cookies auf dieser WebsiteUnsere Websites benötigen einige Cookies, um ordnungsgemäß zu funktionieren (erforderlich). Darüber hinaus können mit Ihrer Zustimmung weitere Cookies verwendet werden, um die Nutzung der Website zu analysieren, die Benutzerfreundlichkeit zu verbessern und Werbung zu schalten.Weitere Informationen finden Sie in Ihren Cookie-Benutzervorgaben. Durch den Besuch unserer Website erklären Sie sich mit der Verarbeitung von Informationen einverstanden, wie in der IBMDatenschutzbestimmung beschrieben.Um eine reibungslose Navigation zu ermöglichen, werden Ihre Cookie-Präferenzen über die hier aufgeführten IBM Web-Domains hinweg gemeinsam genutzt.