Kontekstuel indlejring ud over guld-passagen

En ny træningsmetode, model og benchmark til hentning af svar og deres understøttende kontekst.

ForfatterePerplexity Research & turbopuffer

Introduktion

Kontekstuelle indlejringer indfanger betydningen af ​​hver passage eller enhed i konteksten af ​​hele dokumentet. Deres træning og evaluering antager typisk en enkelt relevant enhed pr. forespørgsel, kendt som "guld-passagen". En guld-passage er dog ofte ikke nok i praksis. Den kan indeholde svaret, men mangle den understøttende kontekst, der er nødvendig for at forstå eller verificere det, hvilket gør den tvetydig i isolation.

Vi introducerer pplx-embed-v2-context-9b-preview, vores nye kontekstuelle indlejringsmodel. Modellen er trænede med en ny tilgang, der bruger Perplexitys kontekstkomprimeringsmodel som lærer. Vi aggregerer dens forudsigelser på token-niveau til relevansscores på enhedsniveau, hvilket lærer indlejringsmodellen at hente både svarsenheder og understøttende kontekst i stedet for en enkelt guld-enhed. Modellen producerer én indlejring pr. enhed uden yderligere inferensomkostninger og understøtter 1024-dimensionelle og int8-indlejringer.

Den opnår state-of-the-art-resultater på context-bench, en ny benchmark for kontekstbevidst hentning oprettet og ejet privat af turbopuffer, og på ConTEB, en bredt anvendt offentlig benchmark. Vores model blev udviklet uafhængigt af context-bench og evalueret som en blind indsendelse.

Context-bench består af 2.099 forespørgsler over 38.894 lange dokumenter på 21 domæner og evaluerer tre evner for kontekstuelle indlejringer: dokumentadskillelse blandt næsten identiske dokumenter, hentning af guld-enheder, hvis betydning afhænger af fjern kontekst, og genkaldelse af de understøttende beviser, der kræves for at verificere et svar.

En forhåndsvisning af modellen er offentligt tilgængelig på Hugging Face. Benchmarken opbevares privat af turbopuffer for at reducere risikoen for træningskontamination og bevare dens værdi til måling af fremskridt. For at anmode om en evaluering bedes du kontakte turbopuffer på contextbench@turbopuffer.com.

Figur 1: Answer@K, Document@K, Evidence Recall@K og All-Evidence@10 på context-bench, der sammenligner Perplexity v2 preview 9B med Voyage Context 4, Voyage 4 Large og Perplexity context v1 4B.

Hvorfor kontekst betyder noget for hentning

Hentningssystemer opdeler typisk lange dokumenter i mindre enheder, der kan indekseres og søges i uafhængigt. Opdeling i enheder er praktisk i praksis, men den fjerner den kontekst, som hver enhed oprindeligt optrådte i, hvilket skaber et kompromis mellem informationskomprimeringens granularitet og den kontekst, der bruges under kodningen. En enhed kan henvise til en enhed, der blev introduceret tidligere, arve sin betydning fra en afsnitsoverskrift eller stole på definitioner, der findes andre steder i dokumentet. Når den først er udtrukket, indeholder den muligvis ikke længere nok information til at blive matchet pålideligt til en forespørgsel. Kodning af hele dokumentet som en enkelt vektor løser ikke dette, da én samlet repræsentation ikke trofast kan indfange alle facetter af et langt dokument.

Kontekstuelle indlejringsmodeller adresserer denne begrænsning ved at repræsentere hver enhed i konteksten af ​​sit omgivende indhold, oftest gennem sen enhedsdannelse (late chunking): dokumentet kodes i en enkelt gennemgang, og enhedsrepræsentationer samles bagefter, så hver enhedsvektor beregnes med hele dokumentet i sigte. Tidligere arbejde, såsom ConTEB og vores egen pplx-embed-context-v1, har vist, at kontekstualiserede enhedsrepræsentationer væsentligt forbedrer hentning over uafhængigt kodede enheder, især på lange dokumenter.

Grænserne for guld-enheds-overvågning

Træning af kontekstuelle indlejringsmodeller kræver overvågning, der identificerer, hvilke dele af et dokument der er relevante for en given forespørgsel. En almindelig tilgang er guld-enheds-anmærkninger: for hver forespørgsel identificerer en annotator, typisk en stor sprogmodel (LLM), den enhed i dokumentet, der besvarer den.

