Kontextbezogene Einbettung jenseits der Gold-Passage

Eine neue Trainingsmethode, ein neues Modell und ein neuer Benchmark zum Abrufen von Antworten und ihres unterstützenden Kontexts.

AutorenPerplexity Research & turbopuffer

Einleitung

Kontextbezogene Einbettungen erfassen die Bedeutung jeder Passage oder jedes Chunks im Kontext des gesamten Dokuments. Ihr Training und ihre Evaluierung setzen typischerweise einen einzigen relevanten Chunk pro Abfrage voraus, der als „Gold-Passage“ bezeichnet wird. Eine Gold-Passage reicht in der Praxis jedoch oft nicht aus. Sie enthält möglicherweise die Antwort, entbehrt jedoch des unterstützenden Kontexts, der zum Verständnis oder zur Verifizierung erforderlich ist, wodurch sie isoliert mehrdeutig bleibt.

Wir stellen pplx-embed-v2-context-9b-preview vor, unser neues Modell für kontextbezogene Einbettungen. Das Modell wird mit einem neuartigen Ansatz trainiert, der das Kontextkomprimierungsmodell von Perplexity als Lehrer verwendet. Wir aggregieren seine Token-genauen Vorhersagen zu Relevanzwerten auf Chunk-Ebene, wodurch das Einbettungsmodell lernt, sowohl Antwort-Chunks als auch unterstützenden Kontext anstelle eines einzelnen Gold-Chunks abzurufen. Das Modell erzeugt eine Einbettung pro Chunk ohne zusätzliche Inferenzkosten und unterstützt 1024-dimensionale sowie int8-Einbettungen.

Es erzielt modernste Ergebnisse („State-of-the-Art“) auf context-bench, einem neuen Benchmark für den kontextbewussten Abruf, der von turbopuffer erstellt wurde und privat gehalten wird, sowie auf ConTEB, einem weit verbreiteten öffentlichen Benchmark. Unser Modell wurde unabhängig von context-bench entwickelt und als blinde Einreichung evaluiert.

Context-bench besteht aus 2.099 Abfragen über 38.894 lange Dokumente in 21 Domänen und evaluiert drei Fähigkeiten kontextbezogener Einbettungen: die Dokument-Disambiguierung unter nahezu duplizierten Dokumenten, den Abruf von Gold-Chunks, deren Bedeutung von fernem Kontext abhängt, sowie den Rückruf der unterstützenden Evidenz, die zur Verifizierung einer Antwort erforderlich ist.

Eine Vorschau des Modells ist öffentlich auf Hugging Face verfügbar. Der Benchmark wird von turbopuffer privat gehalten, um das Risiko einer Trainingskontamination zu verringern und seinen Wert für die Messung des Fortschritts zu bewahren. Um eine Evaluierung anzufordern, kontaktieren Sie turbopuffer bitte unter contextbench@turbopuffer.com.

Abbildung 1: Answer@K, Document@K, Evidence Recall@K und All-Evidence@10 auf context-bench, im Vergleich von Perplexity v2 preview 9B mit Voyage Context 4, Voyage 4 Large und Perplexity context v1 4B.

Warum Kontext für den Abruf wichtig ist

Abrufsysteme unterteilen lange Dokumente typischerweise in kleinere Chunks, die unabhängig indiziert und durchsucht werden können. Das Chunking ist in der Praxis bequem, entfernt jedoch den Kontext, in dem jeder Chunk ursprünglich erschien, wodurch ein Kompromiss zwischen der Granularität der Informationskompression und dem bei der Kodierung verwendeten Kontext entsteht. Ein Chunk kann sich auf eine zuvor eingeführte Entität beziehen, ihre Bedeutung von einer Abschnittsüberschrift erben oder auf Definitionen zurückgreifen, die sich an anderer Stelle im Dokument befinden. Nach der Extraktion enthält er möglicherweise nicht mehr genügend Informationen, um zuverlässig mit einer Abfrage abgeglichen zu werden. Die Kodierung des gesamten Dokuments als einzelner Vektor löst dies nicht, da eine gepoolte Repräsentation nicht jede Facette eines langen Dokuments treu erfassen kann.

Modelle für kontextbezogene Einbettungen adressieren diese Einschränkung, indem sie jeden Chunk im Kontext seines umgebenden Inhalts repräsentieren, am häufigsten durch Late Chunking: Das Dokument wird in einem einzigen Durchlauf kodiert und Chunk-Repräsentationen werden anschließend gepoolt, sodass jeder Chunk-Vektor unter Berücksichtigung des gesamten Dokuments berechnet wird. Bisherige Arbeiten wie ConTEB und unser eigenes pplx-embed-context-v1 haben gezeigt, dass kontextualisierte Chunk-Repräsentationen den Abruf gegenüber unabhängig kodierten Chunks insbesondere bei langen Dokumenten erheblich verbessern.

Die Grenzen der Gold-Chunk-Überwachung

Das Training von Modellen für kontextbezogene Einbettungen erfordert eine Überwachung, die identifiziert, welche Teile eines Dokumentes für eine gegebene Abfrage relevant sind. Ein gängiger Ansatz sind Gold-Chunk-Annotationen: Für jede Abfrage identifiziert ein Annotator, typischerweise ein großes Sprachmodell (LLM), den Chunk des Dokuments, der sie beantwortet.

Das Training kombiniert normalerweise zwei kontrastive Verluste: einen kontrastiven Verlust auf Dokumentebene („cross-document loss“), der den Gold-Chunk mit Chunks aus anderen Dokumenten kontrastiert, und einen kontrastiven Verlust innerhalb des Dokuments („within-document loss“), der ihn mit den anderen Chunks im selben Dokument kontrastiert.

