Retrieval-augmented generation (RAG) Muster
Sie können ein RAG-Muster ( Retrieval-Augmented Generation ) erstellen, um eine faktische Ausgabe zu erzeugen, die auf Informationen aus einer Wissensbasis basiert.
Ein RAG-Muster verarbeitet Inhalte aus einer Wissensdatenbank in einem Vektorformat, das leicht zu durchsuchen ist. Wenn ein Benutzer eine Frage stellt, ruft das RAG-Muster eine Reihe von relevanten Passagen ab und stellt sie dem LLM zur Verfügung. Der LLM generiert eine sachliche Antwort auf die Frage des Benutzers.
RAG-Muster, Fähigkeiten und Ressourcen
Sie können ein RAG-Muster mit den folgenden Fähigkeiten und Ressourcen erstellen:
- Vektorielle Einbettungen
- Erstellen Sie Vektoreinbettungen, um die Bedeutung eines Satzes oder einer Passage als numerische Darstellung zu kodieren. Vektoren bieten eine effiziente Möglichkeit, Textpassagen in Ihrer Wissensdatenbank zu finden, die der vom Benutzer gestellten Frage am ähnlichsten sind. Vektoren werden in Vektordatenbanken gespeichert und mit einem Vektorindex abgerufen.
- Siehe Erstellen eines Vektorindexes.
- Textextraktion
- Konvertieren Sie Inhalte aus einer PDF-Datei oder einem Bild in Text für die Vektorisierung.
- Siehe Extrahieren von Text aus Dokumenten.
- Zurückgeholte Passagen werden neu bewertet
- Neueinstufung der obersten Ergebnismenge, die nach Relevanz statt nach Ähnlichkeit abgerufen wird.
- Siehe Reranking-Dokumentpassagen.
- Vektorspeicher
- Wählen Sie zwischen dem speicherinternen Chroma-Vektorspeicher, dem automatisch eingerichteten watsonx.data Milvus Vektorspeicher oder anderen Vektorspeichern, zu denen Sie Verbindungen herstellen.
- Siehe Arten von Vektorspeichern.
- Encodermodelle für Einbettung und Reranking
- Wählen Sie aus IBM und Encoder-Modellen von Drittanbietern für die Erstellung von Einbettungen und das Reranking von Passagen.
- Siehe Unterstützte Geberfundamentmodelle.
- Grundlagenmodelle für die Inferenzierung
- Wählen Sie aus einer Reihe von Basismodellen, wählen Sie ein bedarfsgesteuertes Modell oder importieren und implementieren Sie ein benutzerdefiniertes Modell.
- Siehe Foundation-Modelle, die Ihren Anwendungsfall unterstützen.
- Beispiele zur Anpassung
- Beginnen Sie mit einem beispielhaften RAG-Muster und passen Sie es für Ihren Anwendungsfall an.
- Siehe RAG-Muster.
Wege zur Arbeit
Sie können Code für Ihr RAG-Muster mit den folgenden Methoden schreiben:
Sie können in einer No-Code- oder Low-Code-Umgebung mit Tools in der Benutzeroberfläche arbeiten:
- Prompt Lab : Sie können mit einem hochgeladenen Dokument oder mit einem Vektorindex chatten.
- AutoAI für RAG : Sie können die Suche nach einem optimierten, produktionsgerechten RAG-Muster automatisieren.
- Vektor-Index : Sie können einen Vektorindex erstellen, der auf einem oder mehreren Dokumenten basiert.
Die Architektur der abruferweiterten Generierungsmuster
Sie können die Technik der Einbeziehung von Kontext in Ihre Eingabeaufforderungen erweitern, indem Sie Informationen aus einer Wissensdatenbank verwenden.
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 ] Mit Kontext angereicherte Eingabeaufforderung
[ 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
Das folgende Diagramm veranschaulicht das abruferweiterte Generierungsmuster zur Laufzeit. 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:
- Ihre Wissensdatenbank wird vorverarbeitet, um den Inhalt in einfachen Text umzuwandeln und zu vektorisieren. Die Vorverarbeitung kann die Textextraktion umfassen, um Informationen in Tabellen und Bildern in Text umzuwandeln, der vom LLM interpretiert werden kann.
- Ein Benutzer stellt eine Frage.
- Die Frage wird in eine Texteinbettung umgewandelt.
- Der Vektorspeicher, der den vektorisierten Inhalt der Wissensbasis enthält, wird nach Inhalten durchsucht, die der Frage des Benutzers ähnlich sind.
- Die relevantesten Suchergebnisse werden der Eingabeaufforderung im Textformat hinzugefügt, zusammen mit einer Anweisung, wie z. B. "Beantworten Sie die folgende Frage, indem Sie nur Informationen aus den folgenden Passagen verwenden."
- Der kombinierte Aufforderungstext (Anweisung + Suchergebnisse + Frage) wird an das Stiftungsmodell gesendet.
- Das Modell der Stiftung verwendet Kontextinformationen aus der Eingabe, um eine sachliche Antwort zu generieren.
Wissensdatenbank
Ihre Wissensdatenbank kann eine beliebige Sammlung von informationshaltigen Artefakten sein, z. B.:
- Prozessinformationen auf Wiki-Seiten des internen Unternehmens
- Dateien in GitHub
- 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
Die meisten unterstützten Vektorspeicher und AutoAI unterstützen Dateien des Typs PDF, HTML, DOCX, MD oder einfachen Text. Siehe Erdung von Dokumentendateitypen.
Vorverarbeitung von Inhalten
Wenn Sie Ihr RAG-Muster einrichten, verarbeiten Sie die Dokumente in Ihrer Wissensbasis vor. Bei der Vorverarbeitung wird der Inhalt zunächst in reinen Text umgewandelt. Sie können die Textextraktion konfigurieren, um Informationen in Tabellen und Bildern in Text umzuwandeln, den der LLM interpretieren kann. Anschließend vektorisiert das Einbettungsmodell den Text, speichert ihn in der Vektordatenbank und erstellt einen Vektorindex zum Abrufen des Inhalts.
Wenn ein Benutzer eine Frage stellt, wird dieser Text durch das Einbettungsmodell vektorisiert.
Auffinden von Inhalten und Ranking
Der Retriever sucht in der Vektordatenbank nach dem Inhalt, der der Vektoreinbettung des Abfragetextes am ähnlichsten ist. Die gefundenen Passagen werden nach Ähnlichkeit mit der Frage geordnet. Sie können Ihrem RAG-Muster ein Reranking-Modell hinzufügen, um die am häufigsten gefundenen Passagen auf ihre Relevanz für die Beantwortung der Frage zu bewerten.
Antwort Generation
Die aufgerufene Passage, die Frage des Benutzers und die Anweisungen werden in einer Eingabeaufforderung an das Stiftungsmodell gesendet. Das Basismodell generiert eine Antwort und sendet sie an den Nutzer zurück.
RAG-Muster
Die folgenden Beispiele zeigen, wie das abruferweiterte Generierungsmuster angewendet werden kann.
Beispiel | Format | Beschreibung | Verknüpfung |
---|---|---|---|
Vollständige RAG-Lösung | Projekt | Dieses Beispielprojekt mit Notizbüchern und anderen Assets implementiert eine Frage-Antwort-Lösung unter Verwendung von Retrieval-augmented Generation. Siehe Q&A mit RAG Accelerator. | Q&A mit dem RAG Accelerator Beispielprojekt. |
Einfache Einführung | Notizbuch | 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 | Notizbuch | 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 mit LangChain | Notizbuch | 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 | Notizbuch | 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 | Notizbuch | 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 | Notizbuch | 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: Generative KI-Lösungen