Træning kombinerer normalt to kontrastive tab: et kryds-dokument-tab, der kontrasterer guld-enheden med enheder fra andre dokumenter, og et internt dokument-tab, der kontrasterer den med de andre enheder i det samme dokument.

Denne tilgang har et par begrænsninger:

  1. Kun én enhed er relevant. Den behandler alle andre enheder i dokumentet som negative, herunder dem med nyttige understøttende oplysninger. Overvågning på dokumentniveau opererer i den anden yderlighed. Den identificerer dokumentet som relevant uden at specificere, hvilke enheder i det der betyder noget. I praksis ligger relevansen ofte et sted mellem disse yderligheder. Den svarskabende enhed kan afhænge af nogle få understøttende enheder, der introducerer en enhed, løser en reference eller leverer en supplerende kendsgerning, mens resten af ​​dokumentet er irrelevant. Modellen skal derfor lære det rigtige niveau af selektivitet: bredere end en enkelt guld-enhed, men mere fokuseret end dokumentet som helhet.
  2. Grov overvågning. Da hver anmærkning identificerer en enkelt guld-enhed i stedet for at indfange grader af relevans på tværs af dokumentet, giver den begrænsede træningssignaler i forhold til den mængde beregning, der er brugt på at producere den.
  3. Omkostningstung at skalere. Hvert træningspar kræver, at en LLM læser dokumentet og vælger den relevante enhed, så anmærkningsomkostningerne vokser lineært med størrelsen af ​​træningssættet og sætter en grænse for, hvor meget og hvor mangfoldige træningsdataene kan være.
  4. Følsom over for enhedsgrænser. Mærkaterne er også knyttet til de enhedsgrænser, der blev brugt under anmærkningen. En guld-mærkat tildelt et fast token-størrelsesvindue specificerer ikke, hvilke kortere sætninger eller længere afsnit der er relevante. Ændring af enhedsstrategien eller træning på tværs af flere enhedsmetoder for at forbedre robustheden over for, hvordan dokumenter opdeles på indekseringstidspunktet, kan derfor kræve, at korpuset mærkes igen.

En ny tilgang til kontekstuel læring

Vi adresserer begrænsningerne ved guld-enheds-overvågning ved at destillere relevansvurderinger fra en forespørgselsbevidst kontekstkomprimeringsmodel. Denne model fungerer som en lærer: den læser forespørgslen og dokumentet i fællesskab og tildeler hvert dokument-token en relevansscore. Dens forudsigelser giver adskillige fordele ved træning af kontekstuelle indlejringer:

  1. Fleksible enhedsgrænser. Relevansscores på token-niveau kan aggregeres over enhver valgt enhedsgrænse, hvilket gør det muligt for de samme lærerforudsigelser at overvåge forskellig enhedsdannelse uden gen-anmærkning.
  2. Kontinuerlig relevans. I modsætning til binære guld-enheds-mærkater giver læreren kontinuerlige scores, der indfanger grader af relevans, som naturligt skelner mellem svarskabende enheder, understøttende kontekst og irrelevant indhold.
  3. Lavere anmærkningsomkostninger. Læreren er kompakt og specialiseret i relevatsscoring, hvilket gør det langt billigere at overvåge i skala end en generisk LLM.

Vi træner vores model med en vægtet sum af et kontrastivt tab på dokumentniveau og et destillationstab på enhedsniveau over batches af forespørgsel-dokument-par. For hver forespørgsel fungerer det parrede dokument som det positive, mens de resterende dokumenter i samme batch fungerer som negative.

For hver batch vælger vi tilfældigt en enhedsstrategi, opdeler dokumenterne i overensstemmelse hermed og indsætter separatortokens mellem enheder. Vi behandler derefter hvert dokument i en enkelt fremadrettet gennemgang og tager gennemsnittet af tokenrepræsentationerne inden for hver enhed for at opnå kontekstuelle enhedsindlejringer. Forespørgsler kodes separat med gennemsnitsdannelse over deres tokenrepræsentationer. Endelig beregner vi cosinusligheden mellem hver forespørgselsindlejring og hver enhedsindlejring i batchen.

Tabfunktion

Kontrastivt tab på dokumentniveau

Selvom vores indlejringsmodel kun producerer ligheder på enhedsniveau, kan vi naturligt udlede ligheder på dokumentniveau fra dem. Vi betragter et dokument d for at være lige så relevant for en forespørgsel q som dets mest relevante enhed. Denne scoringsregel er inspireret af MaxSim-operationen fra ColBERT, anvendt her på enheder i stedet for tokens.