Dieser Ansatz hat einige Einschränkungen:

  1. Nur ein Chunk ist relevant. Er behandelt jeden anderen Chunk im Dokument als negativ, einschließlich jener mit nützlichen unterstützenden Informationen. Die Überwachung auf Dokumentebene operiert am anderen Extrem. Sie identifiziert das Dokument als relevant, ohne anzugeben, welche Chunks darin von Bedeutung sind. In der Praxis liegt die Relevanz oft zwischen diesen Extremen. Der antworttragende Chunk kann von einigen unterstützenden Chunks abhängen, die eine Entität einführen, einen Verweis auflösen oder eine ergänzende Tatsache liefern, während der Rest des Dokuments irrelevant ist. Das Modell muss daher das richtige Maß an Selektivität erlernen: breiter als ein einzelner Gold-Chunk, aber fokussierter als das Dokument als Ganzes.
  2. Grobe Überwachung. Da jede Annotation einen einzelnen Gold-Chunk identifiziert, anstatt Relevanzgrade über das Dokument hinweg zu erfassen, liefert sie begrenzte Trainingssignale für den Rechenaufwand, der für ihre Erstellung aufgewendet wurde.
  3. Aufwendig zu skalieren. Jedes Trainingspaar erfordert, dass ein LLM das Dokument liest und den relevanten Chunk auswählt, sodass die Annotationskosten linear mit der Größe des Trainingsdatensatzes wachsen und einschränken, wie umfangreich und vielfältig die Trainingsdaten sein können.
  4. Sensitiv gegenüber Chunk-Grenzen. Die Labels sind zudem an die während der Annotation verwendeten Chunk-Grenzen gebunden. Ein Gold-Label, das einem festen Token-Größenfenster zugewiesen wird, gibt nicht an, welche kürzeren Sätze oder längeren Absätze relevant sind. Das Ändern der Chunking-Strategie oder das Training über mehrere Chunkings hinweg zur Verbesserung der Robustheit gegenüber der Art und Weise, wie Dokumente zum Zeitpunkt der Indizierung aufgeteilt werden, kann daher eine erneute Annotation des Korpus erfordern.

Ein neuartiger Ansatz für das kontextbezogene Lernen

Wir adressieren die Einschränkungen der Gold-Chunk-Überwachung durch das Destillieren von Relevanzurteilen von einem abfragebewussten Kontextkomprimierungsmodell. Dieses Modell dient als Lehrer: Es liest die Abfrage und das Dokument gemeinsam und weist jedem Dokument-Token einen Relevanzwert zu. Seine Vorhersagen bieten mehrere Vorteile für das Training kontextbezogener Einbettungen:

  1. Flexibles Chunking. Token-genaue Relevanzwerte können über beliebige ausgewählte Chunk-Grenzen aggregiert werden, wodurch dieselben Lehrervorhersagen unterschiedliche Chunkings überwachen können, ohne dass eine erneute Annotation erforderlich ist.
  2. Kontinuierliche Relevanz. Im Gegensatz zu binären Gold-Chunk-Labels liefert der Lehrer kontinuierliche Werte, die Relevanzgrade erfassen, welche auf natürliche Weise antworttragende Chunks, unterstützenden Kontext und irrelevanten Inhalt voneinander unterscheiden.
  3. Geringere Annotationskosten. Der Lehrer ist kompakt und auf Relevanzbewertung spezialisiert, was seine Überwachung im großen Maßstab weitaus kostengünstiger macht als die eines Allzweck-LLMs.

Wir trainieren unser Modell mit einer gewichteten Summe aus einem kontrastiven Verlust auf Dokumentebene und einem Distillationsverlust auf Chunk-Ebene über Batches von Abfrage-Dokument-Paaren hinweg. Für jede Abfrage dient das gepaarte Dokument als positiv, während die verbleibenden Dokumente im selben Batch als negativ dienen.

Für jeden Batch wählen wir zufällig eine Chunking-Strategie aus, teilen die Dokumente entsprechend auf und fügen Trenn-Token zwischen Chunks ein. Wir verarbeiten dann jedes Dokument in einem einzigen Vorwärtsdurchlauf und bilden den Mittelwert der Token-Repräsentationen innerhalb jedes Chunks (Mean-Pooling), um kontextbezogene Chunk-Einbettungen zu erhalten. Abfragen werden separat kodiert, mit Mean-Pooling über ihre Token-Repräsentationen. Schließlich berechnen wir die Kosinus-Ähnlichkeit zwischen jeder Abfrage-Einbettung und jeder Chunk-Einbettung im Batch.

Verlustfunktion

Kontrastiver Verlust auf Dokumentebene

Während unser Einbettungsmodell nur Ähnlichkeiten auf Chunk-Ebene erzeugt, können wir daraus auf natürliche Weise Ähnlichkeiten auf Dokumentebene ableiten. Wir betrachten ein Dokument d als ebenso relevant für eine Abfrage q wie seinen relevantesten Chunk. Diese Bewertungsregel ist durch die MaxSim-Operation von ColBERT inspiriert, die hier auf Chunks statt auf Token angewendet wird.

Konkret definieren wir, gegeben eine Abfrage q mit Einbettung q und ein Dokument d als geordnete Liste von Chunks c mit Einbettungen c, die Ähnlichkeit auf Dokumentebene als:

s(q,d):=max⁡c∈dq⊤c.s(q,d):=\max_{c\in d}\mathbf{q}^{\top}\mathbf{c}.

Gegeben diese Ähnlichkeiten auf Dokumentebene können wir ein dokumentbasiertes InfoNCE-Ziel über In-Batch-Negative formulieren.

