Im heutigen KI-Zeitalter stehen Entwickler vor der Herausforderung, Modelle für spezifische Kontexte nutzbar zu machen. Ein typisches Beispiel ist die Kundenbetreuung, wo Chatbots detailliertes Wissen über das jeweilige Unternehmen benötigen. Auch in der Rechtsanalyse müssen Modelle eine große Anzahl vergangener Fälle berücksichtigen können. Bisher wurde oft Retrieval-Augmented Generation (RAG) verwendet, um Modelle durch das Abrufen von relevanten Informationen aus einer Wissensdatenbank zu verbessern. Traditionelle RAG-Lösungen haben jedoch den Nachteil, dass sie oft den Kontext beim Codieren von Informationen verlieren, was dazu führt, dass relevante Daten nicht korrekt abgerufen werden.
Anthropic hat nun eine Methode eingeführt, die das Abrufen von Informationen im Rahmen von RAG dramatisch verbessert: Kontextuelles Retrieval. Diese Methode nutzt zwei Haupttechniken – kontextuelle Embeddings und kontextuelles BM25 – und reduziert die Anzahl der Abruffehler erheblich. In Kombination mit dem Neuranken konnte eine Verbesserung von bis zu 67 % erreicht werden.
Hauptfrage: Wie funktioniert das Kontextuelle Retrieval?
Das kontextuelle Retrieval behebt das Problem des Kontextverlusts in RAG-Systemen, indem es den abgerufenen Informationen kontextspezifische Erklärungen voranstellt. Dadurch werden diese „Chunks“ besser in den Gesamtzusammenhang der Dokumente eingeordnet, was zu präziseren Antworten führt.
Funktionsweise des Retrieval-Augmented Generation (RAG)
RAG-Systeme zerlegen ein großes Wissensdatenbankdokument in kleinere Textabschnitte, sogenannte Chunks, und erstellen Vektorembeddings, die die Bedeutung dieser Abschnitte kodieren. Diese Embeddings werden in einer Vektordatenbank gespeichert, und das System sucht bei einer Nutzeranfrage nach den am besten passenden Chunks auf Basis von semantischen Ähnlichkeiten.
Folgefragen
Was ist der Unterschied zwischen herkömmlichen RAG-Systemen und kontextuellem Retrieval?
Herkömmliche RAG-Systeme fokussieren sich auf semantische Ähnlichkeit, was jedoch oft dazu führt, dass wichtige genaue Übereinstimmungen übersehen werden. Beispielsweise könnte ein RAG-System bei der Abfrage nach einem spezifischen Fehlercode „TS-999“ nur ähnliche Fehlercodes finden, jedoch nicht den exakten Treffer. Das kontextuelle Retrieval verwendet hingegen zusätzlich BM25, eine ältere Technik zur lexikalischen Suche, um auch exakte Übereinstimmungen zu finden.
Wie hilft BM25 beim Abrufen relevanter Informationen?
BM25 baut auf dem Prinzip von TF-IDF (Term Frequency-Inverse Document Frequency) auf, das die Relevanz eines Wortes in einem Dokument misst. BM25 verfeinert diese Technik, indem es die Länge des Dokuments berücksichtigt und eine Sättigungsfunktion für die Termfrequenz anwendet. Dies verhindert, dass häufig vorkommende Wörter die Suchergebnisse dominieren.
Wie verbessert das kontextuelle BM25 die Leistung?
Durch das Hinzufügen von kontextuellen Informationen zu den Chunks – wie etwa spezifische Details zu einem Dokument oder Abschnitt – wird sichergestellt, dass die Retrieval-Schritte sowohl semantische als auch exakte Übereinstimmungen finden. Beispielsweise wird bei einem Chunk, der ursprünglich nur „Das Unternehmen erzielte ein Umsatzwachstum von 3 %“ lautete, der Kontext hinzugefügt: „Dieser Abschnitt stammt aus einem Bericht über das Unternehmen ACME Corp im zweiten Quartal 2023.“
Was sind die Vorteile des Kontexts beim Abruf?
Durch das Hinzufügen von kontextuellen Erklärungen wird die Relevanz und Präzision der abgerufenen Informationen erheblich verbessert. In den durchgeführten Experimenten konnte der Fehler beim Abrufen der 20 relevantesten Chunks um 49 % gesenkt werden, wenn kontextuelle Embeddings und BM25 kombiniert wurden.
Weitere Optimierungsschritte: Prompt Caching und Neuranking
Prompt Caching zur Kostenreduktion
Eine innovative Lösung, die mit Claude eingeführt wurde, ist das Prompt Caching. Hierbei können Entwickler häufig verwendete Prompts zwischen API-Aufrufen zwischenspeichern, was die Latenz um das 2-Fache reduziert und die Kosten um bis zu 90 % senkt. Gerade bei kleineren Wissensdatenbanken, die weniger als 200.000 Tokens umfassen, kann dies eine schnelle und kosteneffiziente Lösung sein.
Neuranking: Noch bessere Ergebnisse durch zusätzliche Relevanzbewertung
Beim Abrufen von Informationen aus großen Wissensdatenbanken können RAG-Systeme eine große Anzahl an Ergebnissen zurückgeben, von denen nicht alle gleichermaßen relevant sind. Hier kommt das Neuranking ins Spiel: Es sortiert die Ergebnisse nach Relevanz, bevor sie dem Modell übergeben werden. In Kombination mit kontextuellem Retrieval konnte das Neuranking die Fehlerrate beim Abruf um beeindruckende 67 % senken.
Konkrete Tipps zur Implementierung von Kontextuellem Retrieval
Um das kontextuelle Retrieval in einem eigenen Projekt umzusetzen, gibt es einige wichtige Punkte zu beachten:
- Chunk-Größen und Grenzen: Die Wahl der richtigen Chunk-Größe und -Grenzen ist entscheidend. Zu kleine Chunks verlieren wichtigen Kontext, während zu große Chunks die Suchleistung beeinträchtigen können.
- Embedding-Modelle: Es gibt viele Embedding-Modelle, und nicht alle profitieren gleichermaßen von kontextuellem Retrieval. Besonders gut funktionierten in Tests die Modelle von Gemini und Voyage.
- Angepasste Prompts: Während der Standard-Prompt für viele Anwendungsfälle gut funktioniert, kann die Leistung durch spezifischere Prompts, angepasst an die jeweilige Domäne, noch weiter verbessert werden.
- Anzahl der Chunks im Kontextfenster: Mehr Chunks zu nutzen, erhöht die Wahrscheinlichkeit, relevante Informationen abzurufen. Allerdings kann zu viel Information auch ablenkend wirken. In Tests zeigte sich, dass 20 Chunks die besten Ergebnisse lieferten.
- Evaluation und kontinuierliche Optimierung: Da jedes Anwendungsgebiet einzigartig ist, sollten Entwickler kontinuierlich evaluieren, wie sich die verschiedenen Techniken in ihrem Kontext auswirken.
Schlussfolgerung
Das kontextuelle Retrieval stellt einen bedeutenden Fortschritt gegenüber traditionellen RAG-Systemen dar. Durch die Kombination von kontextuellen Embeddings und BM25, sowie dem Einsatz von Neuranking, können Entwickler die Abrufgenauigkeit erheblich steigern. Anthropic bietet hierfür eine leicht umsetzbare Anleitung in ihrem Cookbook, das Entwicklern ermöglicht, diese innovativen Techniken in eigenen Projekten zu integrieren.
Die beschriebenen Techniken sind besonders relevant für Unternehmen mit großen Wissensdatenbanken, die präzise Informationen benötigen – sei es im technischen Support, der Rechtsprechung oder anderen Bereichen mit umfassenden Informationsbedarfen.