Specifikt, givet en forespørgsel q med indlejring q og et dokument d som en ordnet liste af enheder c med indlejringer c, definerer vi ligheden på dokumentniveau som:

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

Givet disse ligheder på dokumentniveau kan vi formulere et InfoNCE-objektiv på dokumentniveau over negative eksempler i batchen.

For en forespørgsel q, lad d⁺ betegne dens relevante dokument og 𝒟 dokumenterne i batchen. Det kontrastive tab er som følger, idet temperaturer udelades af hensyn til læsbarheden:

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))}

Destillationstab på enhedsniveau

Det kontrastive tab lærer modellen, hvilket dokument der er relevant for en forespørgsel. Destillationstabet lærer den, hvor relevansen ligger inden for det dokument, hvilket er afgørende for en kontekstuel model.

Under træningen sender vi hvert positivt forespørgsel-dokument-par til vores kontekstkomprimeringsmodel, som tildeler en relevansscore til hvert token i dokumentet. Som med scoring på dokumentniveau udleder vi hver enheds relevans fra dens mest relevante indhold. For at reducere følsomheden over for afvigende tokens, herunder dem ved enhedsgrænser, definerer vi relevans på enhedsniveau som gennemsnittet af de øverste n token-scores inden for enheden.

For hver forespørgsel anvender vi en temperatur-skaleret softmax på lærerens relevansscores på enhedsniveau inden for det positive dokument for at opnå en måldistribution. Enheder i de andre dokumenter i batchen modtager nul i målsandsynligheid. Vi træner indlejringsmodellen til at matche dette mål ved at minimere den fremadrettede KL-divergens mellem målet og dens forudsagte distribution over alle enheder i batchen:

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)}

Her angiver de hevet-skrevne T og S lærer og elev, og rⱼ er lærerens relevansscore for enhed cⱼ i det positive dokument d⁺. Lærerens måldistribution tildeler sandsynligheden nul til enheder i alle andre dokumenter i batchen.

I modsætning til en enkelt guld-enheds-mærkat indfanger dette mål grader af relevans. Understøttende enheder modtager vægt i henhold til lærerens scores i stedet for at blive behandlet som negative, hvilket lærer modellen at hente understøttende kontekst så vel som svaret.

Kombineret tab

Vores kombinerede træningsmål er en vægtet sum af det kontrastive tab på dokumentniveau og destillationstabet på enhedsniveau. Vi tager gennemsnittet af dette vægtede tab over batchen af forespørgsel-dokument-par.

Figur 2 illustrerer vores træningstilgang. Kontekstkompressoren fungerer kun som lærer under træningen. På inferenstidspunktet producerer indlejringsmodellen én kontekstuel indlejring pr. enhed uden yderligere komprimerings- eller omrangeringsfase. Tilgangen forbedrer, hvordan kontekstuelle indlejringer indlæres, uden at øge indekslagring eller tilføje lærermodel-latens på hentningstidspunktet.

Figur 2: Træningsopsætningen for vores model. Den kontekstuelle encoder (elev, venstre) behandler dokumenter, der hver består af flere enheder. Hver enhed indlejres i forhold til dens omgivende dokumentkontekst. Forespørgsel A er et kendt match for Dokument A og scores mod enheder fra alle dokumenter for at opnå forudsagte ligheder. Disse scores på enhedsniveau max-pooles til scores på dokumentniveau. Vi træner forudsigelser på enhedsniveau og forudsigelser på dokumentniveau til at matche måldistributioner (højre). Målet på enhedsniveau beregnes på træningstidspunktet som forudsigelsen af ​​kontekstkompressoren inden for det kendte relevante dokument og sættes til nul inden for de kendte irrelevante dokumenter. Måldistributionen på dokumentniveau indstilles til at være one-hot på det kendte relevante dokument.

Træningsdata

Træningsdataene består af ca. 430 offentlige og interne forespørgsels- og dokumentdatasæt, der dækker over 50 sprog.

Vi opretter interne pardatasæt ud fra PII-filtrerede produktionsdata og ved at syntetisere relevante forespørgsler over lange dokumenter. For hver fremadrettet gennemløb vælger vi ét datasæt og sampler en hel batch fra det for at øge sværhedsgraden af ​​negative eksempler i batchen og undgå genvejslæring. Ingen af vores træningsdatasæt bærer anmærkninger på enhedsniveau: al overvågning inden for dokumentet kommer fra komprimeringsmodellen, og der bruges ingen ConTEB-data til træning. Desuden var der ingen context-bench-data til rådighed under modeludviklingen.