Sei für eine Abfrage q d⁺ ihr relevantes Dokument und 𝒟 die Dokumente im Batch. Der kontrastive Verlust lautet wie folgt, wobei Temperaturen zur besseren Lesbarkeit weggelassen wurden:

Ldoc(q,d+)=−log⁡exp⁡(s(q,d+))∑d∈Dexp⁡(s(q,d))\mathcal{L}_{\mathrm{doc}}(q,d^{+})=-\log\frac{\exp(s(q,d^{+}))}{\sum_{d\in\mathcal{D}}\exp(s(q,d))}

Distillationsverlust auf Chunk-Ebene

Der kontrastive Verlust lehrt das Modell, welches Dokument für eine Abfrage relevant ist. Der Distillationsverlust lehrt es, wo die Relevanz innerhalb dieses Dokuments liegt, was für ein kontextbezogenes Modell unerlässlich ist.

Während des Trainings leiten wir jedes positive Abfrage-Dokument-Paar an unser Kontextkomprimierungsmodell weiter, das jedem Token im Dokument einen Relevanzwert zuweist. Wie bei der Bewertung auf Dokumentebene leiten wir die Relevanz jedes Chunks von seinen relevantesten Inhalten ab. Um die Sensitivität gegenüber Ausreißer-Token (einschließlich jener an Chunk-Grenzen) zu verringern, definieren wir die Relevanz auf Chunk-Ebene als den Mittelwert der n besten Token-Werte innerhalb des Chunks.

Für jede Abfrage wenden wir ein temperaturskaliertes Softmax auf die Relevanzwerte des Lehrers auf Chunk-Ebene innerhalb des positiven Dokuments an, um eine Zielverteilung zu erhalten. Chunks in den anderen Dokumenten im Batch erhalten eine Zielwahrscheinlichkeit von null. Wir trainieren das Einbettungsmodell darauf, dieses Ziel anzupassen, indem wir die Vorwärts-KL-Divergenz zwischen dem Ziel und seiner vorhergesagten Verteilung über alle Chunks im Batch minimieren:

Ldist(q,d+)=KL ⁣(pT∥pS)\mathcal{L}_{\mathrm{dist}}(q,d^{+})=\mathrm{KL}\!\left(p^{\mathrm{T}}\parallel p^{\mathrm{S}}\right)
pT(cj)=exp⁡(rj)∑ck∈d+exp⁡(rk)p^{\mathrm{T}}(c_j)=\frac{\exp(r_j)}{\sum_{c_k\in d^{+}}\exp(r_k)}
pS(c)=exp⁡(q⊤c)∑d∈D∑ck∈dexp⁡(q⊤ck)p^{\mathrm{S}}(c)=\frac{\exp(\mathbf{q}^{\top}\mathbf{c})}{\sum_{d\in\mathcal{D}}\sum_{c_k\in d}\exp(\mathbf{q}^{\top}\mathbf{c}_k)}

Hier geben die hochgestellten Indizes T und S den Lehrer und Schüler an, und rⱼ ist der Relevanzwert des Lehrers für den Chunk cⱼ im positiven Dokument d⁺. Die Zielverteilung des Lehrers weist Chunks in allen anderen Dokumenten im Batch eine Wahrscheinlichkeit von null zu.

Im Gegensatz zu einem einzelnen Gold-Chunk-Label erfasst dieses Ziel Relevanzgrade. Unterstützende Chunks erhalten Gewicht entsprechend den Werten des Lehrers, anstatt als Negativbeispiele behandelt zu werden, wodurch das Modell lernt, sowohl den unterstützenden Kontext als auch die Antwort abzurufen.

Kombinierter Verlust

Unser kombiniertes Trainingsziel ist eine gewichtete Summe aus dem kontrastiven Verlust auf Dokumentebene und dem Distillationsverlust auf Chunk-Ebene. Wir mitteln diesen gewichteten Verlust über den Batch von Abfrage-Dokument-Paaren hinweg.

Abbildung 2 veranschaulicht unseren Trainingsansatz. Der Kontextkompressor dient nur während des Trainings als Lehrer. Zum Zeitpunkt der Inferenz erzeugt das Einbettungsmodell eine kontextbezogene Einbettung pro Chunk, ohne zusätzliche Komprimierungs- oder Reranking-Stufe. Der Ansatz verbessert die Art und Weise, wie kontextbezogene Einbettungen gelernt werden, ohne den Indexspeicher zu erhöhen oder die Latenz des Lehrermodells zum Zeitpunkt des Abrufs hinzuzufügen.

Abbildung 2: Das Trainingssetup unseres Modells. Der kontextbezogene Encoder (Schüler, links) verarbeitet Dokumente, die jeweils aus mehreren Chunks bestehen. Jeder Chunk wird in Bezug auf seinen umgebenden Dokumentkontext eingebettet. Abfrage A ist eine bekannte Übereinstimmung für Dokument A und wird gegen Chunks aller Dokumente bewertet, um vorhergesagte Ähnlichkeiten zu erhalten. Diese Werte auf Chunk-Ebene werden per Max-Pooling zu Werten auf Dokumentebene zusammengefasst. Wir trainieren Vorhersagen auf Chunk-Ebene und Vorhersagen auf Dokumentebene darauf, Zielverteilungen anzupassen (rechts). Das Ziel auf Chunk-Ebene wird zum Zeitpunkt des Trainings als die Vorhersage des Kontextkompressors innerhalb des bekannten relevanten Dokuments berechnet und innerhalb der bekannten irrelevanten Dokumente auf null gesetzt. Die Zielverteilung auf Dokumentebene wird so eingestellt, dass sie auf dem bekannten relevanten Dokument One-Hot ist.

Trainingsdaten

Die Trainingsdaten bestehen aus etwa 430 öffentlichen und internen Abfrage-Dokument-Datensätzen, die über 50 Sprachen abdecken.

