Dev News Daily ENDE

Spring AI zeigt RAG-Pipeline, die Treffer ohne Antwort verwirft

Ein Beitrag von Christian Tzolov im Spring Blog verbindet zwei Bausteine von Spring AI: die Modular-RAG-Pipeline im Modul spring-ai-rag und Jev, das kleine Bewertungsmodell aus Spring AI TypeSafe, das der vorige Beitrag der Reihe vorgestellt hat. Das Demo-Modul 05-1-modular-rag liegt neben der naiven Version 05-rag, sodass sich beide vergleichen lassen.

Der Beitrag nennt drei Probleme des klassischen Ansatzes, den Nutzertext einzubetten und ähnliche Abschnitte in den Prompt zu packen. Nutzer tippen keine Suchanfragen, eine geschwätzige Frage zieht unverändert ihr Rauschen in die Suche. Ähnlich ist nicht dasselbe wie nützlich: Ein Literaturverzeichnis, das das Thema fünfmal erwähnt, punktet hoch und beantwortet nichts. Und abgerufener Text ist ungeprüfte Eingabe, die direkt im Prompt landet.

Der RetrievalAugmentationAdvisor geht das in Phasen an, jede eine austauschbare Schnittstelle. Vor dem Abruf formuliert ein LLM-Aufruf die Frage suchfreundlich um, ein weiterer erweitert sie zu mehreren Anfragen; der Abruf läuft je Anfrage parallel, die Ergebnisse werden zusammengeführt. Danach stellt JevDocumentFilter jeder Passage vier enge Fragen und verwirft durchgefallene, JevDocumentReranker fragt, ob die Passage die Anfrage beantworten könnte, sortiert nach Wert und behält die besten. Der Filter läuft zuerst, damit der Reranker nur für die Übrigen zahlt, und beide Stufen sehen die ursprüngliche Frage, nicht die umformulierte.

Im Beispiel wurde eine Frage danach, ob Hurrikan Milton in Florida auf Land traf, zu vier Suchen, die sechs Abschnitte lieferten. Vier waren Literaturverweise und Archivlinks; der Filter entfernte sie, der Reranker bewertete die beiden übrigen mit 0,97 und 0,88. Bei einem Limit von drei erhielt das Modell zwei Passagen und antwortete richtig. Der Beitrag fasst den Unterschied so: Vektorähnlichkeit sagt, worum es in einem Text geht, Jev, ob er die Frage beantwortet.

Spring AI zeigt RAG-Pipeline, die Treffer ohne Antwort verwirft
Spring AI zeigt RAG-Pipeline, die Treffer ohne Antwort verwirft — Dev News Daily

Warum das wichtig ist

Die meisten RAG-Fehler in der Praxis sind Abruffehler, die wie Modellfehler aussehen. Einen Relevanzprüfer zwischen Vektorspeicher und Prompt zu setzen, ist in Spring AI schnell ausprobiert, weil es ein einzelner DocumentPostProcessor in einem vorhandenen Advisor ist.