Træningsopsætning

Modellen starter fra en intern, 9B-parameter ColBERT-hentningsmodel og producerer 2048-dimensionelle indlejringer gennem et lineært projektionslag. Vi markerer enhedsgrænser med et indlæst <|chunk_sep|>-token og danner hver enhedsindlejring ved at tage gennemsnittet af dens tokenindlejringer. Forespørgsler kodes af den samme model, hvor deres tokenindlejringer gennemsnitstermer til en enkelt vektor.

Vi bruger Matryoshka-træning til at understøtte både 1024- og 2048-dimensionelle indlejringer og kvantiseringsbevidst træning til at understøtte native int8-indlejringer. Under træningen øger vi gradvist læringsraten, holder den konstant og reducerer den derefter.

Den frigivne model er en modelsuppe, der tager gennemsnittet af vægtene fra flere checkpoints fra den samme træningskørsel.

En ny benchmark til hentning på enhedsniveau

Offentlige benchmarks for kontekstuel hentning såsom ConTEB deler antagelsen bag guld-enheds-overvågning: hver forespørgsel har en enkelt relevant enhed, og en model belønnes kun for at rangere den enhed først. De arver også dens begrænsninger.

For det første tester ConTEB hentning på opgaver, hvor en enhed er tvetydig uden dens omgivende kontekst. På disse opgaver klarede kontekstuelle modeller sig bedre end modeller, der koder hver enhed uafhængigt. Den spørger dog ikke, om en model også overfladebehandler de andre dele af dokumentet, der gør enheden forståelig.

For det andet tester den ikke systematisk, om det rigtige dokument kan findes, når næsten identiske dokumenter i det samme corpus kun adskiller sig i den kontekst, der omgiver en ellers identisk sætning.

Begge evner betyder noget, når en søgeagent eller bruger skal forstå og verificere et svar fra nogle få hentede sætninger i stedet for et hele dokument. Vi byggede derfor context-bench, en kontrolleret benchmark til hentning over lange dokumenter, designet til at skelne brugen af dokumentkontekst fra generel hentningskvalitet. Den tester, om kontekstuelle indlejringer bruger information fra andre steder i et dokument til at understøtte tre evner:

  1. Dokumentadskillelse: Identificer det korrekte dokument blandt næsten identiske alternativer.
  2. Svarsøgning: Hent svarskabende enheder, hvis betydning afhænger af detaljer andre steder i dokumentet.
  3. Bevissøgning: Hent understøttende enheder, der præciserer eller underbygger svaret.

Context-bench indeholder 2.099 forespørgsler og 38.894 dokumenter. Der bruges enheder af sætningslængde, hvilket resulterer i 2.458.072 enheder i alt. Forespørgslerne dækker 21 domæner, herunder virksomhedsindberetninger, klinisk forskning, rejser, underholdning, uddannelse, offentlige myndigheder, juridiske kontrakter og softwaredokumentation.

Hver forespørgsel er designet til at teste en af tolv kontekstuelle evner. De primære måldokumenter er med vilje lange: 1.061 af de 1.197 forskellige primære måldokumenter har mindst 200 sætninger med en medianlængde på ca. 6.100 tokens. Hver forespørgsel har præcist ét korrekt svar i korpuset. Hvor den samme kendsgerning angives mere end én gang i et guld-dokument, for eksempel i en opsummeringssætning og en tabelrække, accepteres alle disse sætninger som svar.

En svarsrute er én gyldig kombination af en svarsenhed og de understøttende beviser, der er nødvendige for at fortolke eller verificere den. På tværs af de 2.099 forespørgsler har det primære måldokuments svarsrute én bevisgruppe for 964 forespørgsler, to for 735, tre eller flere for 332 og ingen for 68. Alternative gyldige svarsruter kan kræve forskellige bevisgrupper.

Tabel 1: Benchmark-statistik.

Statistik

Værdi

Forespørgsler

2.099

Dokumenter

38.894

Sætningsenheder

2.458.072

Median længde af primært måldokument

6.100 tokens

Domæner

21

Bevisgrupper pr. forespørgsel (primær måldokuments svarsrute)

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

Tabel 2: Tolv kontekstuelle evner testet af context-bench med illustrative eksempler.

Evne

Eksempel på forespørgsel

Svarsenhed

Krævet dokumentkontekst