Wir konstruieren interne Paar-Datensätze aus PII-gefilterten Produktionsdaten und durch die Synthese relevanter Abfragen über lange Dokumente hinweg. Für jeden Vorwärtsdurchlauf wählen wir einen Datensatz aus und sampeln einen gesamten Batch daraus, um den Schwierigkeitsgrad von In-Batch-Negativen zu erhöhen und Shortcut-Lernen zu vermeiden. Keine unserer Trainingsdaten enthält Chunk-Ebenen-Annotationen: Die gesamte Überwachung innerhalb des Dokuments stammt vom Komprimierungsmodell, und für das Training werden keine ConTEB-Daten verwendet. Darüber hinaus waren während der Modellentwicklung keine context-bench-Daten verfügbar.

Trainingssetup

Das Modell geht von einem internen 9B-Parameter ColBERT-Abrufmodell aus und erzeugt über eine lineare Projektionsschicht 2048-dimensionale Einbettungen. Wir markieren Chunk-Grenzen mit einem gelernten <|chunk_sep|>-Token und bilden jede Chunk-Einbettung durch Mittelung ihrer Token-Einbettungen. Abfragen werden vom selben Modell kodiert, wobei ihre Token-Einbettungen zu einem einzigen Vektor gemittelt werden.

Wir verwenden das Matryoshka-Training, um sowohl 1024- als auch 2048-dimensionale Einbettungen zu unterstützen, sowie ein quantisierungsbewusstes Training zur Unterstützung von nativen int8-Einbettungen. Während des Trainings erhöhen wir schrittweise die Lernrate, halten sie konstant und reduzieren sie dann.

Das veröffentlichte Modell ist eine Modellsuppe („Model Soup“), die die Gewichte mehrerer Checkpoints aus demselben Trainingslauf mittelt.

Ein neuer Benchmark für den Abruf auf Chunk-Ebene

Öffentliche Benchmarks für den kontextbezogenen Abruf wie ConTEB teilen die Annahme hinter der Gold-Chunk-Überwachung: Jede Abfrage hat einen einzigen relevanten Chunk und ein Modell wird nur dafür belohnt, diesen Chunk an erster Stelle zu ranken. Sie übernehmen auch dessen Einschränkungen.

Erstens testet ConTEB den Abruf bei Aufgaben, bei denen ein Chunk ohne seinen umgebenden Kontext zweideutig ist. Bei diesen Aufgaben übertrafen kontextbezogene Modelle Modelle, die jeden Chunk unabhängig kodieren. Es wird jedoch nicht gefragt, ob ein Modell auch die anderen Teile des Dokuments zutage fördert, die den Chunk verständlich machen.

Zweitens wird nicht systematisch getestet, ob das richtige Dokument gefunden werden kann, wenn nahezu identische Dokumente im selben Korpus sich nur durch den Kontext unterscheiden, der einen ansonsten identischen Satz umgibt.

Beide Fähigkeiten sind von Bedeutung, wenn ein Suchagent oder Benutzer eine Antwort anhand einiger abgerufener Sätze anstelle eines gesamten Dokuments verstehen und verifizieren muss. Daher haben wir context-bench entwickelt, einen kontrollierten Benchmark für den Abruf über lange Dokumente, der darauf ausgelegt ist, die Verwendung des Dokumentkontexts von der allgemeinen Abrufqualität zu unterscheiden. Er testet, ob kontextbezogene Einbettungen Informationen von anderswo in einem Dokument verwenden, um drei Fähigkeiten zu unterstützen:

  1. Dokument-Disambiguierung: Identifizierung des korrekten Dokuments unter nahezu identischen Alternativen.
  2. Antwort-Abruf: Abrufen von antworttragenden Chunks, deren Bedeutung von Details an anderer Stelle im Dokument abhängt.
  3. Evidenz-Abruf: Abrufen unterstützender Chunks, die die Antwort verdeutlichen oder untermauern.

Context-bench enthält 2.099 Abfragen und 38.894 Dokumente. Es werden Chunks in Satzlänge verwendet, was insgesamt 2.458.072 Chunks ergibt. Die Abfragen decken 21 Domänen ab, darunter Unternehmensberichte, klinische Forschung, Reisen, Unterhaltung, Bildung, Regierung, rechtliche Verträge und Softwaredokumentation.

Jede Abfrage ist darauf ausgelegt, eine von zwölf kontextbezogenen Fähigkeiten zu testen. Die primären Zieldokumente sind absichtlich lang: 1.061 der 1.197 unterschiedlichen primären Zieldokumente haben mindestens 200 Sätze, bei einer Medianlänge von etwa 6.100 Token. Jede Abfrage hat genau eine korrekte Antwort im Korpus. Wenn derselbe Sachverhalt in einem Gold-Dokument mehr als einmal dargelegt wird, zum Beispiel in einem Zusammenfassungssatz und einer Tabellenzeile, wird jeder dieser Sätze als Antwort akzeptiert.

Ein Antwortpfad ist eine gültige Kombination aus einem Antwort-Chunk und der unterstützenden Evidenz, die zu ihrer Interpretation oder Verifizierung erforderlich ist. Über die 2.099 Abfragen hinweg weist der Antwortpfad des primären Zieldokuments eine Evidenzgruppe für 964 Abfragen, zwei für 735, drei oder mehr für 332 und keine für 68 auf. Alternative gültige Antwortpfade können unterschiedliche Evidenzgruppen erfordern.

Tabelle 1: Benchmark-Statistiken.

Statistik

Wert

Abfragen

2.099

Dokumente

38.894

Satz-Chunks

2.458.072

Median der primären Zieldokumentlänge

6.100 Token

