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.
Textklassifizierung und -extraktion
Konvertieren Sie Inhalte aus einer PDF-Datei oder einem Bild in Text für die Vektorisierung.
Siehe Dokumente zur Verständigung.
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 automatisch eingerichteten In-Memory-Chroma-Vektorspeicher und 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.

Sie können ein RAG-Muster aus dem Inhalt der Wissensbasis in verschiedenen natürlichen Sprachen erstellen. Die folgende Tabelle enthält Einzelheiten zu den Sprachen, die von den verschiedenen zur Erstellung eines RAG-Musters verwendeten Basismodellen unterstützt werden:

Tabelle 1. Unterstützung natürlicher Sprache für verschiedene Arten von Stiftungsmodellen
Modell der Stiftung Unterstützte Sprachen
Modelle einbetten Variiert je nach Modell von nur Englisch über mehrere Sprachen bis hin zu über 100 Sprachen. Einzelheiten finden Sie unter Details zum Einbettungsmodell.
Rerankermodelle (Großbritannien)'. Einzelheiten finden Sie unter Details zum Rerankermodell.
Textklassifizierungs- und -extraktionsmodelle Über 100 Sprachen. Weitere Informationen finden Sie unter Von den Textverarbeitungs-APIs unterstützte Sprachen.

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.

Diagramm, das das Hinzufügen von Suchergebnissen, die aus einem Vektorspeicher abgeleitet sind, zur Eingabe für die abruferweiterte Generierung zeigt

Das durch Abruf erweiterte Generierungsmuster umfasst die folgenden Schritte:

  1. 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.
  2. Ein Benutzer stellt eine Frage.
  3. Die Frage wird in eine Texteinbettung umgewandelt.
  4. Der Vektorspeicher, der den vektorisierten Inhalt der Wissensbasis enthält, wird nach Inhalten durchsucht, die der Frage des Benutzers ähnlich sind.
  5. 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."
  6. Der kombinierte Aufforderungstext (Anweisung + Suchergebnisse + Frage) wird an das Stiftungsmodell gesendet.
  7. 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

Welche Dateitypen unterstützt werden, hängt von der Methode ab, die Sie für die Implementierung Ihrer Lösung wählen:

Sie können Ihre RAG-Lösung optimieren, indem Sie die Inhalte Ihrer Wissensdatenbank so anpassen, dass sie für KI besser zugänglich sind. Siehe Optimierung Ihrer Wissensdatenbank für die abrufergänzte Generierung.

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.

Tabelle 2. Beispiele für die Generation mit erweiterter Abfrage
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, Chroma 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: