Retrieval-Augmented Generation (RAG) Systeme sind zu einem Eckpfeiler bei der Integration von generativer KI mit Echtzeit-Unternehmensdaten geworden. Durch die Erweiterung großer Sprachmodelle (Large Language Models, LLMs) mit externen Wissensquellen ermöglichen RAG-Systeme genauere, kontextuell relevantere Antworten und verbessern so die Informationsgewinnung in strukturierten und unstrukturierten Unternehmensdaten erheblich.
RAG-Systeme erweitern die Fähigkeiten von LLMs, indem sie externe Informationen durch einen strukturierten Prozess einbeziehen:
Wenn ein Benutzer eine Anfrage stellt, wird diese in eine Vektoreinbettung umgewandelt und mit den gespeicherten Vektoren mithilfe von Ähnlichkeitssuchalgorithmen verglichen. Die relevantesten Chunks werden abgerufen und verwendet, um den Prompt des Benutzers zu erweitern, bevor eine Antwort vom LLM generiert wird. Dieser Ansatz verbessert die Genauigkeit und kontextuelle Relevanz der KI-Ausgaben, was ihn besonders wertvoll für Unternehmen macht, die effizient mit großen Datenmengen interagieren müssen.
Es ist wichtig zu beachten, dass dieser beschriebene Typ von RAG-System, bei dem Vektordatenbanken zur Speicherung und zum Abruf von Daten verwendet werden, zu den beliebtesten Implementierungen gehört, aber nicht der einzige ist. Andere RAG-Systeme verwenden beispielsweise Konwledge Graphs zur Speicherung und zum Abruf von Informationen. Konwledge Graphs eignen sich besonders gut für die explizite Darstellung von Beziehungen zwischen Datenpunkten, was in bestimmten Unternehmenskontexten, in denen strukturierte Daten mit klaren Beziehungen zwischen Entitäten wertvoller sind als semantische Ähnlichkeit, besonders nützlich sein kann.
Das Verständnis der verschiedenen Arten von Suchmethoden ist entscheidend für die Optimierung von RAG-Systemen. Jeder Suchtyp bietet einzigartige Vor- und Nachteile, die beeinflussen, wie effektiv ein System Daten abrufen und interpretieren kann. In komplexen Unternehmensumgebungen, in denen Daten umfangreich und vielfältig sind, kann der Einsatz der geeigneten Suchtechnik die Relevanz und Genauigkeit der Informationsgewinnung erheblich beeinflussen. Lassen Sie uns die wichtigsten Suchtypen und ihre Rollen in RAG-Systemen untersuchen.
Ein bedeutendes Problem bei traditionellen RAG-Systemen besteht darin, dass einzelne Textabschnitte oft nicht genügend Kontext für einen genauen Abruf und ein genaues Verständnis bieten. Wenn Chunks zu klein sind oder von ihren umgebenden Informationen getrennt werden, liefern sie möglicherweise nicht genügend Details, um isoliert nützlich zu sein.
Angenommen, eine Unternehmenswissensbasis enthält zahlreiche Finanzberichte verschiedener Unternehmen. Ein Beispiel für eine mögliche Abfrage könnte lauten: "Wie hoch war das Umsatzwachstum von ACME Corp im zweiten Quartal 2023?".
Ein relevanter Chunk in der Datenbank könnte lauten: "Der Umsatz des Unternehmens wuchs um 3% gegenüber dem Vorquartal."
Bei der Ähnlichkeitssuche wandelt das System die Anfrage des Benutzers und die gespeicherten Chunks in Vektoreinbettungen um und sucht nach Übereinstimmungen. Dieser Chunk gibt jedoch nicht an, auf welches Unternehmen oder Quartal er sich bezieht. In einer Datenbank mit ähnlichen Berichten verschiedener Unternehmen könnte das System Chunks von anderen Organisationen wie "XYZ Corp" oder "Global Tech Inc." abrufen. Die Ähnlichkeit der Sprache in diesen Dokumenten kann dazu führen, dass das System irrelevante Informationen abruft, was zu ungenauen oder irreführenden Antworten führt.
Dieses Problem entsteht, weil den Chunks spezifischer Kontext fehlt, was es für den Ähnlichkeitssuchalgorithmus schwierig macht, sie allein auf der Grundlage von Vektoreinbettungen zu unterscheiden.
Um diese Herausforderungen anzugehen, führt Anthropic das Konzept kontextuelles Retrieval ein. Anstatt sich auf isolierte Chunks zu verlassen, die möglicherweise wichtige Informationen vermissen lassen, schlagen sie vor, jedem Chunk einen chunk-spezifischen erklärenden Kontext voranzustellen, bevor er in die Vektordatenbank eingebettet wird.
Aber was genau sind kontextualisierte Chunks? Es sind Chunks, die mit zusätzlichen Informationen angereichert wurden, die Klarheit über ihren Inhalt und Ursprung schaffen. Dieser zusätzliche Kontext verwandelt mehrdeutige Chunks in detaillierte, in sich geschlossene Informationseinheiten, was tatsächlich den Unterschied zwischen einem erfolgreichen Abruf und einem gescheiterten ausmachen kann.
In ihrem Blog[1] führte Anthropic nicht nur die Implementierungsmethode ein, die sie für den kontextualisierten Abruf verwendeten, sondern fügte sie auch ihrem Cookbook hinzu. Anstatt die Chunks manuell zu annotieren, fanden sie einen weiteren Anwendungsfall für ihr LLM, Claude, indem sie es zur automatischen Generierung des notwendigen Kontexts für jeden Chunk verwendeten und so den Prozess rationalisierten. Indem sie Claude einen Prompt und das gesamte Dokument, aus dem die Chunks abgeleitet wurden, zur Verfügung stellten, wiesen sie es an, eine prägnante kontextuelle Zusammenfassung (in der Regel 50-100 Token) für jeden Chunk basierend auf dem Gesamtdokument zu erstellen.
Originaler Chunk: "Der Umsatz des Unternehmens wuchs um 3% gegenüber dem Vorquartal."
Kontextualisierter Chunk: "Dieser Chunk stammt aus einem SEC-Bericht über die Leistung von ACME Corp im Q2 2023; der Umsatz des Vorquartals betrug 314 Millionen Dollar. Der Umsatz des Unternehmens wuchs um 3% gegenüber dem Vorquartal."
Durch das Hinzufügen dieses Kontexts wird der Chunk selbsterklärend, was es dem Abrufsystem ermöglicht, ihn genauer mit der Anfrage des Benutzers abzugleichen.
Anthropics beispielhafter Ansatz geht über traditionelle RAG-Implementierungen hinaus, indem er die Ähnlichkeitssuche auf kontextualisierten Vektoreinbettungen mit der BM25-Methode kombiniert, einer Ranking-Funktion, die lexikalische Übereinstimmungen verwendet, um präzise Wort- oder Phrasenübereinstimmungen zu finden. BM25 baut auf dem TF-IDF-Konzept (Term Frequency-Inverse Document Frequency) auf, das die Wortwichtigkeit in einem Dokument misst. Während BM25 typischerweise nicht in Standard-RAG-Systemen verwendet wird, bietet die Integration in diesem Fall eine hybride Suchfähigkeit, die sowohl semantisches Verständnis als auch exakte Schlüsselwortübereinstimmung nutzt.
In ihren Tests haben sie die Top 20 Chunks (Top k kann frei gewählt werden) mit dieser kombinierten Methode abgerufen. Dieser kombinierte Ansatz überwindet die Einschränkungen der ausschließlichen Verwendung der Ähnlichkeitssuche. Während Embedding-Modelle effektiv bei der Erfassung semantischer Beziehungen sind, können sie wichtige exakte Übereinstimmungen übersehen. Durch die Integration der lexikalischen Suche von BM25 stellt Anthropics Methode sowohl präzise Übereinstimmung als auch tieferes semantisches Verständnis sicher.
Anthropic führte vergleichende Tests durch, um die Effektivität ihres kontextuellen Abrufansatzes zu bewerten, und hier ist die Zusammenfassung der Ergebnisse:
Während Anthropics kontextueller Abrufansatz die Genauigkeit verbessert, kann er aufgrund der zusätzlichen Kontextgenerierung die Rechenkosten erhöhen. Um dies abzumildern, nutzen sie Claudes Prompt-Caching-Funktion, die vor zwei Monaten veröffentlicht wurde. Prompt-Caching ermöglicht es in diesem Fall, das mit den zu kontextualisierenden Chunks verbundene Dokument in den Cache zu laden, sodass das Modell nicht jedes Mal das gesamte Dokument verarbeiten muss. Dies reduziert die Kosten pro Token für die Verarbeitung großer Dokumente erheblich.
Es ist wichtig zu beachten, dass Prompt-Caching eine separate Optimierung vom kontextualisierten Chunking-Ansatz ist. Während sie zusammen für Kosteneinsparungen verwendet werden können, kann jedes unabhängig funktionieren. Prompt-Caching allein hilft, Kosten in Szenarien zu reduzieren, in denen dieselben Dokumente häufig verarbeitet werden, was es zu einem wertvollen Werkzeug macht, auch ohne kontextualisierte Chunks.
Derzeit ist die Prompt-Caching-Funktion in Anthropics primärer API verfügbar und wird voraussichtlich bald auf Partner-Umgebungen wie AWS Bedrock und GCP Vertex ausgerollt. Diese Funktion hilft Unternehmen, Rechenkosten effektiv zu verwalten.
Für Unternehmen ist die Fähigkeit, genaue und kontextuell relevante Informationen abzurufen, besonders in Szenarien mit großen Wissensbasen wie Ticketing-Systemen oder Helpdesk-Plattformen von entscheidender Bedeutung. In diesen Umgebungen stellen Benutzer oft Anfragen, die inkonsistent sind oder denen es an Präzision mangelt. Beispielsweise könnten Abfragen wie: "Wie setze ich mein Passwort für das HR-Portal zurück?" oder "Was ist der Status meines letzten Support-Tickets?" gestellt werden.
Die Implementierung von Anthropics kontextuellem Abrufansatz in solchen Systemen bietet greifbare Vorteile:
Zum Beispiel kann in einem Helpdesk-Szenario die Anfrage eines Benutzers zu einem Softwarefehler mit der präzisen Lösung aus einem technischen Handbuch abgeglichen werden, selbst wenn die Beschreibung des Benutzers nicht die exakte Terminologie verwendet, die in der Dokumentation zu finden ist. Die kontextualisierten Chunks stellen sicher, dass relevante Lösungen abgerufen werden, was die Effektivität und Zuverlässigkeit des bereitgestellten Supports verbessert.
Über Anthropics kontextuellen Abruf hinaus können mehrere andere Optimierungsstrategien RAG-Systeme verbessern:
Innovationen in der RAG-Optimierung, wie Anthropics kontextueller Abrufansatz, sind entscheidend für die skalierbare Lösung realer Geschäftsprobleme. Unternehmen kämpfen oft mit fragmentierten Datenquellen, inkonsistenten Benutzeranfragen und der Notwendigkeit eines effizienten, genauen Informationsabrufs.
Durch die Verbesserung von RAG-Systemen zur Bewältigung dieser Herausforderungen können Unternehmen:
Die Investition in RAG-Optimierung verwandelt generative KI-Anwendungen von experimentellen Werkzeugen in praktische, skalierbare Lösungen. Für Unternehmen bedeutet dies, das volle Potenzial der KI zu nutzen, um Wachstum voranzutreiben, Betriebsabläufe zu optimieren, echte Probleme zu lösen und messbare Ergebnisse in einer wettbewerbsintensiven Geschäftslandschaft zu liefern.
[1] - https://www.anthropic.com/news/contextual-retrieval