Große Sprachmodelle (Large Language Models, LLMs) verfügen oft über ein erstaunliches Wissen zu einer Vielzahl von Themen. Dabei sind sie jedoch auf die Daten beschränkt, mit denen sie trainiert wurden. Das bedeutet, dass Kunden, die LLM mit privaten oder geschützten Geschäftsinformationen verwenden möchten, LLM nicht ohne Weiteres zur Beantwortung von Fragen, zur Erstellung von Korrespondenz oder Ähnlichem verwenden können.
Retrieval-Augmented Generation (RAG) ist ein architektonisches Muster, das es Foundation Models ermöglicht, faktisch korrekte Ausgaben für spezielle oder proprietäre Themen zu produzieren, die nicht Teil der Trainingsdaten des Modells waren. Durch die Ergänzung der Fragen und Prompts des Benutzers mit relevanten Daten, die aus externen Datenquellen abgerufen werden, liefert RAG dem Modell „neue“ (für das Modell) Informationen und Details, auf die es seine Antwort stützen kann.
Das RAG-Muster, das in der Abbildung unten gezeigt wird, besteht aus zwei Teilen: Dateneinbettung während der Build-Zeit und Benutzeraufforderung (oder Rückgabe von Ergebnissen) während der Laufzeit.
Ein KI-Engineer bereitet die Kundendaten (z. B. Verfahrenshandbücher, Produktdokumentation oder Helpdesk-Tickets usw.) während der Datenvorverarbeitung vor. Die Kundendaten werden transformiert und/oder angereichert, um sie für die Modellerweiterung nutzbar zu machen. Zu den Transformationen können einfache Formatkonvertierungen gehören, wie z. B. die Konvertierung von PDF-Dokumenten in Text, oder komplexere Transformationen, wie z. B. die Übersetzung komplexer Tabellenstrukturen in Wenn-Dann-Anweisungen. Die Anreicherung kann die Erweiterung gebräuchlicher Abkürzungen, das Hinzufügen von Metadaten wie Währungsinformationen und andere Ergänzungen zur Verbesserung der Relevanz der Suchergebnisse umfassen.
Ein Einbettungsmodell wird verwendet, um die Quelldaten in eine Reihe von Vektoren umzuwandeln, die die Wörter in den Kundendaten darstellen. Einbettungen erleichtern das maschinelle Lernen bei großen Eingaben wie spärlichen Vektoren, die Wörter darstellen. Die Einbettungen werden als Passagen (so genannte Chunks) der Kundendaten gespeichert, z. B. als Unterabschnitte oder Absätze, um das Auffinden von Informationen zu erleichtern.
Die generierten Einbettungen werden in einer Vektordatenbank gespeichert. Jede Datenquelle, die „Fuzzy“-Abfragen unterstützt, bei denen die Ergebnisse auf der Grundlage der wahrscheinlichen Relevanz zurückgegeben werden, wie z. B. watsonx Discovery, kann in der RAG-Architektur verwendet werden. Die gängigste Implementierung verwendet jedoch eine Vektordatenbank wie Milvus, FAISS oder Chroma.
Das System ist jetzt für die Nutzung durch Endbenutzer bereit.
Endbenutzer interagieren mit einer auf generativer KI basierenden Anwendung und geben eine Abfrage ein.
Die auf generativer KI basierende Anwendung empfängt die Anfrage und führt eine Suche in der Vektordatenbank durch, um die wichtigsten (wir nennen sie Top K) Informationen zu erhalten, die der Anfrage des Benutzers am ehesten entsprechen. Lautet die Anfrage des Benutzers beispielsweise „Wie hoch ist das tägliche Abhebungslimit auf dem MaxSavers-Konto“, kann die Suche Passagen wie „Das MaxSavers-Konto ist ...“, „Die täglichen Abhebungslimits sind...“ und „... Konto-Limits ... “ ergeben.
Die besten Passagen werden zusammen mit einem für die jeweilige Anwendung kuratierten Prompt an das LLM gesendet.
Das LLM liefert eine menschenähnliche Antwort auf der Grundlage der Anfrage des Benutzers, der Eingabeaufforderung und der Kontextinformationen, die dem Endbenutzer präsentiert werden.
Die Zuordnung der IBM Watson- und watsonx-Produktfamilie zum RAG-Muster ist im obigen Diagramm dargestellt.
watsonx Discovery implementiert die Vorverarbeitung, die Generierung von Einbettungen und die Funktionen zum Speichern und Abrufen der Relevanz des Musters. Für bestimmte Arten von Lösungen kann watsonx Discovery auch als generative Front-End-KI-Anwendung für Benutzer verwendet werden. watsonx Discovery ersetzt nicht nur eine Vektordatenbank, sondern bietet auch sofort einsetzbare NLP-Anreicherungen wie Entity-Extraktion, Sentiment-Analyse, Emotionsanalyse, Schlüsselwort-Extraktion, Kategorie-Klassifizierung, Concept Tagging und andere.
Für Chat-Lösungen bietet watsonx Assistant die Benutzeroberfläche und auch Dialogfunktionen wie das Erinnern an das Thema früherer Anfragen. Wenn ein Benutzer beispielsweise fragt: „Erzähle mir etwas über den Toast-o-matic“ und dann „Wie viel kostet er?“, weiß der watsonx Assistant, dass sich „er“ in der letzten Anfrage auf den Toaster in der ersten Anfrage bezieht.
Schließlich bietet watsonx.ai eine Auswahl an großen Sprachmodellen, aus denen Kunden in einer Cloud-Hosting-Umgebung wählen können. Mit watsonx.ai können Kunden generative KI, Foundation Models und maschinelles Lernen unkompliziert trainieren, validieren, optimieren und bereitstellen sowie KI-Anwendungen in einem Bruchteil der Zeit und mit einem Bruchteil der Daten erstellen.
Einige Kunden haben in ihrer Region keinen Zugriff auf watsonx.ai oder es bestehen Sicherheitsbedenken oder regulatorische Anforderungen, die sie an der Nutzung der watsonx.ai SaaS-Lösung hindern. Für diese Kunden bieten wir watsonx.ai als containerisierte Dienste an, die auf Red Hat Openshift in den Rechenzentren der Kunden oder in einer Private Cloud innerhalb der Infrastruktur eines Cloud-Service bereitgestellt werden können.
Die meisten LLMs werden auf englischsprachige Texte trainiert, die einen geringen Prozentsatz an Text in anderen, oft westeuropäischen Sprachen enthalten. Für Anwendungen, die mehrsprachige oder lokalisierte Sprachunterstützung benötigen, kann ein Übersetzungsschritt vor und nach der Abfrage implementiert werden, um die Eingaben in die „Basissprache“ der vorverarbeiteten Dokumente, z. B. Englisch, zu übersetzen und die Modellausgaben in die Zielsprache, z. B. Spanisch, zu übersetzen. Dieser Ansatz wird in dem folgenden Diagramm dargestellt.
Bei diesem Ansatz wird das RAG-Basismuster wie folgt geändert (ohne die Schritte zur Erzeugung der Einbettung):
Ein Benutzer gibt eine Anfrage in einer Sprache ein, die sich von der vorherrschenden Sprache der vorverarbeiteten Dokumentation unterscheidet. Zum Beispiel eine Abfrage auf Spanisch und eine englischsprachige Dokumentationsbasis.
Die generative KI-Anwendung fordert ein großes Sprachmodell auf, die Benutzeranfrage in die Sprache der Dokumentationsdatenbank zu übersetzen. In unserem Beispiel von Spanisch nach Englisch.
Die übersetzte Abfrage wird verwendet, um die Top-K-Passagen der Informationen abzurufen, die für die Abfrage des Benutzers am relevantesten sind.
Die übersetzte Anfrage und der abgerufene Kontext werden an das LLM gesendet, um eine Antwort zu generieren.
Die generative KI-Anwendung verwendet wiederum ein großes Sprachmodell, um die generierte Antwort in die Zielsprache des Benutzers zu übersetzen. In unserem Beispiel vom Englischen ins Spanische.
Die übersetzte Antwort in Spanisch wird dem Endbenutzer präsentiert.
Die Erfahrung zeigt, dass mit diesem Ansatz eine Genauigkeit von 80 % oder mehr erreicht werden kann, je nach Kontext und Art der Abfragen, die nicht in der Basissprache gestellt werden. Es wird erwartet, dass neue mehrsprachige Modelle, die auf einem größeren Prozentsatz verschiedener Sprachen trainiert wurden, eine noch höhere Genauigkeit erreichen werden.
RAG ist ein Kandidat für jedes Geschäftsszenario, in dem es einen großen Bestand an Dokumentation und Geschäftsregeln gibt, die ein Benutzer für verbindliche Antworten konsultieren muss. Es ist auch eine gute Lösung, um LLM-basierte Chatbots mit eigenem oder bereichsspezifischem Wissen auszustatten und Halluzinationen zu verhindern.
Zu den möglichen Verwendungszwecken gehören:
Underwriting und Schadensregulierung im Versicherungswesen. RAG hat viele potenzielle Anwendungen in der Versicherungsbranche. Underwriter und Makler müssen Tausende von Seiten an Unterlagen kennen, die die Bedingungen von Hunderten von Versicherungsprodukten abdecken. In ähnlicher Weise müssen Schadensregulierer die gleiche Dokumentation sowie Verträge mit Überschreibungen und zusätzlichen kundenindividuellen Bedingungen genau kennen. Das RAG-Architekturmuster kann als architektonisches „Rückgrat“ von Lösungen dienen, die Underwriter, Makler und Schadensregulierer bei der Abfrage von Produkt- und Vertragsdokumentation unterstützen, um Kundenanfragen besser beantworten zu können und die Prozessproduktivität zu verbessern.
Unterstützung von Call-Center-Agenten. Callcenter-Agenten benötigen fundierte Kenntnisse über Hunderte von Produkten und Dienstleistungen sowie über häufig auftretende Produktprobleme und deren Lösung. Das RAG-Muster ist eine solide Architekturgrundlage für die Entwicklung von Lösungen, die Agenten bei der schnellen Suche nach Antworten auf Kundenanfragen unterstützen.
Kunden-Chatbots. RAG ist ein leistungsstarkes Tool zur Erstellung kundenorientierter Chatbots, die Fragen von Kunden beantworten. Die Kombination der natürlichen Sprachfähigkeiten von Large Language Models und den unternehmensspezifischen Antworten von RAG kann eine überzeugende, dialogorientierte Customer Experience bieten. Beachten Sie, dass RAG allein nur Frage-und-Antwort-Funktionen bietet. Es kann keine „Transaktionen“ durchführen, d. h. mit Unternehmenssystemen agieren, um Informationen abzurufen oder Datensätze zu aktualisieren. Zusätzliche Komponenten müssen hinzugefügt werden, um Benutzerabsichten zu erkennen und mit Unternehmenssystemen zu interagieren.
Support/Helpdesk. Wie Callcenter-Agenten benötigen auch Mitarbeiter im IT-Betriebs- und -Support fundierte Kenntnisse über die Konfiguration komplexer Systemimplementierungen sowie Kenntnisse über häufige und bereits beobachtete Probleme und deren Lösung. Das RAG-Muster ist eine solide Architekturgrundlage für die Entwicklung von Lösungen, die dem Supportpersonal helfen, schnell relevante Antworten auf gemeldete Probleme und beobachtete Probleme zu finden.
Wenn Sie ein Modell auswählen wollen, das für Ihr Projekt gut geeignet ist, spielen viele Faktoren eine Rolle.
Die Lizenz des Modells kann die Verwendung des Modells einschränken. Zum Beispiel kann die Lizenz eines Modells verhindern, dass es als Teil einer kommerziellen Anwendung verwendet wird.
Der Datensatz, der zum Trainieren des Modells verwendet wird, hat einen direkten Einfluss darauf, wie gut das Modell für eine bestimmte Anwendung funktioniert, und wirkt sich erheblich auf das Risiko aus, dass das Modell unsinnige, beleidigende oder einfach unerwünschte Antworten erzeugt. Ebenso können Modelle, die mit urheberrechtlich geschützten oder privaten Daten trainiert wurden, ihre Benutzer rechtlich haftbar machen. IBM bietet vollständige Transparenz der Trainingsdaten und Freistellung von Rechtsansprüchen, die sich aus seinen Modellen ergeben.
Die Größe des Modells, die Anzahl der Parameter, mit denen es trainiert wird, und die Größe des Kontextfensters (wie lange Textpassagen kann das Modell akzeptieren) wirken sich auf die Modellleistung, den Ressourcenbedarf und den Durchsatz aus. Es ist zwar verlockend, der Philosophie „größer ist besser“ zu folgen und ein Modell mit 20 Milliarden Parametern zu wählen, aber der Ressourcenbedarf und die Verbesserung der Genauigkeit (wenn überhaupt) rechtfertigen dies möglicherweise nicht. Aktuelle Studien zeigen, dass kleinere Modelle bei einigen Lösungen deutlich besser abschneiden können als größere Modelle.
Jede Feinabstimmung, die an einem Modell vorgenommen wird, kann sich auf seine Eignung für eine Aufgabe auswirken. IBM bietet beispielsweise zwei Versionen des Granite-Modells an: eine, die auf allgemeine Chat-Anwendungen abgestimmt ist, und eine andere, die auf die Befolgung von Anweisungen abgestimmt ist.
Weitere Überlegungen bei der Auswahl eines Modells sind:
Auswahl von Modellparametern, z. B. die Modelltemperatur, um ein ausgewogenes Verhältnis zwischen menschenähnlichen Texten und faktischen Antworten zu erzielen. Die Einstellung der Modelltemperatur auf einen hohen Wert führt zu konsistenten, aber möglicherweise uninteressanten oder zu knappen Antworten, während die Einstellung auf einen niedrigen Wert mehr Abwechslung in die Antworten bringt, aber die Länge und den Inhalt der Antworten unvorhersehbar macht.
Auswahl und Implementierung von Modellleitlinien zum Schutz vor ineffektiven oder anstößigen Ergebnissen.
Die Wahl des Modells hängt von der Anwendung, der Art der Daten und den Anforderungen an die Sprachunterstützung ab. Die Einbettungsmodelle müssen möglicherweise erweitert werden, um branchen- oder kundenspezifische Begriffe oder Akronyme genau zu kodieren und zu durchsuchen.
Vektordatenbanken sind nur eine Option für die Implementierung des einbettenden Datenspeichers. Watson Discovery bietet zusätzliche Tools und Funktionen, die die Leistung und Genauigkeit einer RAG-Lösung verbessern können. Einige „traditionelle“ Datenbanken bieten Vektorspeicherung und -suche und/oder Ähnlichkeitssuche, die eine RAG-Lösung unterstützen.
Auch für Vektordatenbanken gibt es zahlreiche Optionen. Einfache In-Memory-Datenbanken, die direkt in GenAI-Anwendungen eingebettet sind, bieten zwar eine hervorragende Laufzeitleistung, lassen sich aber möglicherweise nicht gut auf große Datensätze skalieren und können erhebliche betriebliche Herausforderungen mit sich bringen, wenn es darum geht, sie auf dem neuesten Stand zu halten oder sie auf Multi-Server-Konfigurationen zu skalieren. Andere Datenbanken, die eine zentrale Serverarchitektur verwenden, sind einfacher zu betreiben und zu skalieren, erfüllen aber möglicherweise nicht die Leistungsanforderungen der spezifischen Lösung.
Es gibt eine Reihe von Methoden, um das Abruf- und Generierungsmodell zu integrieren. Die Top-K-Passagen abzurufen und sie zur Ergänzung der Benutzerabfrage zu verwenden, ist einfach und zweckmäßig. Allerdings kann es dabei an der nötigen Nuance zur Beantwortung komplexer Fragen fehlen. Eine einfache Suche nach Schlagwörtern kann ebenfalls zufriedenstellende Ergebnisse liefern.
Komplexere Lösungen können ein LLM verwenden, um mehrere Abfragen aus der ursprünglichen Abfrage des Benutzers zu generieren und diese zum Abrufen einer größeren Menge von Passagen zu verwenden. Zusätzliche Logik kann hinzugefügt werden, um die abgerufenen Passagen mit der höchsten Relevanz weiter zu sortieren und auszuwählen.
Die Vorverarbeitung der Daten vor der Einspeisung in das RAG-System ist ein wichtiger Schritt, um sicherzustellen, dass die Eingabedaten in einem für das Modell geeigneten Format vorliegen. Einfache Methoden bestehen darin, die Eingabedaten in Blöcke fester Größe mit Überlappungen zu unterteilen, z. B. sind die letzten 10 Zeichen eines Blocks identisch mit den ersten 10 Zeichen des nächsten Blocks. Dadurch können jedoch Nuancen in den Eingabedaten verloren gehen.
Eine fortgeschrittenere Vorverarbeitung könnte den eingegebenen Text manipulieren, um häufige Wortendungen zu entfernen, z. B. werden aus stopper, stoppen und gestoppt das Wort stopp; nicht informative „Stoppwörter“ wie der, als, ist und dergleichen werden entfernt; und andere Techniken. Dies kann die Relevanz der abgerufenen Informationen erheblich verbessern, erhöht jedoch die Komplexität sowohl der Dateneinbettungs- als auch der Benutzerführungsphase.
Noch fortgeschrittenere Techniken können ganze Sätze bearbeiten, um so viel wie möglich von der Bedeutung im Text zu erhalten.
Die Bewertung der Leistung eines RAG-Systems kann aufgrund der Komplexität der Aufgabe eine Herausforderung darstellen. Zu den gängigen Bewertungsmetriken gehören Perplexität, Flüssigkeit, Relevanz und Kohärenz sowie die BLU- und ROUGE-Metriken. Es ist wichtig, Metriken zu wählen, die mit den spezifischen Zielen der Aufgabe und den gewünschten Ergebnissen übereinstimmen.
RAG erfordert Klartext, wobei die Wahl der Konvertierungsmethoden einen großen Einfluss auf die Datenqualität hat. Wie werden beispielsweise Tabellen, Bilder und andere Metadatenelemente bei der Konvertierung von PDF-Dateien behandelt?
Um eine menschenähnliche Antwort von einem LLM zu erhalten, sind erhebliche Rechenressourcen erforderlich, und je nach Größe des Modells, Komplexität der Benutzeranfrage und Menge der an das Modell übermittelten erweiterten Informationen kann dies oft mehrere Sekunden dauern. Lösungen, die für große Benutzergruppen ausgelegt sind oder schnelle Antwortzeiten erfordern, müssen möglicherweise einen Mechanismus implementieren, um Modellantworten für häufig auftretende Anfragen zwischenzuspeichern.
Die Einbettung von firmeneigenen, potenziell vertraulichen und potenziell personenbezogenen Daten in LLM-Prompts ist ein wesentlicher und notwendiger Bestandteil des RAG-Musters. Unternehmen, die gehostete Modellplattformen verwenden, müssen die Richtlinien des Anbieters kennen, z. B. die Richtlinien zur Aufbewahrung und Nutzung von Prompt-Daten (erfasst der Anbieter Prompt-Daten und verwendet er sie für das Modell-Retraining?), Kontrollen zur Verhinderung des „Durchsickerns“ von Prompt-Daten an andere Benutzer usw. Diese müssen dann mit den eigenen Richtlinien und Kontrollen zur Informationssicherheit abgeglichen werden.
Obwohl die Weitergabe einiger geschützter Informationen unvermeidlich ist, können Unternehmen ihre Gefährdung einschränken, indem sie nur Dokument- oder URL-Verweise auf die sensibelsten Informationen in den verarbeiteten Daten einfügen. Anstatt beispielsweise eine Tabelle mit Preisnachlässen in die RAG-Daten einzubetten, fügen Sie nur eine Beschreibung der Tabelle und einen Verweis oder Link zu einem internen Dokument oder einer Website in den Inhalt ein.
Einfache Transport-Level-Sicherheit (TLS) bei der Kommunikation zwischen Zonen kann ausreichen, um die Anforderungen an die Datensicherheit zu erfüllen. Architekten müssen jedoch möglicherweise in Betracht ziehen, zusätzlichen Schutz durch das Hinzufügen von Komponenten zur Ver- und Entschlüsselung von Eingabeaufforderungen und Antworten zu bieten, bevor diese über die Zonengrenze hinweg übertragen werden.
Die Art der Verbindung zwischen den Bereitstellungszonen hat Auswirkungen auf mehrere nicht-funktionale Anforderungen. Die Verwendung einer VPN-Verbindung (Virtual Private Network) über das öffentliche Internet ist eine kostengünstige Option, kann jedoch Sicherheitsbedenken nicht vollständig ausräumen und möglicherweise nicht die Anforderungen der Lösung an Reaktionszeit oder Durchsatz erfüllen. Eine private Netzwerkverbindung zur Modell-Hosting-Umgebung ist mit wesentlich höheren Kosten verbunden, bietet jedoch eine deutlich bessere Sicherheit und ermöglicht es Architekten, die Netzwerklatenz und Bandbreite zu kontrollieren.