Domänen

21

Evidenzgruppen pro Abfrage (Antwortpfad des primären Zieldokuments)

1: 964; 2: 735; 3+: 332; keine: 68

Tabelle 2: Zwölf kontextbezogene Fähigkeiten, die von context-bench getestet werden, mit anschaulichen Beispielen.

Fähigkeit

Beispielabfrage

Antwort-Chunk

Erforderlicher Dokumentkontext

1. Entitätsidentität

Wie viel hat Northlake für Aktienrückkäufe ausgegeben?

Das Unternehmen kaufte Aktien im Wert von 12,8 Milliarden US-Dollar zurück.

In der Einleitung wird Northlake als „das Unternehmen“ bezeichnet. Ein ähnlicher Bericht über Southlake ist nicht relevant.

2. Zeitraum oder Version

Welche Kartusche passt in die M40 Revision B?

Installieren Sie die KC-42-Kartusche.

Dem Abschnitt zur Anwendbarkeit zufolge decken diese Anweisungen Revision B und nicht Revision C ab.

3. Definitionen und Aliase

Welche Ausstiegsrate wies die 15-mg-Gruppe auf?

Zeta hatte eine Ausstiegsrate von 12,7 %.

Der Bericht definiert Zeta als die 15-mg-Gruppe. Ohne diese Definition identifiziert der Chunk die angeforderte Gruppe nicht.

4. Tabellenstruktur

Wie hoch ist die Akkukapazität des Max-Modells?

Typische Kapazität: 4.250 | 4.700 | 5.150.

Der Tabellenkopf legt Mini | Base | Max fest, gemessen in mAh. Die Antwort lautet folglich 5.150 mAh.

5. Bedingungen und Ausnahmen

Wie lange gilt die Akkugarantie für die gewerbliche Nutzung?

Die Akkugarantie beträgt 18 Monate.

Eine Abschnitteinleitung beschränkt diese Garantie auf gewerbliche Installationen; für private Installationen gilt eine andere Gewährleistung.

6. Verweise und Pronomen

Wann wurde Mara stellvertretende Bürgermeisterin?

Sie trat ihr Amt im Jahr 2021 an.

Aus der vorherigen Erzählung geht hervor, dass sich „sie“ auf Mara und nicht auf Elin bezieht, die ebenfalls diskutiert wird.

7. Listenreihenfolge und Position

Welcher Song eröffnete die Zugabe?

14. Lantern Road.

Ein Hinweis an anderer Stelle besagt, dass die Songs 14–16 die Zugabe ausmachten. Titel 14 ist daher der Eröffnungssong.

8. Abschnittsumfang

Welches Objektiv wurde für die Kameraarbeit des Films verwendet?

Es wurde durchgehend eine 35-mm-Festbrennweite verwendet.

Diese Passage gehört zu „Hauptdreharbeiten“ und nicht zu dem separaten Abschnitt über Werbefotografien.

9. Sprecherzuordnung

Welches Wiedereröffnungsdatum hat der Bürgermeister versprochen?

Wir werden am 12. Juni wiedereröffnen.

Das Transkript identifiziert den Bürgermeister als Sprecher. Dieselben Worte von einem Auftragnehmer würden nicht das Versprechen des Bürgermeisters begründen.

10. Änderungen im Zeitverlauf

Welche Kündigungsfrist galt nach der Änderung im Mai?

Die Kündigungsfrist beträgt nun 45 Tage.

Aus der Änderungshistorie geht hervor, dass diese Änderung im Mai in Kraft trat und die frühere 30-Tage-Regel ablöste.

11. Kausalbeziehungen

Warum stoppte die westliche Pumpe?

Dieser Defekt verursachte die Abschaltung.

Die Untersuchung identifiziert „diesen Defekt“ als ein festgefressenes Lager in der westlichen Pumpe und unterscheidet ihn von einer unzusammenhängenden Einlassblockade.

12. Figürliche oder sprachübergreifende Bedeutung

Bildlich:

Was symbolisiert „das Winterzimmer“ in dem Gedicht?

Sprachübergreifend:

Welche Komponente soll der Techniker laut der französischen Anweisung entfernen?

Bildlich:

Es stellt das Exil dar, anstelle eines physischen Raums.

Sprachübergreifend:

Retirez le capot. (Entfernen Sie die Abdeckung.)

Bildlich:

Der Kommentar identifiziert „es“ als das im Gedicht wiederkehrende Bild des „Winterzimmers“.

Sprachübergreifend:

Das Glossar des Leitfadens legt fest, dass „capot“ die schützende Motorhaube und nicht die Transportabdeckung bezeichnet.

Dokumente und Abfragen

Die Abfragen, Dokumente und zu testenden Fähigkeiten sind durch Gespräche mit den Kunden von turbopuffer inspiriert.

Um ein Beispiel zu nennen: Betrachten Sie die Suchbedürfnisse einer Hausverwaltung. Diese Firmen verfügen über Hunderte, manchmal Tausende von Mietverträgen, die sich nur in den Namen der Mieter, Daten und einigen wenigen anderen Schlüsseldetails unterscheiden. Eine gängige Abfrage für diesen Datensatz könnte lauten: „Wann endet der Mietvertrag für 5 Park Avenue und wie hoch ist die aktuelle Miete?“. Mietverträge können zudem lang sein, und die kritischen Disambiguierungskomponenten, die bestätigen würden, dass Sie das richtige Dokument abgerufen haben (wie Datum, Adresse, Mietername usw.), können oft sehr weit von dem wichtigsten Antwortsatz entfernt sein, der den monatlichen Mietzahlungsbetrag enthält. In der Praxis können identische Sätze wie „Die Monatsmiete beträgt X,XXX USD.“ in vielen Dokumenten im Korpus vorkommen.

