Production-RAG-Erfahrungen aus der Verarbeitung von mehr als 5 Millionen Dokumenten
(blog.abdellatif.io)- Im Verlauf eines 8-monatigen RAG-(Retrieval-Augmented Generation)-Projekts wurde klar, welche Methoden tatsächlich wirksam waren und welche sich als Zeitverschwendung erwiesen.
- Anfangs wurde mit Langchain und Llamaindex schnell ein Prototyp gebaut, doch echtes Nutzerfeedback zeigte Leistungsgrenzen auf.
- Als wichtigste Faktoren zur Verbesserung der Dokumentensuche erwiesen sich Query-Generierung, Reranking, Chunking-Strategie, Nutzung von Metadaten und Query-Routing.
- In der Praxis wurde eine Custom-Pipeline aufgebaut, bei der Vektor-Datenbanken, Embeddings, Reranking und LLMs flexibel ausgewählt wurden.
- Alle Erfahrungen und das gesammelte Know-how wurden im Open-Source-Projekt (agentset-ai/agentset) gebündelt und veröffentlicht.
Überblick über 8 Monate Aufbau von Production RAG
- Es werden Erfahrungen aus dem Aufbau und Betrieb von RAG-Systemen auf großen Datensätzen geteilt, darunter insgesamt 9 Millionen Seiten (Usul AI) und 4 Millionen Seiten (ein anonymes Legal-AI-Unternehmen).
- Zu Beginn wurde mithilfe von YouTube-Tutorials innerhalb weniger Tage ein Prototyp fertiggestellt, zunächst in Langchain und dann in Llamaindex, doch beim echten Deployment zeigte sich das Problem einer niedrigen Qualität, die nur Nutzer unmittelbar bemerken konnten.
- Über mehrere Monate hinweg wurden einzelne Systemkomponenten schrittweise verbessert, bis die optimale Leistung erreicht war.
Faktoren, die tatsächlich zur Leistungsverbesserung beigetragen haben (nach ROI)
-
Query-Generierung (Query Generation)
- Da die letzte Nutzeranfrage nicht den gesamten Kontext enthalten kann, wird der Gesprächsverlauf mit einem LLM analysiert, um mehrere semantische und Keyword-basierte Queries zu erzeugen.
- Diese Queries werden parallel verarbeitet und an den Reranker weitergegeben, wodurch der Suchraum erweitert und Verzerrungen hybrider Suche ausgeglichen werden.
-
Reranking
- Der Einfluss von Reranking, das sich mit etwa fünf Zeilen Code implementieren lässt, auf die Leistung ist größer als erwartet.
- Besonders hoher ROI entsteht beim Neuordnen und Auswählen der besten Chunks aus einer größeren Menge von Eingaben (z. B. Top 15 aus 50 Chunks).
- Reranking allein kann Schwächen einer nicht optimal entworfenen Pipeline in erheblichem Maß kompensieren.
-
Chunking-Strategie (Chunking Strategy)
- Dieser Bereich nimmt einen großen Teil der gesamten Entwicklungszeit ein.
- Es ist notwendig, die Datenstruktur und Muster genau zu verstehen, in logischen Einheiten zu chunken und manuell zu prüfen, dass weder Zeichen noch Sätze mitten im Text abgeschnitten werden.
- Jeder Chunk sollte seine eigenständige Bedeutung bewahren.
-
Nutzung von Metadaten im LLM-Input
- Statt dem LLM nur den reinen Chunk-Text zu übergeben, werden Metadaten (title, author usw.) ergänzt, was Kontext und Antwortqualität deutlich verbessert.
-
Query-Routing (Query Routing)
- Für Fragetypen, die mit RAG nicht beantwortet werden können (z. B. Zusammenfassungen von Artikeln oder Anfragen zu Autorinformationen), wird ein leichtgewichtiger Router eingeführt, der solche Queries auf einen API+LLM-Verarbeitungspfad umleitet.
Praxis-Stack (Our stack)
- Vektor-Datenbank: Azure → Pinecone → Turbopuffer (günstig und unterstützt standardmäßig Keyword-Suche)
- Dokumentextraktion: Custom-Ansatz
- Chunking-Tool: standardmäßig Unstructured.io, für Enterprise-Pipelines Custom-Lösung (auch Chonkie hat einen guten Ruf)
- Embedding-Modell: text-embedding-large-3 im Einsatz (andere Modelle nicht getestet)
- Reranker: None → Cohere 3.5 → Zerank (nicht sehr bekannt, aber in der Praxis stark)
- LLM: GPT 4.1 → GPT 5 → GPT 4.1 (hauptsächlich mit Azure-Credits genutzt)
Open Source und Fazit
- Sämtliche Lernergebnisse und Praxiserfahrungen mündeten in das Open-Source-Projekt agentset-ai/agentset.
- Veröffentlichung unter MIT-Lizenz, frei nutzbar und Rückfragen sind möglich (Kontaktinformationen vorhanden).
1 Kommentare
Hacker-News-Kommentare
text-embedding-large-3) passt.