1. Enhedsidentitet

Hvor meget brugte Northlake på aktietilbagekøb?

Virksomheden tilbagekøbte aktier for 12,8 milliarder dollar.

Introduktionen identificerer Northlake som "virksomheden". En lignende rapport fra Southlake er ikke relevant.

2. Periode eller version

Hvilken patron passer til M40 revision B?

Installer KC-42-patronen.

Anvendelsesafsnittet siger, at disse instruktioner dækker revision B, ikke revision C.

3. Definitioner og aliasser

Hvilken frafaldsrate havde 15 mg-gruppen?

Zeta havde en frafaldsrate på 12,7 %.

Rapporten definerer Zeta som 15 mg-gruppen. Uden denne definition identificerer enheden ikke den ønskede gruppe.

4. Tabelstruktur

Hvad er Max-modellens batterikapacitet?

Typisk kapacitet: 4.250 | 4.700 | 5.150.

Tabelhovedet etablerer Mini | Base | Max, målt i mAh. Svaret er derfor 5.150 mAh.

5. Betingelser og undtagelser

Hvor lang er batteridækningen ved kommerciel brug?

Batteridækningen varer 18 måneder.

En afsnitsintroduktion begrænser denne dækning til kommercielle installationer; husholdningsinstallationer har en anden garanti.

6. Referencer og pronominer

Hvornår blev Mara viceborgmester?

Hun tiltrådte embedet i 2021.

Den foregående fortælling fastslår, at "hun" henviser til Mara, ikke Elin, som også omtales.

7. Listens rækkefølge og placering

Hvilken sang åbnede ekstranummeret?

14. Lantern Road.

En note andetsteds siger, at sange 14-16 udgjorde ekstranummeret. Spor 14 er derfor dens åbningssang.

8. Afsnittets omfang

Hvilket objektiver blev brugt til filmens billedside?

Et 35 mm fastobjektiv blev brugt igennem det hele.

Denne passage hører til "Hovedoptagelser", ikke det separate afsnit om PR-fotografier.

9. Talerattribuering

Hvilken genåbningsdato lovede borgmesteren?

Vi genåbner den 12. juni.

Udskriften identificerer borgmesteren som taleren. De samme ord fra en entreprenør ville ikke fastslå borgmesterens løfte.

10. Ændringer over tid

Hvilken opsigelsesvarsel galdt efter ændringen i maj?

Opsigelsesvarslet er nu 45 dage.

Ændringshistorikken fastslår, at denne ændring trådte i kraft i maj og erstattede den tidligere 30-dages regel.

11. Årsagssammenhænge

Hvorfor stoppede den vestlige pumpe?

Den fejl forårsagede nedlukningen.

Undersøgelsen identificerer "den fejl" som et fastklemt leje i den vestlige pumpe og adskiller det fra en urelateret indløbsforhindring.

12. Billedlig eller tværsproglig betydning

Billedlig:

Hvad symboliserer "vinterværelset" i digtet?

Tværsproglig:

Hvilken komponent beder den franske instruks teknikeren om at fjerne?

Billedlig:

Det repræsenterer eksil snarere end et fysisk værelse.

Tværsproglig:

Retirez le capot. (Fjern dækslet.)

Billedlig:

Kommentaren identificerer "det" som digtets tilbagevendende billede af "vinterværelset".

Tværsproglig:

Guidens ordliste specificerer, at "capot" betyder den beskyttende motorhjelm, ikke forsendelsesdækslet.

Dokumenter og forespørgsler

Forespørgslerne, dokumenterne og de evner, der testes, er inspireret af samtaler med turbopuffers kunder.

For at give et eksempel kan man overveje søgebehovene for en ejendomsadministration. Disse virksomheder har hundredvis, nogle gange tusindvis af lejekontrakter, der kun adskiller sig i lejernes navne, datoer og nogle få andre nøgledetaljer. En almindelig forespørgsel for det datasæt kunne være "hvornår udløber lejemålet på 5 Park Avenue, og hvad er den nuværende husleje?". Lejekontrakter kan også være lange, og de kritiske adskillende komponenter, der ville bekræfte, at du har hentet det rigtige dokument (som dato, adresse, lejelernavn osv.), kan ofte være meget langt væk fra nøglesvarsætningen, der indeholder beløbet for den månedlige husleje. I praksis kan identiske sætninger som "Månedlig husleje er X.XXX kr." forekomme på tværs af mange dokumenter i korpuset.