Ein gutes Modell für kontextbezogene Einbettungen sollte den Kontext aus dem gesamten Dokument verwenden, um das richtige Dokument zu identifizieren und sowohl die Antwort als auch die dazugehörigen Sätze abzurufen. Dies ermöglicht es einem Benutzer oder Suchagenten, die Antwort schnell zu verifizieren und zu bestätigen, dass sie aus dem richtigen Dokument stammt.

Antwort- und Evidenz-Labels

Für jede Abfrage kennzeichnen wir „Antwort“- und „Evidenz“-Sätze im Zieldokument. Ein Modell besteht unseren Test auf „Leser-Ausreichend“ („reader sufficiency“), wenn es einen Antwortsatz zusammen mit mindestens einem Satz aus jeder Evidenzgruppe abruft. Zusammen bieten diese Sätze genügend Kontext für einen Leser, um die Antwort mit unterstützender Evidenz zu verifizieren.

Wenn Modelle für kontextbezogene Einbettungen dies gut machen, können sie die Anzahl der Token, die Suchagenten überprüfen müssen, drastisch reduzieren und es einer Person wesentlich erleichtern, schnell zu bestätigen, dass sie die richtige Antwort auf ihre ursprüngliche Abfrage gefunden hat, ohne das gesamte Dokument lesen zu müssen.

Jede Evidenzgruppe muss wiederhergestellt werden, aber jede einzelne der Alternativen einer Gruppe reicht aus, um sie wiederherzustellen. Es kommt häufig vor, dass derselbe Sachverhalt an mehreren Stellen in diesen langen Dokumenten dargelegt wird. Das Abrufen von nur einem Satz aus jeder Evidenzgruppe erfüllt die Kriterien für die Leser-Ausreichend und würde daher als perfekter Evidenz-Rückruf akzeptiert werden.

Metriken

Jedes Dokument wird in Sätze zerlegt, und dieselben Grenzen werden für alle Modelle verwendet. Für nicht-kontextbezogene Einbettungsmodelle werden zwei Bedingungen getestet: eine, bei der jeder Satz unabhängig eingebettet wird, und eine andere, bei der das gesamte Dokument als einzelner Chunk eingebettet wird.

Wir verwenden die Bedingung auf Satzebene, um den Antwort-Rückruf und den Evidenz-Rückruf zu messen. Sie testet, ob ein nicht-kontextbezogenes Modell die korrekte Antwort und unterstützende Evidenz identifizieren kann, wenn jeder Satz ohne Zugriff auf das umgebende Dokument eingebettet wird. Dies ist absichtlich anspruchsvoll. Bei vielen Abfragen fehlen dem Antwortsatz allein die Details, die erforderlich sind, um ihn von ähnlichen Sätzen an anderer Stelle im Korpus zu unterscheiden.

Wir verwenden die Bedingung auf Dokumentebene als Dokument-Rückruf-Baseline. Sie testet, ob feingranulare Satz-Einbettungen genügend Abrufvorteile bieten, um ihre zusätzlichen Speicherkosten im Vergleich zum Speichern eines Vektors pro Dokument zu rechtfertigen. Ein Index auf Satzebene erzeugt wesentlich mehr Vektoren als ein Index auf Dokumentebene, daher sollte er die Baseline von einem Vektor pro Dokument übertreffen, um diese Kosten zu rechtfertigen.

Alle Evaluierungen verwenden erschöpfende Rankings gegen alle 2.458.072 Chunks. Unterschiede zwischen Modellen spiegeln daher die Repräsentationen wider, nicht die Indexkonfiguration. Wir konzentrieren uns auf drei Schlüsselmetriken:

Document@K ist definiert als:

Document@K=1[rank⁡(d∗)≤K]\text{Document@K}=1[\operatorname{rank}(d^{*})\le K]

wobei d∗d^{*} das am höchsten bewertete Dokument in DqD_q ist.

Answer@K ist definiert als:

Answer@K=1[Aq∩CK(q)≠∅]\text{Answer@K}=1[A_q\cap C_K(q)\ne\varnothing]

wobei CK(q)C_K(q) für die obersten KK Chunks im gesamten Korpus und AqA_{q} für die Menge der akzeptierten Antwort-Chunks steht.

Evidence Recall@K wird innerhalb von d∗d^{*} wie folgt gemessen: Ordnen Sie die Sätze von d∗d^{*} nach Ähnlichkeit, entfernen Sie den am höchsten bewerteten Antwortsatz, und lassen Sie RK(q)R_K(q) die obersten KK sein, die verbleiben. Für Evidenzgruppen Gq={g1,…,gm}G_q=\{g_1,\ldots,g_m\} gilt Gruppe gjg_j als wiederhergestellt, wenn eine Alternative E∈gjE\in g_j die Bedingung E⊆RK(q)E\subseteq R_K(q) erfüllt, und

EvidenceRecall@K=1[rank⁡(d∗)≤10]⋅1m∑j=1m1[gj recovered].\text{EvidenceRecall@K}=1[\operatorname{rank}(d^{*})\le10]\cdot\frac{1}{m}\sum_{j=1}^{m}1[g_j\ \text{recovered}].

Document@K fragt, ob die Kontextualisierung es dem richtigen Dokument ermöglicht, Geschwister und Distraktoren zu schlagen, die sein Vokabular teilen.

Answer@K fragt, ob der Antwortsatz selbst zu den obersten Chunks gehört.

