Wie wir ein semantisches Hervorhebungsmodell für RAG Context Pruning und Token Saving entwickelt haben
Das Problem: RAG-Rauschen und Token-Verschwendung
DieVektorsuche ist eine solide Grundlage für RAG-Systeme - Unternehmensassistenten, KI-Agenten, Kundensupport-Bots und mehr. Sie findet zuverlässig die Dokumente, auf die es ankommt. Aber die Abfrage allein löst das Kontextproblem nicht. Selbst gut abgestimmte Indizes liefern im Großen und Ganzen relevante Abschnitte, während nur ein kleiner Teil der Sätze innerhalb dieser Abschnitte tatsächlich die Anfrage beantwortet.
In Produktionssystemen macht sich diese Lücke sofort bemerkbar. Eine einzige Abfrage kann Dutzende von Dokumenten umfassen, von denen jedes Tausende von Token lang ist. Nur eine Handvoll Sätze enthält das eigentliche Signal; der Rest ist Kontext, der die Verwendung von Token aufbläht, die Inferenz verlangsamt und oft den LLM ablenkt. Noch deutlicher wird das Problem in Agenten-Workflows, bei denen die Abfragen selbst das Ergebnis einer mehrstufigen Schlussfolgerung sind und nur kleine Teile des abgerufenen Textes abdecken.
Dadurch entsteht ein klarer Bedarf an einem Modell, das die nützlichen Sätze identifizieren und hervorheben und den Rest ignorierenkann - im Wesentlicheneine Relevanzfilterung auf Satzebene oder das, was viele Teams als Context Pruning bezeichnen. Das Ziel ist einfach: die wichtigen Teile zu behalten und das Rauschen zu entfernen, bevor es den LLM erreicht.
Herkömmliche schlagwortbasierte Hervorhebungen können dieses Problem nicht lösen. Wenn ein Benutzer beispielsweise fragt: "Wie kann ich die Ausführungseffizienz von Python-Code verbessern?", wird ein Keyword-Highlighter "Python" und "Effizienz" herausfiltern, aber den Satz, der die Frage tatsächlich beantwortet - "NumPy vektorisierte Operationen anstelle von Schleifen verwenden" - übersehen, da er keine Schlüsselwörter mit der Anfrage teilt. Was wir stattdessen brauchen, ist semantisches Verständnis, nicht String-Matching.
Ein semantisches Hervorhebungsmodell für die RAG-Rauschfilterung und das Pruning von Kontexten
Um dies für die Entwickler von RAG zu vereinfachen, haben wir ein Semantic Highlighting Modell trainiert und als Open Source zur Verfügung gestellt, das die Sätze in den abgerufenen Dokumenten identifiziert und hervorhebt, die semantisch besser mit der Suchanfrage übereinstimmen. Das Modell liefert derzeit die beste Leistung sowohl auf Englisch als auch auf Chinesisch und ist so konzipiert, dass es direkt in bestehende RAG-Pipelines integriert werden kann.
Modell-Details
Umarmungsgesicht: zilliz/semantic-highlight-bilingual-v1
Lizenz: MIT (kommerziell-freundlich)
Architektur: 0.6B Encoder-only Modell basierend auf BGE-M3 Reranker v2
Kontext-Fenster: 8192 Token
Unterstützte Sprachen: Englisch und Chinesisch
Semantische Hervorhebung liefert die Relevanzsignale, die benötigt werden, um nur die nützlichen Teile von langen abgerufenen Dokumenten auszuwählen. In der Praxis ermöglicht dieses Modell:
Verbesserte Interpretierbarkeit, die zeigt, welche Teile eines Dokuments wirklich wichtig sind
70-80% weniger Token-Kosten, da nur hervorgehobene Sätze an den LLM gesendet werden
Bessere Antwortqualität, da das Modell weniger irrelevanten Kontext sieht
Leichtere Fehlersuche, da die Ingenieure die Übereinstimmungen auf Satzebene direkt überprüfen können
Bewertungsergebnisse: Erreichen der SOTA-Leistung
Wir haben unser Semantisches Hervorhebungsmodell in mehreren Datensätzen sowohl auf Englisch als auch auf Chinesisch evaluiert, und zwar sowohl unter domäneninternen als auch domänenexternen Bedingungen.
Die Benchmark-Suiten umfassen:
Englische Multispan-QA: multispanqa
Englisch out-of-domain Wikipedia: wikitext2
Chinesische Mehrspur-QS: multispanqa_zh
Chinesisch out-of-domain Wikipedia: wikitext2_zh
Zu den evaluierten Modellen gehören:
Offene Provence-Reihe
Naver's Provence/XProvence-Reihe
OpenSearch's semantische Hervorhebung
Unser trainiertes zweisprachiges Modell: zilliz/semantic-highlight-bilingual-v1
Über alle vier Datensätze hinweg erreicht unser Modell die beste Platzierung. Noch wichtiger ist, dass es das einzige Modell ist, das sowohl auf Englisch als auch auf Chinesisch konstant gut abschneidet. Konkurrierende Modelle konzentrieren sich entweder ausschließlich auf Englisch oder zeigen deutliche Leistungseinbußen bei chinesischem Text.
Wie wir dieses semantische Hervorhebungsmodell entwickelt haben
Ein Modell für diese Aufgabe zu trainieren ist nicht der schwierige Teil; die eigentliche Arbeit besteht darin, ein gutes Modell zu trainieren, das die früheren Probleme bewältigt und eine Leistung nahe der SOTA-Leistung liefert. Unser Ansatz konzentrierte sich auf zwei Dinge:
Modellarchitektur: Verwendung eines reinen Encoder-Designs für eine schnelle Inferenz.
Trainingsdaten: Generierung hochwertiger Relevanzkennzeichnungen mit schlussfolgernden LLMs und Skalierung der Datengenerierung mit lokalen Inferenz-Frameworks.
Modell-Architektur
Wir haben das Modell als leichtgewichtiges , reines Kodierernetzwerk aufgebaut, das Context Pruning als eine Relevanzbewertungsaufgabe auf Token-Ebene behandelt. Dieses Design ist inspiriert von Provence, einem von Naver auf dem ICLR 2025 vorgestellten Ansatz zur Kontextsäuberung, bei dem das Pruning nicht mehr als "Auswahl des richtigen Chunks", sondern als "Bewertung jedes Tokens" verstanden wird. Dieser Ansatz passt natürlich zur semantischen Hervorhebung, bei der feinkörnige Signale wichtig sind.
Reine Encoder-Modelle sind zwar nicht die neueste Architektur, aber sie sind in diesem Fall äußerst praktisch: Sie sind schnell, einfach zu skalieren und können Relevanzbewertungen für alle Token-Positionen parallel erzeugen. Für ein RAG-Produktionssystem ist dieser Geschwindigkeitsvorteil weitaus wichtiger als die Verwendung eines größeren Decodermodells.
Nach der Berechnung der Relevanzwerte auf Token-Ebene werden diese zu Werten auf Satzebene aggregiert. Dieser Schritt verwandelt verrauschte Token-Signale in eine stabile, interpretierbare Relevanzmetrik. Sätze oberhalb eines konfigurierbaren Schwellenwerts werden hervorgehoben, alles andere wird herausgefiltert. Auf diese Weise entsteht ein einfacher und zuverlässiger Mechanismus zur Auswahl der Sätze, die für die Anfrage tatsächlich von Bedeutung sind.
Inferenz-Prozess
Zur Laufzeit folgt unser semantisches Hervorhebungsmodell einer einfachen Pipeline:
Eingabe - Der Prozess beginnt mit einer Benutzerabfrage. Die abgerufenen Dokumente werden als Kontextkandidaten für die Relevanzbewertung behandelt.
Modellverarbeitung- Die Abfrage und der Kontext werden zu einer einzigen Sequenz verkettet: [BOS] + Abfrage + Kontext
Token-Scoring - Jedem Token im Kontext wird ein Relevanzwert zwischen 0 und 1 zugewiesen, der angibt, wie stark es mit der Abfrage in Verbindung steht.
Satzaggregation - Die Token-Scores werden auf Satzebene aggregiert, in der Regel durch Mittelwertbildung, um einen Relevanz-Score für jeden Satz zu erhalten.
Schwellenwertfilterung - Sätze, deren Punktzahl über einem konfigurierbaren Schwellenwert liegt, werden hervorgehoben und beibehalten, während Sätze mit niedriger Punktzahl herausgefiltert werden, bevor sie an das nachgeschaltete LLM weitergeleitet werden.
Basismodell: BGE-M3 Reranker v2
Wir haben BGE-M3 Reranker v2 aus mehreren Gründen als Basismodell ausgewählt:
Es verwendet eine Encoder-Architektur, die sich für das Scoring von Token und Sätzen eignet
Unterstützt mehrere Sprachen mit Optimierung für Englisch und Chinesisch
Bietet ein 8192-Token-Kontextfenster, das für längere RAG-Dokumente geeignet ist
Behält 0,6B Parameter bei - stark genug, ohne rechenaufwändig zu sein
Sorgt für ausreichendes Weltwissen im Basismodell
Trainiert für das Reranking, das sich eng an die Aufgaben der Relevanzbeurteilung anlehnt
Trainingsdaten: LLM-Annotation mit Reasoning
Nachdem wir die Modellarchitektur fertiggestellt hatten, bestand die nächste Herausforderung darin, einen Datensatz zu erstellen, mit dem ein zuverlässiges Modell trainiert werden konnte. Wir begannen damit, uns anzusehen, wie Open Provence dies handhabt. Deren Ansatz verwendet öffentliche QA-Datensätze und ein kleines LLM, um zu kennzeichnen, welche Sätze relevant sind. Er ist gut skalierbar und leicht zu automatisieren, was ihn zu einer guten Grundlage für uns machte.
Wir stießen jedoch schnell auf das gleiche Problem, das sie beschreiben: Wenn man einen LLM bittet, direkt Kennzeichnungen auf Satzebene auszugeben, sind die Ergebnisse nicht immer stabil. Einige Beschriftungen sind korrekt, andere sind fragwürdig, und es ist schwierig, die Dinge im Nachhinein zu bereinigen. Eine vollständig manuelle Beschriftung war ebenfalls keine Option - wir benötigten viel mehr Daten, als wir jemals von Hand beschriften könnten.
Um die Stabilität zu verbessern, ohne die Skalierbarkeit zu beeinträchtigen, haben wir eine Änderung vorgenommen: Der LLM muss für jedes Label, das er ausgibt, ein kurzes Argumentationsmuster liefern. Jedes Trainingsbeispiel enthält die Anfrage, das Dokument, die Satzspannen und eine kurze Erklärung, warum ein Satz relevant oder irrelevant ist. Durch diese kleine Anpassung wurden die Annotationen viel konsistenter und wir erhielten etwas Konkretes, auf das wir uns bei der Validierung oder Fehlerbehebung des Datensatzes beziehen konnten.
Die Einbeziehung der Argumentation erwies sich als überraschend wertvoll:
Die Qualität der Annotationen wurde verbessert: Das Aufschreiben der Begründung wirkt wie eine Selbstkontrolle, die zufällige oder inkonsistente Beschriftungen reduziert.
Bessere Beobachtbarkeit: Wir können sehen, warum ein Satz ausgewählt wurde, anstatt das Label als Blackbox zu behandeln.
Leichtere Fehlersuche: Wenn etwas falsch aussieht, lässt sich anhand der Begründung leicht feststellen, ob das Problem an der Eingabeaufforderung, der Domäne oder der Anmerkungslogik liegt.
Wiederverwendbare Daten: Selbst wenn wir in Zukunft zu einem anderen Beschriftungsmodell wechseln, bleiben die Argumentationsspuren für eine erneute Beschriftung oder Prüfung nützlich.
Der Annotations-Workflow sieht wie folgt aus:
Qwen3 8B für Annotation
Für die Annotation haben wir uns für Qwen3 8B entschieden, weil es von Haus aus einen "Denkmodus" über die Ausgaben unterstützt, was es viel einfacher macht, konsistente Argumentationsspuren zu extrahieren. Kleinere Modelle lieferten uns keine stabilen Beschriftungen, und größere Modelle waren langsamer und unnötig teuer für diese Art von Pipeline. Qwen3 8B hat die richtige Balance zwischen Qualität, Geschwindigkeit und Kosten gefunden.
Wir haben alle Annotationen über einen lokalen vLLM-Dienst anstatt über Cloud-APIs ausgeführt. Dies ermöglichte uns einen hohen Durchsatz, eine vorhersehbare Leistung und viel niedrigere Kosten - im Grunde genommen tauschten wir GPU-Zeit gegen API-Token-Gebühren, was bei der Generierung von Millionen von Proben das bessere Geschäft ist.
Skalierung des Datensatzes
Insgesamt haben wir mehr als 5 Millionen zweisprachige Trainingsmuster erstellt, die etwa gleichmäßig auf Englisch und Chinesisch verteilt sind.
Englische Quellen: MS MARCO, Natürliche Fragen, GooAQ
Chinesische Quellen: DuReader, Chinesische Wikipedia, mmarco_chinese
Ein Teil des Datensatzes stammt aus der Neukommentierung bestehender Daten, die von Projekten wie Open Provence verwendet werden. Der Rest wurde aus Rohkorpora generiert, indem zunächst Abfrage-Kontext-Paare erstellt und diese dann mit unserer schlussfolgernden Pipeline beschriftet wurden.
Alle annotierten Trainingsdaten sind auch auf HuggingFace für die Entwicklung der Community und als Trainingsreferenz verfügbar: Zilliz-Datensätze
Trainingsmethode
Sobald die Modellarchitektur und der Datensatz fertig waren, trainierten wir das Modell auf 8× A100 GPUs für drei Epochen, was ungefähr 9 Stunden dauerte.
Hinweis: Das Training zielte nur auf den Pruning Head ab, der für die semantische Hervorhebung zuständig ist. Der Rerank Head wurde nicht trainiert, da die ausschließliche Konzentration auf das Pruning-Ziel bessere Ergebnisse für die Relevanzbewertung auf Satzebene lieferte.
Fallstudie aus der realen Welt
Benchmarks sagen nur einen Teil der Geschichte aus. Hier ist ein reales Beispiel, das zeigt, wie sich das Modell in einem häufigen Grenzfall verhält: wenn der abgerufene Text sowohl die richtige Antwort als auch einen sehr verlockenden Distraktor enthält.
Abfrage: Wer hat The Killing of a Sacred Deer geschrieben?
Kontext (5 Sätze):
1\. The Killing of a Sacred Deer is a 2017 psychological horror film directed by Yorgos Lanthimos,
with a screenplay by Lanthimos and Efthymis Filippou.
2. The film stars Colin Farrell, Nicole Kidman, Barry Keoghan, Raffey Cassidy,
Sunny Suljic, Alicia Silverstone, and Bill Camp.
3. The story is based on the ancient Greek playwright Euripides’ play Iphigenia in Aulis.
4. The film tells the story of a cardiac surgeon (Farrell) who secretly
befriends a teenager (Keoghan) connected to his past.
5. He introduces the boy to his family, who then mysteriously fall ill.
Richtige Antwort: Satz 1 (sagt ausdrücklich "Drehbuch von Lanthimos und Efthymis Filippou")
Dieses Beispiel hat eine Falle: In Satz 3 wird erwähnt, dass "Euripides" das Originalstück geschrieben hat. Die Frage lautet jedoch: "Wer hat den Film The Killing of a Sacred Deer geschrieben?", und die Antwort sollte die Drehbuchautoren des Films sein, nicht der griechische Dramatiker von vor Tausenden von Jahren.
Modell-Ergebnisse
| Modell | Findet die richtige Antwort? | Vorhersage |
|---|---|---|
| Unser Modell | ✓ | Ausgewählte Sätze 1 (richtig) und 3 |
| XProvence v1 | ✗ | Nur Satz 3 ausgewählt, richtige Antwort verpasst |
| XProvence v2 | ✗ | Nur Satz 3 ausgewählt, richtige Antwort verpasst |
Key Sentence Score Vergleich:
| Satz | Unser Modell | XProvence v1 | XProvence v2 |
|---|---|---|---|
| Satz 1 (Filmdrehbuch, richtige Antwort) | 0.915 | 0.133 | 0.081 |
| Satz 3 (Original-Theaterstück, Distraktor) | 0.719 | 0.947 | 0.802 |
XProvence-Modelle:
Fühlt sich stark zu "Euripides" und "Stück" hingezogen und gibt Satz 3 nahezu perfekte Werte (0,947 und 0,802)
Ignoriert die eigentliche Antwort (Satz 1) völlig und erzielt extrem niedrige Werte (0,133 und 0,081)
Selbst wenn der Schwellenwert von 0,5 auf 0,2 gesenkt wird, findet es immer noch nicht die richtige Antwort.
Unser Modell:
gibt Satz 1 korrekt die höchste Punktzahl (0,915)
ordnet Satz 3 immer noch eine gewisse Relevanz zu (0,719), weil er mit dem Hintergrund zusammenhängt
trennt die beiden eindeutig mit einer Marge von ~0,2
Dieses Beispiel zeigt die Hauptstärke des Modells: das Verstehen der Suchabsicht und nicht nur das Abgleichen oberflächlicher Schlüsselwörter. In diesem Zusammenhang bezieht sich "Wer schrieb The Killing of a Sacred Deer" auf den Film, nicht auf das antike griechische Theaterstück. Unser Modell erkennt das, während andere sich von starken lexikalischen Hinweisen ablenken lassen.
Probieren Sie es aus und sagen Sie uns, was Sie denken
Unser Modell zilliz/semantic-highlight-bilingual-v1 ist jetzt vollständig unter der MIT-Lizenz verfügbar und kann in der Produktion eingesetzt werden. Sie können es in Ihre RAG-Pipeline einfügen, es für Ihre eigene Domäne anpassen oder neue Tools darauf aufbauen. Wir freuen uns auch über Beiträge und Feedback aus der Community.
Herunterladen von HuggingFace: zilliz/semantic-highlight-bilingual-v1
Alle annotierten Trainingsdaten: https://huggingface.co/zilliz/datasets
Semantische Hervorhebung verfügbar in Milvus und Zilliz Cloud
Die semantische Hervorhebung ist auch direkt in Milvus und Zilliz Cloud (das vollständig verwaltete Milvus) integriert, so dass die Benutzer einen klaren Überblick darüber erhalten, warum jedes Dokument abgerufen wurde. Anstatt ganze Abschnitte zu durchsuchen, sehen Sie sofort die spezifischen Sätze, die sich auf Ihre Anfrage beziehen - selbst wenn der Wortlaut nicht genau übereinstimmt. Dadurch wird der Abruf leichter verständlich und die Fehlersuche wird erheblich beschleunigt. Für RAG-Pipelines wird außerdem klarer, worauf sich das nachgelagerte LLM konzentrieren soll, was beim prompten Entwurf und bei Qualitätsprüfungen hilft.
Testen Sie Semantic Highlighting in einer vollständig verwalteten Zilliz Cloud kostenlos
Wir würden uns freuen zu hören, wie es bei Ihnen funktioniert - Fehlerberichte, Verbesserungsideen oder alles, was Sie bei der Integration in Ihren Workflow entdecken.
Wenn Sie etwas genauer besprechen möchten, können Sie unserem Discord-Kanal beitreten oder eine 20-minütige Milvus-Sprechstunde buchen. Wir freuen uns immer, mit anderen Entwicklern zu plaudern und Erfahrungen auszutauschen.
Danksagung
Diese Arbeit baut auf vielen großartigen Ideen und Open-Source-Beiträgen auf, und wir möchten die Projekte hervorheben, die dieses Modell möglich gemacht haben.
Provence hat einen sauberen und praktischen Rahmen für das Context Pruning mit leichtgewichtigen Encoder-Modellen eingeführt.
Open Provence lieferte eine solide, ausgereifte Codebasis - Trainings-Pipelines, Datenverarbeitung und Modellköpfe - unter einer freizügigen Lizenz. Damit hatten wir eine gute Ausgangsbasis für Experimente.
Auf dieser Grundlage fügten wir mehrere eigene Beiträge hinzu:
Verwendung von LLM-Schlussfolgerungen zur Generierung von Relevanzkennzeichnungen höherer Qualität
Erstellung von fast 5 Millionen zweisprachigen Trainingsbeispielen, die auf reale RAG-Arbeitslasten abgestimmt sind
Auswahl eines Basismodells, das besser für die Bewertung der Relevanz von langen Kontexten geeignet ist(BGE-M3 Reranker v2)
Training nur des Pruning Head, um das Modell für die semantische Hervorhebung zu spezialisieren
Wir sind den Teams von Provence und Open Provence dankbar, dass sie ihre Arbeit offengelegt haben. Ihre Beiträge haben unsere Entwicklung erheblich beschleunigt und dieses Projekt möglich gemacht.
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word