En god kontekstuel indlejringsmodel bør bruge kontekst på tværs af dokumentet til at identificere det korrekte dokument og hente både svaret og dets understøttende sætninger. Dette gør det muligt for en bruger eller søgeagent hurtigt at verificere svaret og bekræfte, at det kommer fra det rigtige dokument.

Svar- og bevismærkater

For hver forespørgsel mærker vi "svar"- og "bevis"-sætninger i måldokumentet. En model består vores "læser-tilstrakkeligheds"-test, hvis den henter en svarsætning sammen med mindst én sætning fra hver bevisgruppe. Tilsammen giver disse sætninger tilstrækkelig kontekst til, at en læser kan verificere svaret med understøttende beviser.

Når kontekstuelle indlejringsmodeller gør dette godt, kan de drastisk reducere antallet af tokens, som søgeagenter skal gennemgå, samt gøre det meget nemmere for en person hurtigt at bekræfte, at de har fundet det korrekte svar på deres oprindelige forespørgsel uden at skulle læse hele dokumentet.

Enhver bevisgruppe skal genvindes, men ethvert af en gruppes alternativer er nok til at genvinde den. Det er almindeligt at se den samme kendsgerning angivet flere steder på tværs af disse lange dokumenter. Hentning af blot én sætning fra hver bevisgruppe opfylder kriterierne for læsertilstrakkelighed og vil som sådan blive accepteret som perfekt bevisgenkaldelse.

Metrikker

Hvert dokument opdeles i enheder i form af sætninger, og de samme grænser bruges for alle modeller. To betingelser testes for ikke-kontekstuelle indlejringsmodeller: én hvor hver sætning indlejres uafhængigt, og en anden hvor hele dokumentet indlejres som en enkelt enhed.

Vi bruger sætningsniveau-betingelsen til at måle svarsgenkaldelse og bevisgenkaldelse. Den tester, om en ikke-kontekstuel model kan identificere det korrekte svar og understøttende beviser, når hver sætning indlejres uden adgang til det omgivende dokument. Dette er med vilje udfordrende. I mange forespørgsler mangler svarsætningen alene de detaljer, der skal til for at skelne den fra lignende sætninger andre steder i korpuset.

Vi bruger dokumentniveau-betingelsen som en baseline for dokumentgenkaldelse. Den tester, om finkornede sætningsindlejringer giver tilstrækkelig hentningsfordel til at retfærdiggøre deres ekstra lagringsomkostninger i forhold til at lagre én vektor pr. dokument. Et indeks på sætningsniveau skaber væsentligt flere vektorer end et indeks på dokumentniveau, så det bør præstere bedre end baseline med én vektor pr. dokument for at retfærdiggøre disse omkostninger.

Alle evalueringer bruger udtømmende ranglister mod alle 2.458.072 enheder. Forskelle mellem modeller afspejler derfor repræsentationerne, ikke indekskonfigurationen. Vi fokuserer på tre nøgemetrikker:

Document@K er defineret som:

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

hvor d∗d^{*} er det højest rangerede dokument i DqD_q.

Answer@K er defineret som:

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

hvor CK(q)C_K(q) er de øverste KK enheder over hele korpuset, og AqA_{q} er sættet af accepterede svarsenheder.

Evidence Recall@K måles inden for d∗d^{*} som følger: Ranger sætningerne i d∗d^{*} efter lighed, fjern den højest rangerede svarsætning, og lad RK(q)R_K(q) være de øverste KK, der er tilbage. For bevisgrupper Gq={g1,…,gm}G_q=\{g_1,\ldots,g_m\} genvindes gruppe gjg_j, hvis et alternativ E∈gjE\in g_j opfylder E⊆RK(q)E\subseteq R_K(q), og

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 spørger, om kontekstualisering gør det muligt for det rigtige dokument at slå søskende og distraherende elementer, der deler dets ordforråd.

Answer@K spørger, om selve svarsætningen rangerer blandt de øverste enheder.

Evidence Recall@K måler, hvor meget af den understøttende kontekst der genfindes blandt det korrekte dokuments top K-chunks, efter at den højst rangerede svar-chunk er udeladt. Ved at fjerne svaret undgår man, at evidence recall tæller dobbelt på det, som Answer@K allerede måler, og det efterlader alle KK-pladser til understøttende kontekst. Når det kræves, at guld-dokumentet er blandt de 10 øverste hentede dokumenter, betyder det, at ingen model får evidence-kredit for et dokument, den ikke ville have fremhævet. Vi rapporterer også All-Evidence@K, andelen af forespørgsler, hvor hver gruppe er genfundet.