Evidence Recall@K fragt, wie viel von dem unterstützenden Kontext unter den Top-K-Chunks des korrekten Dokuments wiederhergestellt wird, nachdem der am höchsten bewertete Antwort-Chunk ausgeschlossen wurde. Das Entfernen der Antwort verhindert, dass der Evidenz-Rückruf das doppelt zählt, was Answer@K bereits misst, und belässt alle KK-Slots für den unterstützenden Kontext. Die Forderung, dass sich das Gold-Dokument unter den Top-10 der abgerufenen Dokumente befinden muss, bedeutet, dass kein Modell Evidenz-Credits für ein Dokument erhält, das es nicht zutage gefördert hätte. Wir berichten auch über All-Evidence@K, den Bruchteil der Abfragen, bei denen jede Gruppe wiederhergestellt wurde.

Zusammen schlüsseln diese Metriken die Herausforderungen auf, mit denen Modelle für kontextbezogene Einbettungen konfrontiert sind: das Finden des richtigen Dokuments, das Finden der richtigen Antwort und die Wiederherstellung des minimalen Kontexts, der zeigt, warum die Antwort korrekt ist.

Abbildung 3 veranschaulicht die Metriken anhand des Beispiels der Hausverwaltung.

Abbildung 3: Context-bench-Metriken, veranschaulicht anhand einer Mietvertragsabfrage. Document@K testet den Abruf des korrekten Dokuments; Answer@K testet den Abruf seines Antwort-Chunks; Evidence Recall@K misst die Wiederherstellung unterstützender Evidenzgruppen innerhalb des Zieldokuments. In diesem Beispiel erfordert die Verifizierung der Miete sowohl die Adresse als auch Evidenz zum Mietjahr. Der Evidenz-Rückruf schließt den obersten Antwort-Chunk aus und erfordert, dass das Zieldokument unter den Top 10 rangiert.

Evaluierungsergebnisse

Wir evaluieren unser Modell im Vergleich zu kontextbezogenen und nicht-kontextbezogenen Einbettungsmodellen an vier Fronten.

Unsere kontextbezogenen Baselines sind pplx-embed-context-v1-4B und voyage-context-4. Unsere nicht-kontextbezogenen Baselines sind voyage-4-large und NVIDIAs Nemotron-3-Embed-8B-BF16, die Chunks unabhängig kodieren. Der Baseline-Satz variiert je nach Experiment, wie in jeder Abbildung angegeben.

Wir beginnen mit context-bench, das direkt die Fähigkeiten testet, die diese Arbeit motivieren, und berichten dann über Ergebnisse auf ConTEB, dem standardmäßigen öffentlichen Benchmark für kontextbezogene Einbettungen. Um zu überprüfen, ob diese Gewinne nicht auf Kosten der allgemeinen Abrufqualität gehen, evaluieren wir auch domänenspezifische Dokument- und Chunk-Abruf-Benchmarks, die wir aus öffentlichen Datensätzen erstellt haben. Schließlich untersuchen wir zwei praktische Eigenschaften für die Bereitstellung: die Abrufqualität im Vergleich zu den Speicherkosten pro Vektor sowie die Sensitivität gegenüber der Chunk-Größe, die zum Zeitpunkt der Indizierung verwendet wird. Alle Evaluierungen kodieren Dokumente mit bis zu 32.768 Token in einem einzigen Durchlauf.

Context-bench

Wie in Abbildung 1 in der Einleitung gezeigt, führt unsere Vorschau bei Answer@K und Evidence Recall@K bei jedem gemeldeten Schwellenwert sowie bei All-Evidence@10. Bei K = 10 erreicht sie 45,5 % Antwort-Rückruf, 40,6 % Evidenz-Rückruf und 31,1 % All-Evidenz-Rückruf. Sie führt auch bei Document@1 und Document@10 und erreicht 15,2 % bzw. 61,6 %. Bei K = 10 übertrifft unsere Vorschau voyage-context-4 um 14,4 Prozentpunkte beim Antwort-Rückruf und 5,0 Punkte beim Evidenz-Rückruf.

ConTEB

Unser Vorschaudemodell erzielt den höchsten durchschnittlichen nDCG@10 unter den in Abbildung 4 auf ConTEB gezeigten Modellen. Es führt nicht bei jeder Aufgabe: pplx-context-v1-4B erzielt bei NarrativeQA höhere Werte, während Nemotron-3-8B bei COVID-QA am besten abschneidet. Wie die Hauptautoren auch im ConTEB-Papier betonten, enthält COVID-QA hauptsächlich Abfrage-Chunk-Paarungen, die stark extraktiv sind und mit einfachem oberflächlichem lexikalischem Matching zu technischen medizinischen Begriffen erfüllt werden können. Infolgedessen ist das Kontextverständnis für diese Aufgabe weniger nützlich, und nicht-kontextbezogene Modelle übertreffen typischerweise kontextbezogene.

Abbildung 4: Aufgabenbezogener nDCG@10 auf ConTEB in der Abfrage-zu-Chunk-Einstellung. Der Durchschnitt ist das ungewichtete Mittel über die acht Aufgaben hinweg.

Allgemeine Abrufqualität über Domänen hinweg

Über Benchmarks hinaus, die für kontextbezogene Einbettungen entwickelt wurden, bewerten wir die domänenspezifische Leistung unseres Modells.

Unsere Abfrage-zu-Chunk-Suite (Q2C) verwendet MTEB-Aufgaben wie LegalBench und FinanceBench neben zusätzlichen Abrufaufgaben, die wir aus öffentlichen Datensätzen kuratiert haben. Innerhalb jedes relevanten Dokuments wird ein Chunk als relevant gekennzeichnet, wenn er die exakte Antwortspanne enthält (sofern die Aufgabe eine solche bereitstellt), und ansonsten durch ein LLM, das seine Relevanz für die Abfrage beurteilt. Die Abfrage-zu-Dokument-Suite (Q2D) verwendet dieselben Aufgaben und bewertet, ob das relevante Dokument abgerufen wird.

Unser Modell erzielt den höchsten Durchschnittswert beim Chunk-Abruf in Abbildung 5 und führt in den juristischen, technischen und gesundheitsbezogenen Domänen. Es führt nicht in jeder Domäne: voyage-context-4 erzielt in den Bereichen Finanzen und mehrsprachiger Abruf höhere Werte, und Nemotron-3-8B schneidet beim Konversationsabruf am besten ab. Beim Dokumentenabruf in Abbildung 6 liegt unser Modell im Durchschnitt leicht unter voyage-context-4, während es in der technischen Domäne führt. Die pplx-context-v1-4B-Baseline schneidet in beiden Suiten im Durchschnitt schlechter ab, was damit übereinstimmt, dass sie nur auf dem ConTEB-Trainingsdatensatz trainiert wurde, was zeigt, dass eine an die Gold-Chunks eines Benchmarks gebundene Überwachung schlecht auf andere Domänen übertragbar ist.

Abbildung 5: Mittlerer nDCG@10 bei den Abfrage-zu-Chunk-Aufgaben (Q2C), gruppiert nach Domäne. Domänenbalken sind ungewichtete Mittelwerte der aufgabenbezogenen Werte in dieser Domäne; der Gesamtdurchschnitt ist ein ungewichtetes Mittel über alle angezeigten Aufgaben hinweg.
Abbildung 6: Mittlerer Abrufwert bei den Abfrage-zu-Dokument-Aufgaben (Q2D), gruppiert nach Domäne. Jeder Balken in einer Domäne ist das ungewichtete Mittel seiner aufgabenbezogenen Hauptwerte; der Gesamtdurchschnitt ist ein ungewichtetes Mittel über alle angezeigten Aufgaben hinweg.

Abrufqualität und Speicherkosten

Ein Modell für kontextbezogene Einbettungen erzeugt einen Vektor pro Chunk, sodass ein mit unserem Modell erstellter Index exakt so viele Vektoren enthält wie ein herkömmlicher Index auf Chunk-Ebene mit derselben Chunking-Strategie. Die Kontextualisierung ändert, was jeder Vektor kodiert, nicht wie viele Vektoren gespeichert werden. Der Speicherbedarf wird daher durch die Größe jedes Vektors bestimmt. Das Modell bietet zwei Möglichkeiten, diesen zu reduzieren: das Truncating der Einbettung von 2048 auf 1024 Dimensionen und das Quantisieren auf int8.

Abbildung 7 zeigt einen günstigen Kompromiss zwischen Abrufqualität und Vektorspeicher. Bei 1024 Dimensionen verbrauchen unsere int8-Einbettungen 1 KB pro Vektor, während sie den Chunk-Abrufwert von voyage-context-4 bei 2048 Dimensionen in float32 (das 8 KB pro Vektor verbraucht) leicht übertreffen. Eine Erhöhung unserer Einbettungsgröße auf 2048 Dimensionen steigert die Abrufqualität bei 2 KB pro Vektor weiter. Diese Speicherzahlen beziehen sich nur auf die Vektoren, nicht auf den Rest des Index.

Abbildung 7: Chunk-Abrufqualität (mittlerer nDCG@10) als Funktion des Speichers pro Vektor. Durchgezogene Linien kennzeichnen float32 und gestrichelte Linien int8; Labels geben die Einbettungsdimension an.

Sensitivität bezüglich der Chunk-Größe

Abbildung 8 zeigt nur eine bescheidene Änderung der Abrufqualität, wenn die Chunk-Größe von 64 auf 512 Token erhöht wird: Der Durchschnittswert sinkt von 81,0 % auf 79,9 %, ein Rückgang von 1,1 Prozentpunkten. Dies legt nahe, dass das Modell über die getesteten Chunk-Größen hinweg effektiv bleibt, was Indizierungspipelines Flexibilität bei der Aufteilung von Dokumenten gibt.

Abbildung 8: Chunk-Größen-Sensitivität unseres Modells. Jeder Punkt ist der ungewichtete Mittelwert nDCG@10 über 74 MTEB-Aufgaben hinweg, wobei Dokumente mit der angegebenen Chunk-Größe indiziert wurden.

Veröffentlichung

turbopuffer hält den gesamten Textbestand, die Abfragen und Kennzeichnungen von context-bench privat und berichtet die Ergebnisse für eingereichte Modelle. Ein öffentlicher Benchmark dieser Art lädt zu einem direkten Training anhand seiner Abfragen und Dokumente ein, was ihn allmählich sättigen und seinen Wert für die Verfolgung des Fortschritts im Laufe der Zeit schmälern würde. Wenn Sie möchten, dass Ihr Modell auf dem Benchmark evaluiert wird, kontaktieren Sie turbopuffer bitte unter contextbench@turbopuffer.com.

Eine Vorschau unseres Modells ist auf Hugging Face verfügbar, und alle Ergebnisse in diesem Beitrag werden für diese Vorschau berichtet. Wir arbeiten daran, das Modell über die Perplexity-API verfügbar zu machen sowie den Abruf über lange Dokumente in Zusammenarbeit mit turbopuffer weiter zu verbessern.

Zitieren

BibTeX
@online{perplexity2026ContextualEmbeddingBeyondTheGoldPassage,
  author = {{Perplexity} and Sarah Eslami and William Barber and Markus Krimmel and Antoine Chaffin and Bo Wang and Louis Milliken and Jarrod Bryan and Claire Beamer and Jeremy Yang},
  title = {{Contextual embedding beyond the gold passage}},
  date = {2026-09-30},
  url = {https://www.perplexity.ai/hub/blog/contextual-embedding-beyond-the-gold-passage}
}