Tilsammen nedbryder disse metrikker de udfordringer, som kontekstuelle indlejringsmodeller står over for: find det rigtige dokument, find det rigtige svar, og genfind den minimale kontekst, der viser, hvorfor svaret er korrekt.

Figur 3 illustrerer metrikkerne med eksemplet med ejendomsadministration.

Figur 3: Context-bench-metrikker illustreret med en lejeforespørgsel. Document@K tester hentning af det korrekte dokument; Answer@K tester hentning af dens svarsenhed; Evidence Recall@K måler genvinding af understøttende bevisgrupper inden for måldokumentet. I dette eksempel kræver verifikation af huslejen både adresse- og lejeårsbevis. Bevisgenkaldelse udelukker den øverste svarsenhed og kræver, at måldokumentet rangerer i top 10.

Evalueringsresultater

Vi evaluerer vores model op imod kontekstuelle og ikke-kontekstuelle indlejringsmodeller på fire fronter.

Vores kontekstuelle baselines er pplx-embed-context-v1-4B og voyage-context-4. Vores ikke-kontekstuelle baselines er voyage-4-large og NVIDIAs Nemotron-3-Embed-8B-BF16, som koder enheder uafhængigt. Baseline-sættet varierer fra eksperiment til eksperiment, som angivet i hver figur.

Vi starter med context-bench, som direkte tester de evner, der motiverer dette arbejde, og rapporterer derefter resultater på ConTEB, den standardiserede offentlige benchmark for kontekstuelle indlejringer. For at kontrollere, at disse gevinster ikke sker på bekostning af generel hentningskvalitet, evaluerer vi også domænespecifikke dokument- og enhedshentningsbenchmarks, som vi har bygget ud fra offentlige datasæt. Endelig undersøger vi to praktiske egenskaber for udrulning: hentningskvalitet versus lagringsomkostninger pr. vektor og følsomhed over for enhedsstørrelsen, der bruges på indekseringstidspunktet. Alle evalueringer koder dokumenter på op til 32.768 tokens i én enkelt gennemgang.

Context-bench

Som vist i Figur 1 i introduktionen fører vores forhåndsvisning an på Answer@K og Evidence Recall@K ved hver rapporteret afskæring samt All-Evidence@10. Ved K = 10 opnår den 45,5 % svarsgenkaldelse, 40,6 % bevisgenkaldelse og 31,1 % genkaldelse af alle beviser. Den fører også an på Document@1 og Document@10 og når henholdsvis 15,2 % og 61,6 %. Ved K = 10 overgår vores forhåndsvisning voyage-context-4 med 14,5 procentpoint i svarsgenkaldelse og 5,0 point i bevisgenkaldelse.

ConTEB

Vores forhåndsvisningsmodel opnår det højeste gennemsnitlige nDCG@10 blandt de modeller, der vises på ConTEB i Figur 4. Den fører ikke an i alle opgaver: pplx-context-v1-4B scorer højere på NarrativeQA, mens Nemotron-3-8B scorer højest på COVID-QA. Som de vigtigste forfattere også påpegede i ConTEB-papiret, indeholder COVID-QA primært forespørgsels-enheds-parringer, som er meget ekstraktive og kan tilfredsstilles med simpel overflade-leksikalsk matchning på tekniske medicinske termer. Som et resultat er kontekstforståelse mindre nyttig til denne opgave, og ikke-kontekstuelle modeller klarer sig typisk bedre end kontekstuelle.

Figur 4: Opgaveniveau nDCG@10 på ConTEB i opsætningen fra forespørgsel til enhed. Gennemsnittet er det uvægtede gennemsnit på tværs af de otte opgaver.

Generel hentningskvalitet på tværs af domæner

Ud over benchmarks designet til kontekstuelle indlejringer vurderer vi vores models domænespecifikke ydeevne.

Vores forespørgsel-til-enhed-suite (Q2C) bruger MTEB-opgaver såsom LegalBench og FinanceBench sammen med yderligere hentningsopgaver, som vi har kurateret fra offentlige datasæt. Inden for hvert relevant dokument mærkes en enhed som relevant, hvis den indeholder det nøjagtige svarsinterval, når opgaven leverer et, og ellers af en LLM, der vurderer dens relevans for forespørgslen. Forespørgsel-til-dokument-suiten (Q2D) bruger de samme opgaver og scorer, om det relevante dokument hentes.

Vores model opnår den højeste gennemsnitlige score på enhedshentning i Figur 5 og fører an inden for det juridiske, tekniske og sundhedsmæssige domæne. Den fører ikke an i alle domæner: voyage-context-4 scorer højere inden for finans og flersproget hentning, og Nemotron-3-8B scorer højest inden for samtalehentning. På dokumenthentning i Figur 6 scorer vores model lidt under voyage-context-4 i gennemsnit, mens den fører an i det tekniske domæne. Pplx-context-v1-4B-baseline scorer lavere i gennemsnit i begge suites, hvilket er i overensstemmelse med, at den kun er blevet trænede på ConTEB-træningssættet, hvilket viser, at overvågning knyttet til én benchmarks guld-enheder overføres dårligt til andre domæner.

Figur 5: Gennemsnitlig nDCG@10 på forespørgsel-til-enhed-opgaverne (Q2C), grupperet efter domæne. Domænesøjler er uvægtede gennemsnit af opgaveniveau-scores i det pågældende domæne; det samlede gennemsnit er et uvægtet gennemsnit på tværs af alle viste opgaver.
Figur 6: Gennemsnitlig hentningsscore på forespørgsel-til-dokument-opgaverne (Q2D), grupperet efter domæne. Hver søjle i et domæne er det uvægtede gennemsnit af dens hovedscores på opgaveniveau; det samlede gennemsnit er et uvægtet gennemsnit på tværs af alle viste opgaver.

Hentningskvalitet og lagringsomkostninger

En kontekstuel indlejringsmodel producerer én vektor pr. enhed, så et indeks bygget med vores model indeholder præcist lige så mange vektorer som et konventionelt indeks på enhedsniveau med den samme enhedsstrategi. Kontekstualisering ændrer, hvad hver vektor koder, ikke hvor mange vektorer der lagres. Lagringsaftrykket styres derfor af størrelsen af ​​hver vektor. Modellen tilbyder to måder at reducere det på: at afkorte indlejringen fra 2048 til 1024 dimensioner og kvantisere den til int8.

Figur 7 viser en gunstig afvejning mellem hentningskvalitet og vektorlagring. Ved 1024 dimensioner bruger vores int8-indlejringer 1 KB pr. vektor, mens de en smule overgår enhedshentningsscoren for voyage-context-4 ved 2048 dimensioner i float32, som bruger 8 KB pr. vektor. En forøgelse af vores indlejringsstørrelse til 2048 dimensioner øger hentningskvaliteten yderligere ved 2 KB pr. vektor. Disse lagringstal refererer kun til vektorerne, ikke resten af ​​indekset.

Figur 7: Enhedshentningskvalitet (gennemsnitlig nDCG@10) som en funktion af lagring pr. vektor. Fyldte linjer betegner float32, og stiplede linjer betegner int8; mærkater angiver indlejringsdimensionen.

Følsomhed over for enhedsstørrelse

Figur 8 viser kun en beskeden ændring i hentningskvalitet, når enhedsstørrelsen øges fra 64 til 512 tokens: den gennemsnitlige score falder fra 81,0 % til 79,9 %, et fald på 1,1 procentpoint. Dette tyder på, at modellen forbliver effektiv på tværs af de testede enhedsstørrelser, hvilket giver indekseringspipelines fleksibilitet i, hvordan dokumenter opdeles.

Figur 8: Vores models følsomhed over for enhedsstørrelse. Hvert punkt er det uvægtede gennemsnitlige nDCG@10 på tværs af 74 MTEB-opgaver, med dokumenter indekseret ved den givne enhedsstørrelse.

Udgivelse

turbopuffer beholder hele korpuset, forespørgsler og mærkater fra context-bench private og rapporterer resultater for indsendte modeller. En offentlig benchmark af denne type indbyder til direkte træning på dens forespørgsler og dokumenter, hvilket gradvist ville mætte den og udvande dens værdi til at spore fremskridt over tid. Hvis du ønsker, at din model skal evalueres på benchmarken, bedes du kontakte turbopuffer på contextbench@turbopuffer.com.

En forhåndsvisning af vores model er tilgængelig på Hugging Face, og alle resultater i dette indlæg rapporteres for denne forhåndsvisning. Vi arbejder på at gøre modellen tilgængelig via Perplexity API og på yderligere at forbedre hentning over lange dokumenter sammen med turbopuffer.

Citation

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}
}