Kontextové vloženie za hranicami ideálnej pasáže

Nový trénovací prístup, model a benchmark na získavanie odpovedí a ich podporného kontextu.

AutoriPerplexity Research & turbopuffer

Úvod

Kontextové vloženia zachytávajú význam každej pasáže alebo fragmentu v kontexte celého dokumentu. Ich trénovanie a vyhodnocovanie zvyčajne predpokladá jeden relevantný fragment na dopyt, známy ako „ideálna pasáž“. Ideálna pasáž však v praxi často nestačí. Môže obsahovať odpoveď, ale chýba jej podporný kontext potrebný na jej pochopenie alebo overenie, takže v izolácii zostáva nejednoznačná.

Predstavujeme pplx-embed-v2-context-9b-preview, náš nový model kontextového vloženia. Model je trénovaný novým prístupom, ktorý využíva model kompresie kontextu od spoločnosti Perplexity ako učiteľa. Jeho predikcie na úrovni tokenov agregujeme do skóre relevantnosti na úrovni fragmentov, čím model vloženia učí získavať fragmenty odpovedí aj podporný kontext namiesto jediného ideálneho fragmentu. Model produkuje jedno vloženie na fragment bez dodatočných nákladov na inferenciu a podporuje 1024-dimenzionálne a int8 vloženia.

Dosahuje špičkové výsledky v context-bench, novom benchmarku pre kontextovo uvedomelé vyhľadávanie vytvorenom a súkromne spravovanom spoločnosťou turbopuffer, a v ConTEB, široko používanom verejnom benchmarku. Náš model bol vyvinutý nezávisle od context-bench a vyhodnotený ako slepé odovzdanie.

Context-bench sa skladá z 2 099 dopytov pre 38 894 dlhých dokumentov v 21 doménach a vyhodnocuje tri schopnosti kontextových vložení: rozlišovanie dokumentov medzi takmer duplicitnými dokumentmi, vyhľadávanie ideálnych fragmentov, ktorých význam závisí od vzdialeného kontextu, a získavanie podporných dôkazov potrebných na overenie odpovede.

Ukážka modelu je verejne dostupná na Hugging Face. Benchmark je vedený spoločnosťou turbopuffer súkromne, aby sa znížilo riziko kontaminácie trénovania a zachovala sa jeho hodnota na meranie pokroku. Ak chcete požiadať o vyhodnotenie, kontaktujte spoločnosť turbopuffer na adrese contextbench@turbopuffer.com.

Obrázok 1: Metriky Answer@K, Document@K, Evidence Recall@K a All-Evidence@10 v benchmarku context-bench porovnávajúce model Perplexity v2 preview 9B s modelmi Voyage Context 4, Voyage 4 Large a Perplexity context v1 4B.

Prečo je kontext dôležitý pre vyhľadávanie

Vyhľadávacie systémy zvyčajne delia dlhé dokumenty na menšie fragmenty, ktoré možno indexovať a prehľadávať nezávisle. Delenie na fragmenty je v praxi pohodlné, ale odstraňuje kontext, v ktorom sa každý fragment pôvodne objavil, čím vzniká kompromis medzi granularitou kompresie informácií a kontextom použitým počas kódovania. Fragment môže odkazovať na skôr predstavený subjekt, dediť svoj význam z nadpisu časti alebo sa spoliehať na definície umiestnené inde v dokumente. Po extrakcii už nemusí obsahovať dostatok informácií na to, aby ho bolo možné spoľahlivo priradiť k dopytu. Kódovanie celého dokumentu ako jedného vektora to nevyrieši, pretože jedna spriemerovaná reprezentácia nedokáže verne zachytiť každý aspekt dlhého dokumentu.

Modely kontextových vložení riešia toto obmedzenie reprezentáciou každého fragmentu v kontexte jeho okolitého obsahu, najčastejšie prostredníctvom neskorého delenia na fragmenty („late chunking“): dokument je kódovaný v jedinom prechode a reprezentácie fragmentov sú následne spriemerované, takže každý vektor fragmentu sa vypočítava so zreteľom na celý dokument. Predchádzajúca práca, ako napríklad ConTEB a naše vlastné pplx-embed-context-v1, ukázala, že kontextualizované reprezentácie fragmentov podstatne zlepšujú vyhľadávanie oproti nezávisle kódovaným fragmentom, najmä pri dlhých dokumentoch.

Obmedzenia dohľadu nad ideálnymi fragmentmi

Trénovanie modelov kontextových vložení si vyžaduje dohľad, ktorý identifikuje, ktoré časti dokumentu sú relevantné pre daný dopyt. Bežným prístupom sú anotácie ideálnych fragmentov: pre každý dopyt anontátor, zvyčajne veľký jazykový model (LLM), identifikuje fragment dokumentu, ktorý naň odpovedá.

Trénovanie zvyčajne kombinuje dve kontrastívne straty: stratu kontrastu medzi dokumentmi, ktorá porovnáva ideálny fragment s fragmentmi z iných dokumentov, a stratu kontrastu v rámci dokumentu, ktorá ho porovnáva s ostatnými fragmentmi v rovnakom dokumente.

Tento prístup má niekoľko obmedzení:

  1. Relevantný je iba jeden fragment. Každý ďalší fragment v dokumente považuje za negatívny vrátane tých, ktoré obsahujú užitočné podporné informácie. Dohľad na úrovni dokumentu funguje v opačnom extréme. Identifikuje dokument ako relevantný bez toho, aby špecifikoval, ktoré fragmenty v ňom sú dôležité. V praxi je relevantnosť často niekde medzi týmito extrémami. Fragment obsahujúci odpoveď môže závisieť od niekoľkých podporných fragmentov, ktoré uvádzajú subjekt, riešia odkaz alebo poskytujú doplňujúci fakt, zatiaľ čo zvyšok dokumentu je irelevantný. Model sa preto musí naučiť správnu úroveň selektivity: širšiu než jeden ideálny fragment, ale cielenejšiu než dokument ako celok.
  2. Hrubý dohľad. Keďže každá anotácia identifikuje jediný ideálny fragment namiesto zachytenia stupňov relevantnosti v celom dokumente, poskytuje obmedzené trénovacie signály vzhľadom na množstvo výpočtového výkonu vynaloženého na jeho vytvorenie.
  3. Nákladná škálovateľnosť. Každý trénovací pár vyžaduje, aby model LLM prečítal dokument a vybral relevantný fragment, takže náklady na anotácie rastú lineárne s veľkosťou trénovacej množiny a obmedzujú to, aké veľké a rozmanité môžu byť trénovacie dáta.
  4. Citlivosť na hranice fragmentov. Štítky sú taktiež viazané na hranice fragmentov použité počas anotácie. Ideálny štítok priradený oknu s pevnou veľkosťou tokenov nešpecifikuje, ktoré kratšie vety alebo dlhšie odstavce sú relevantné. Zmena stratégie delenia na fragmenty alebo trénovanie s viacerými deleniami na fragmenty s cieľom zlepšiť odolnosť voči spôsobu rozdelenia dokumentov v čase indexovania môže preto vyžadovať opätovnú anotáciu korpusu.

Nový prístup ku kontextovému učeniu

Obmedzenia dohľadu nad ideálnymi fragmentmi riešim získavaním úsudkov o relevantnosti z modelu kompresie kontextu s vedomím dopytu. Tento model slúži ako učiteľ: spoločne číta dopyt a dokument a každému tokenu dokumentu priraďuje skóre relevantnosti. Jeho predikcie ponúkajú niekoľko výhod na trénovanie kontextových vložení:

  1. Flexibilné hranice fragmentov. Skóre relevantnosti na úrovni tokenov možno agregovať nad ľubovoľnými zvolenými hranicami fragmentov, čo umožňuje, aby tie isté predikcie učiteľa dohliadali na rôzne delenie na fragmenty bez opätovnej anotácie.
  2. Kontinuálna relevantnosť. Na rozdiel od binárnych štítkov ideálnych fragmentov poskytuje učiteľ kontinuálne skóre, ktoré zachytáva stupne relevantnosti prirodzene odlišujúce fragmenty obsahujúce odpoveď, podporný kontext a irelevantný obsah.
  3. Nižšie náklady na anotácie. Učiteľ je kompaktný a špecializovaný na bodovanie relevantnosti, vďaka čomu je jeho dohľad vo veľkom meradle omnoho lacnejší než v prípade všeobecného modelu LLM.

Náš model trénujeme pomocou váženého súčtu straty kontrastu na úrovni dokumentu a straty destilácie na úrovni fragmentu nad dávkami párov dopyt-dokument. Pre každý dopyt slúži spárovaný dokument ako pozitívny, zatiaľ čo zvyšné dokumenty v tej istej dávke slúžia ako negatívne.

Pre každú dávku náhodne vyberieme stratégiu delenia na fragmenty, podľa toho dokumenty rozdelíme a medzi fragmenty vložíme oddeľovacie tokeny. Potom spracujeme každý dokument v jedinom prechode doprednej fázy a vykonáme priemerovanie reprezentácií tokenov v rámci každého fragmentu, čím získame kontextové vloženia fragmentov. Dopyty sú kódované samostatne so spriemerovaním ich tokenových reprezentácií. Na záver vypočítame kosínovú podobnosť medzi každým vložením dopytu a každým vložením fragmentu v dávke.

Funkcia straty

Strata kontrastu na úrovni dokumentu

Zatiaľ čo náš model vloženia produkuje iba podobnosti na úrovni fragmentov, môžeme z nich prirodzene odvodiť podobnosti na úrovni dokumentu. Považujeme dokument d za rovnako relevantný pre dopyt q ako jeho najrelevantnejší fragment. Toto pravidlo bodovania je inšpirované operáciou MaxSim modelu ColBERT, ktorá sa tu uplatňuje na fragmenty namiesto tokenov.

Konkrétne, vzhľadom na dopyt q s vložením q a dokument d ako usporiadaný zoznam fragmentov c s vloženiami c, definujeme podobnosť na úrovni dokumentu ako:

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

Vzhľadom na tieto podobnosti na úrovni dokumentu môžeme formulovať cieľ InfoNCE na úrovni dokumentu nad negatívmi v rámci dávky.

Pre dopyt q nech d⁺ označuje jeho relevantný dokument a 𝒟 dokumenty v dávke. Kontrastná strata je nasledovná, pričom pre lepšiu čitateľnosť vynechávame teploty:

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

Strata destilácie na úrovni fragmentu

Kontrastná strata učí model, ktorý dokument je relevantný pre dopyt. Strata destilácie ho učí, kde v danom dokumente leží relevantnosť, čo je pre kontextový model nevyhnutné.

Počas trénovania odovzdávame každý pozitívny pár dopytu a dokumentu do nášho modelu kompresie kontextu, ktorý priraďuje skóre relevantnosti každému tokenu v dokumente. Podobne ako pri bodovaní na úrovni dokumentu odvodzujeme relevantnosť každého fragmentu z jeho najrelevantnejšieho obsahu. S cieľom znížiť citlivosť na odľahlé tokeny vrátane tých na hraniciach fragmentov definujeme relevantnosť na úrovni fragmentu ako priemer horných n skóre tokenov v rámci fragmentu.

Pre každý dopyt aplikujeme softmax škálovaný teplotou na skóre relevantnosti na úrovni fragmentov od učiteľa v rámci pozitívneho dokumentu, čím získame cieľovú distribúciu. Fragmenty v ostatných dokumentoch v dávke získavajú nulovú cieľovú pravdepodobnosť. Model vloženia trénujeme tak, aby sa zhodoval s týmto cieľom minimalizáciou doprednej Kullbackovej-Leiblerovej divergencie medzi cieľom a jeho predikovanou distribúciou pre všetky fragmenty v dávke:

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

Horné indexy T a S tu označujú učiteľa a študenta a rⱼ je skóre relevantnosti od učiteľa pre fragment cⱼ v pozitívnom dokumente d⁺. Cieľová distribúcia učiteľa priraďuje nulovú pravdepodobnosť fragmentom vo všetkých ostatných dokumentoch v dávke.

Na rozdiel od jediného štítku ideálneho fragmentu tento cieľ zachytáva stupne relevantnosti. Podporné fragmenty získavajú váhu podľa skóre učiteľa namiesto toho, aby sa s nimi zaobchádzalo ako s negatívnymi, čo model učí získavať podporný kontext spolu s odpoveďou.

Kombinovaná strata

Náš kombinovaný trénovací cieľ je váženým súčtom straty kontrastu na úrovni dokumentu a straty destilácie na úrovni fragmentu. Túto váženú stratu spriemerúvame over dávkou párov dopyt–dokument.

Obrázok 2 ilustruje náš trénovací prístup. Kompresor kontextu slúži ako učiteľ iba počas trénovania. V čase inferencie model vloženia produkuje jedno kontextové vloženie na fragment bez dodatočného štádia kompresie alebo preusporiadania. Tento prístup zlepšuje spôsob, akým sa kontextové vloženia uvidia, bez zväčšenia úložiska indexu alebo pridania latencie modelu učiteľa v čase vyhľadávania.

Obrázok 2: Trénovacie nastavenie nášho modelu. Kontextový kódovač (študent, vľavo) spracováva dokumenty, pričom každý pozostáva z viacerých fragmentov. Každý fragment je vložený vzhľadom na kontext okolitého dokumentu. Dopyt A je známa zhoda pre dokument A a boduje sa oproti fragmentom všetkých dokumentov, aby sa získali predikované podobnosti. Tieto skóre na úrovni fragmentov sú max-spriemerované na skóre na úrovni dokumentu. Trénujeme predikcie na úrovni fragmentov a predikcie na úrovni dokumentu tak, aby sa zhodovali s cieľovými distribúciami (vpravo). Cieľ na úrovni fragmentu sa vypočítava v čase trénovania ako predikcia kompresora kontextu v rámci známeho relevantného dokumentu a v rámci známych irelevantných dokumentov sa nastavuje na nulu. Cieľová distribúcia na úrovni dokumentu je nastavená tak, aby bola typu one-hot pre známy relevantný dokument.

Trénovacie dáta

Trénovacie dáta pozostávajú približne zo 430 verejných a interných dátových súborov dopytov a dokumentov, ktoré pokrývajú viac ako 50 jazykov.

Interné párové dátové súbory konštruujeme z produkčných údajov filtrovaných na prítomnosť osobných údajov (PII) a zo syntetizovania relevantných dopytov nad dlhými dokumentmi. Pre každý prechod doprednej fázy vyberieme jeden dátový súbor a odoberieme z neho celú dávku, aby sme zvýšili obťažnosť negatívov v rámci dávky a zabránili skratovému učeniu. Žiadne z našich trénovacích dátových súborov neobsahujú anotácie na úrovni fragmentov: všetok dohľad v rámci dokumentu pochádza z modelov kompresie a na trénovanie sa nepoužívajú žiadne dáta zo súboru ConTEB. Okrem toho počas vývoja modelu neboli k dispozícii žiadne dáta z benchmarku context-bench.

Trénovacie nastavenie

Model vychádza z interného modelu vyhľadávania ColBERT s 9 miliardami parametrov a vytvára 2048-dimenzionálne vloženia prostredníctvom vrstvy lineárnej projekcie. Hranice fragmentov označujeme naučeným tokenom <|chunk_sep|> a každé vloženie fragmentu tvoríme spriemerovaním jeho tokenových vložení. Dopyty sú kódované rovnakým modelom, pričom ich tokenové vloženia sú spriemerované do jediného vektora.

Používame trénovanie Matryoshka na podporu 1024- aj 2048-dimenzionálnych vložení a trénovanie zohľadňujúce kvantizáciu na podporu natívnych int8 vložení. Počas trénovania postupne zvyšujeme mieru učenia, udržiavame ju konštantnú a potom ju znižujeme.

Vydaný model je modelová zmes („model soup“), ktorá spriemerúva váhy niekoľkých kontrolných bodov z toho istého trénovacieho behu.

Nový benchmark pre vyhľadávanie na úrovni fragmentov

Verejné benchmarky kontextového vyhľadávania, ako je ConTEB, zdieľajú predpoklad, na ktorom stojí dohľad nad ideálnymi fragmentmi: každý dopyt má jeden relevantný fragment a model je odmenený iba za umiestnenie tohto fragmentu na prvé miesto. Taktiež dedia jeho obmedzenia.

Po prvé, ConTEB testuje vyhľadávanie pri úlohách, kde je fragment nejednoznačný bez okolitého kontextu. Pri týchto úlohách kontextové modely prekonali modely, ktoré kódujú každý fragment nezávisle. Nezisťuje však, či model vynáša na povrch aj ostatné časti dokumentu, vďaka ktorým je fragment zrozumiteľný.

Po druhé, systematicky netestuje, či možno nájsť správny dokument, keď sa takmer identické dokumenty v rovnakom korpuse líšia iba kontextom obklopujúcim inak identickú vetu.

Oba aspekty sú dôležité, keď vyhľadávací agent alebo používateľ musí porozumieť odpovedi z niekoľkých získaných viet a overiť ju namiesto celého dokumentu. Preto sme vytvorili context-bench, kontrolovaný benchmark na vyhľadávanie v dlhých dokumentoch, navrhnutý tak, aby odlišoval využitie kontextu dokumentu od celkovej kvality vyhľadávania. Testuje, či kontextové vloženia využívajú informácie z iných častí dokumentu na podporu troch schopností:

  1. Rozlišovanie dokumentov: Identifikácia správneho dokumentu medzi takmer identickými alternatívami.
  2. Vyhľadávanie odpovedí: Vyhľadanie fragmentov obsahujúcich odpoveď, ktorých význam závisí od podrobností inde v dokumente.
  3. Získavanie dôkazov: Získanie podporných fragmentov, ktoré objasňujú alebo potvrdzujú odpoveď.

Context-bench obsahuje 2 099 dopytov a 38 894 dokumentov. Používajú sa fragmenty vo veľkosti vety, čo vedie k celkovému počtu 2 458 072 fragmentov. Dopyty pokrývajú 21 domén vrátane firemných podaní, klinického výskumu, cestovania, zábavy, vzdelávania, štátnej správy, právnych zmlúv a softvérovej dokumentácie.

Každý dopyt je navrhnutý tak, aby testoval jednu z dvanástich kontextových schopností. Primárne cieľové dokumenty sú zámerne dlhé: 1 061 z 1 197 rôznych primárnych cieľových dokumentov má najmenej 200 viet, pričom stredná dĺžka je približne 6 100 tokenov. Každý dopyt má v korpuse presne jednu správnu odpoveď. Ak sa tá istá skutočnosť v ideálnom dokumente uvádza viackrát, napríklad v zhrňujúcej vete a v riadku tabuľky, ktorákoľvek z týchto viet sa akceptuje ako odpoveď.

Cesta k odpovedi je jedna platná kombinácia fragmentu odpovede a podporných dôkazov potrebných na jej interpretáciu alebo overenie. Naprieč 2 099 dopytmi má cesta k odpovedi primárneho cieľového dokumentu jednu skupinu dôkazov pre 964 dopytov, dve pre 735, tri alebo viac pre 332 a žiadnu pre 68. Alternatívne platné cesty k odpovedi môžu vyžadovať rôzne skupiny dôkazov.

Tabuľka 1: Štatistiky benchmarku.

Štatistika

Hodnota

Dopyty

2 099

Dokumenty

38 894

Fragmenty viet

2 458 072

Stredná dĺžka primárneho cieľového dokumentu

6 100 tokenov

Domény

21

Skupiny dôkazov na dopyt (cesta k odpovedi primárneho cieľového dokumentu)

1: 964; 2: 735; 3+: 332; žiadne: 68

Tabuľka 2: Dvanásť kontextových schopností testovaných benchmarkom context-bench spolu s názornými príkladmi.

Schopnosť

Príklad dopytu

Časť s odpoveďou

Požadovaný kontext dokumentu

1. Identita subjektu

Koľko minul Northlake na spätný odkup akcií?

Spoločnosť odkúpila späť akcie v hodnote 12,8 miliardy USD.

V úvode je spoločnosť Northlake označená ako „spoločnosť“. Podobná správa o spoločnosti Southlake nie je relevantná.

2. Obdobie alebo verzia

Ktorá patróna pasuje do revízie B zariadenia M40?

Nainštalujte patrónu KC-42.

V časti o použiteľnosti sa uvádza, že tieto pokyny sa vzťahujú na revíziu B, nie na revíziu C.

3. Definície a aliasy

Akurát akú mieru stiahnutia mala 15 mg skupina?

Skupina Zeta mala mieru stiahnutia 12,7 %.

Správa definuje skupinu Zeta ako 15 mg skupinu. Bez tejto definície fragment neidentifikuje požadovanú skupinu.

4. Štruktúra tabuľky

Akú kapacitu batérie má model Max?

Typická kapacita: 4 250 | 4 700 | 5 150.

Hlavička tabuľky uvádza Mini | Base | Max merané v mAh. Odpoveď je preto 5 150 mAh.

5. Podmienky a výnimky

Ako dlho trvá krytie batérie na komerčné použitie?

Krytie batérie trvá 18 mesiacov.

Úvod do časti obmedzuje toto krytie na komerčné inštalácie; pre domáce inštalácie platí iná záruka.

6. Odkazy a zámená

Kedy sa Mara stala zástupkyňou primátora?

Funkciu ujala v roku 2021.

Predchádzajúci text stanovuje, že „ona“ sa vzťahuje na Maru, nie na Elin, o ktorej sa tiež hovorí.

7. Poradie a pozícia v zozname

Ktorá pieseň otvorila prídavok?

14. Lantern Road.

Poznámka inde uvádza, že prídavok tvorili skladby 14 až 16. Skladba 14 je preto jeho úvodnou skladbou.

8. Rozsah časti

Aký objektív sa použil na kamerovú prácu vo filme?

Celkovo bol použitý 35 mm objektív s pevnou ohniskovou vzdialenosťou.

Táto stať patrí do časti „Hlavné nakrúcanie“, nie do samostatnej časti o propagačných fotografiách.

9. Priradenie hovoriaceho

Aký dátum opätovného otvorenia sľúbil primátor?

Znovu otvoríme 12. júna.

Prepis identifikuje primátora ako hovoriaceho. Rovnaké slová od dodávateľa by nesvedčili o primátorovom sľube.

10. Zmeny v čase

Aká výpovedná lehota platila po májovej zmluve?

Výpovedná lehota je teraz 45 dní.

História dodatkov preukazuje, že táto zmena nadobudla účinnosť v máji a nahradila skoršie 30-dňové pravidlo.

11. Príčinné vzťahy

Prečo sa zastavilo západné čerpadlo?

Táto porucha spôsobila odstávku.

Vyšetrovanie označuje „túto poruchu“ za zadreté ložisko v západnom čerpadle a odlišuje ju od nesúvisiacej prekážky na prítoku.

12. Prenesený alebo medzijazykový význam

Prenesený význam:

Čo symbolizuje „zimná miestnosť“ v básni?

Medzijazykový význam:

Ktorý komponent má technik podľa francúzskeho pokynu odstrániť?

Prenesený význam:

Predstavuje vyhnanstvo, a nie fyzickú miestnosť.

Medzijazykový význam:

Retirez le capot. (Odstráňte kryt.)

Prenesený význam:

Komentár označuje „to“ za opakujúci sa obraz „zimnej miestnosti“ v básni.

Medzijazykový význam:

Slovník v príručke uvádza, že „capot“ znamená ochranný kryt motora, nie prepravný kryt.

Dokumenty a dopyty

Testované dopyty, dokumenty a schopnosti sú inšpirované rozhovormi so zákazníkmi spoločnosti turbopuffer.

Ako príklad uveďme vyhľadávacie potreby firmy zaoberajúcej sa správou nehnuteľností. Tieto firmy majú stovky, niekedy tisíce nájomných zmlúv, ktoré sa líšia iba menami nájomcov, dátumami a niekoľkými ďalšími kľúčovými podrobnosťami. Bežným dopytom pre tento dátový súbor môže byť „kedy sa končí nájomná zmluva pre 5 park avenue a aké je aktuálne nájomné?“. Nájomné zmluvy môžu byť tiež rozsiahle a kritické rozlišujúce komponenty, ktoré by potvrdili, že ste získali správny dokument (napríklad dátum, adresa, meno nájomcu atď.), môžu byť často veľmi ďaleko od kľúčovej vety odpovede obsahujúcej sumu mesačného nájomného. V praxi sa identické vety ako „Mesačné nájomné je $X,XXX.“ môžu objavovať vo viacerých dokumentoch v korpuse.

Dobrý model kontextového vloženia by mal využívať kontext z celého dokumentu na identifikáciu správneho dokumentu a získanie odpovede aj jej podporných viet. To umožňuje používateľovi alebo vyhľadávaciemu agentovi rýchlo overiť odpoveď a potvrdiť, že pochádza zo správneho dokumentu.

Štítky odpovedí a dôkazov

Pre každý dopyt označujeme v cieľovom dokumente vety „odpovede“ a „dôkazy“. Model prejde naším testom „dostatočnosti pre čitateľa“, ak získa vetu s odpoveďou spolu s aspoň jednou vetou z každej skupiny dôkazov. Tieto vety spoločne poskytujú čitateľovi dostatok kontextu na overenie odpovede pomocou podporných dôkazov.

Keď to modely kontextových vložení robia dobre, môžu dramaticky znížiť počet tokenov, ktoré vyhľadávacie agenty musia skontrolovať, a zároveň výrazne uľahčiť človeku rýchle potvrdenie, že našiel správnu odpoveď na pôvodný dopyt bez toho, aby musel čítať celý dokument.

Každá skupina dôkazov sa musí obnoviť, ale na jej obnovenie stačí ktorákoľvek z alternatív danej skupiny. V týchto rozsiahlych dokumentoch je bežné, že sa tá istá skutočnosť uvádza na viacerých miestach. Zisťovanie len jednej vety z každej skupiny dôkazov spĺňa kritériá dostatočnosti pre čitateľa, a preto by sa akceptovalo ako dokonalé získanie dôkazov.

Metriky

Každý dokument je rozdelený na vety a pre všetky modely sa používajú rovnaké hranice. Pre nekontextové modely vloženia sa testujú dve podmienky: jedna, kde je každá veta vložená nezávisle, a druhá, kde je celý dokument vložený ako jeden fragment.

Podmienku na úrovni vety používame na meranie získania odpovedí a získania dôkazov. Testuje, či nekontextový model dokáže identifikovať správnu odpoveď a podporné dôkazy, keď je každá veta vložená bez prístupu k okolitému dokumentu. Je to zámerne náročné. V mnohých dopytoch samotná veta s odpoveďou postráda podrobnosti potrebné na jej odlíšenie od podobných viet inde v korpuse.

Podmienku na úrovni dokumentu používame ako východiskový bod pre získavanie dokumentov. Testuje, či jemnozrnné vloženia viet poskytujú dostatočný prínos pri vyhľadávaní na obhájenie dodatočných nákladov na úložisko v porovnaní s uložením jedného vektora na dokument. Index na úrovni vety vytvára podstatne viac vektorov než index na úrovni dokumentu, takže by mal prekonávať východiskovú hodnotu jedného vektora na dokument, aby tieto náklady ospravedlnil.

Všetky vyhodnotenia používajú vyčerpávajúce poradia oproti všetkým 2 458 072 fragmentom. Rozdiely medzi modelmi preto odrážajú reprezentácie, nie konfiguráciu indexu. Zameriavame sa na tri kľúčové metriky:

Document@K je definované ako:

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

kde d∗d^{*} je dokument s najvyšším hodnotením v DqD_q.

Answer@K je definované ako:

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

kde CK(q)C_K(q) predstavuje horné KK fragmenty v rámci celého korpusu a AqA_{q} je množina akceptovaných fragmentov odpovedí.

Evidence Recall@K sa meria v rámci d∗d^{*} nasledovne: Usporiadajte vety z d∗d^{*} podľa podobnosti, odstráňte vetu s odpoveďou s najvyšším hodnotením a nechaj RK(q)R_K(q) byť hornou KK, ktoré zostávajú. Pre skupiny dôkazov Gq={g1,…,gm}G_q=\{g_1,\ldots,g_m\} sa skupina gjg_j obnoví, ak niektorá alternatíva E∈gjE\in g_j spĺňa E⊆RK(q)E\subseteq R_K(q), a

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 sa pýta, či kontextualizácia umožňuje správnemu dokumentu prekonať sesterské dokumenty a rušivé elementy, ktoré zdieľajú jeho slovnú zásobu.

Answer@K sa pýta, či samotná veta s odpoveďou patrí medzi horné fragmenty.

Evidence Recall@K sa pýta, aká veľká časť podporného kontextu sa získa medzi hornými K fragmentmi správneho dokumentu po vylúčení fragmentu odpovede s najvyšším hodnotením. Odstránenie odpovede zabraňuje tomu, aby získanie dôkazov započítalo dvakrát to, čo už meria Answer@K, a ponecháva všetky sloty KK pre podporný kontext. Požiadavka, aby ideálny dokument bol medzi 10 najlepšími získanými dokumentmi, znamená, že žiadny model nezíska kredity za dôkazy pre dokument, ktorý by nevyniesol na povrch. Zverejňujeme tiež metriku All-Evidence@K, čo je podiel dopytov s úspešne získanou každou skupinou.

Tieto metriky spoločne rozkladajú výzvy, ktorým čelia modely kontextových vložení: nájsť správny dokument, nájsť správnu odpoveď a obnoviť minimálny kontext, ktorý preukazuje, prečo je odpoveď správna.

Obrázok 3 ilustruje metriky na príklade správy nehnuteľností.

Obrázok 3: Metriky context-bench ilustrované na dopyte týkajúcom sa nájmu. Document@K testuje získavanie správneho dokumentu; Answer@K testuje získavanie jeho fragmentu s odpoveďou; Evidence Recall@K meria získavanie skupín podporných dôkazov v rámci cieľového dokumentu. V tomto príklade overenie nájomného vyžaduje dôkazy o adrese aj roku nájmu. Získavanie dôkazov nezahŕňa najvyšší fragment odpovede a vyžaduje, aby sa cieľový dokument umiestnil v top 10.

Výsledky vyhodnotenia

Náš model vyhodnocujeme v porovnaní s kontextovými a nekontextovými modelmi vložení v štyroch smeroch.

Naše kontextové referenčné modely sú pplx-embed-context-v1-4B a voyage-context-4. Naše nekontextové referenčné modely sú voyage-4-large a Nemotron-3-Embed-8B-BF16 od spoločnosti NVIDIA, ktoré kódujú fragmenty nezávisle. Referenčná množina sa líši podľa experimentu, ako je uvedené na každom obrázku.

Začíname s benchmarkom context-bench, ktorý priamo testuje schopnosti motivujúce túto prácu, a potom zverejňujeme výsledky na ConTEB, štandardnom verejnom benchmarku pre kontextové vloženia. Aby sme overili, že tieto zisky nie sú na úkor celkovej kvality vyhľadávania, vyhodnocujeme aj doménovo špecifické benchmarky vyhľadávania dokumentov a fragmentov, ktoré sme vytvorili z verejných dátových súborov. Na záver preskúmame dve praktické vlastnosti nasadenia: kvalitu vyhľadávania oproti nákladom na úložisko na vektor a citlivosť na veľkosť fragmentu použitú v čase indexovania. Všetky vyhodnotenia kódujú dokumenty s veľkosťou do 32 768 tokenov v jedinom prechode.

Context-bench

Ako ukazuje obrázok 1 v úvode, naša ukážka vedie v metrikách Answer@K a Evidence Recall@K pri každom uvádzanom prahu, ako aj v All-Evidence@10. Pri K = 10 dosahuje 45,5% úspešnosť získania odpovedí, 40,6% úspešnosť získania dôkazov a 31,1% úspešnosť získania všetkých dôkazov. Vedie tiež v metrikách Document@1 a Document@10, kde dosahuje 15,2 %, resp. 61,6 %. Pri K = 10 naša ukážka prekračuje model voyage-context-4 o 14,4 percentuálneho bodu v získavaní odpovedí a o 5,0 bodov v získavaní dôkazov.

ConTEB

Náš model v ukážke dosahuje najvyššiu priemernú hodnotu nDCG@10 medzi modelmi zobrazenými pre ConTEB na obrázku 4. Nevedie v každej úlohe: pplx-context-v1-4B dosahuje vyššie skóre v NarrativeQA, zatiaľ čo Nemotron-3-8B dosahuje najvyššie skóre v COVID-QA. Ako hlavní autori tiež uviedli v článku o ConTEB, COVID-QA zahŕňa väčšinou páry dopytov a fragmentov, ktoré sú vysoko extraktívne a dajú sa uspokojiť jednoduchým povrchovým priradením lexiky na základe technických medicínskych termínov. V dôsledku toho je porozumenie kontextu pre túto úlohu menej užitočné a nekontextové modely zvyčajne prekonávajú tie kontextové.

Obrázok 4: Hodnota nDCG@10 na úrovni úloh v ConTEB v nastavení dopytu na fragment. Priemer je nevážený priemer naprieč ôsmimi úlohami.

Celková kvalita vyhľadávania naprieč doménami

Okrem benchmarkov navrhnutých pre kontextové vloženia hodnotíme aj doménovo špecifický výkon nášho modelu.

Naša sústava úloh dopytu na fragment (Q2C) využíva úlohy MTEB, ako sú LegalBench a FinanceBench, spolu s ďalšími úlohami vyhľadávania, ktoré sme zostavili z verejných dátových súborov. V rámci každého relevantného dokumentu je fragment označený ako relevantný, ak obsahuje presný úsek s odpoveďou, keď ho úloha poskytuje, inak je posúdený modelom LLM na základe jeho relevantnosti k dopytu. Sústava úloh dopytu na dokument (Q2D) využíva rovnaké úlohy a hodnotí, či sa podarilo získať relevantný dokument.

Náš model dosahuje najvyššie priemerné skóre pri vyhľadávaní fragmentov na obrázku 5 a vedie v právnej, technickej a zdravotníckej doméne. Nevedie v každej doméne: voyage-context-4 dosahuje vyššie skóre v oblasti financií a vo vicejazyčnom vyhľadávaní a Nemotron-3-8B dosahuje najvyššie skóre pri vyhľadávaní v konverzáciách. Pri vyhľadávaní dokumentov na obrázku 6 dosahuje náš model v priemere mierne nižšie skóre ako voyage-context-4, pričom vedie v technickej doméne. Referenčný model pplx-context-v1-4B dosahuje v priemere nižšie skóre v oboch sústavách, čo zodpovedá skutočnosti, že bol trénovaný iba na trénovacej množine ConTEB, čo ukazuje, že dohľad viazaný na ideálne fragmenty jedného benchmarku sa do iných domén prenáša slabo.

Obrázok 5: Priemerná hodnota nDCG@10 pre úlohy dopytu na fragment (Q2C) zoskupené podľa domény. Stĺpce domén sú neváženými priemermi skóre na úrovni úloh v danej doméne; celkový priemer je neváženým priemerom naprieč všetkými zobrazenými úlohami.
Obrázok 6: Priemerné skóre vyhľadávania pre úlohy dopytu na dokument (Q2D) zoskupené podľa domény. Každý stĺpec v doméne je neváženým priemerom hlavných skóre na úrovni úloh; celkový priemer je neváženým priemerom naprieč všetkými zobrazenými úlohami.

Kvalita vyhľadávania a náklady na úložisko

Model kontextového vloženia produkuje jeden vektor na fragment, takže index vytvorený s naším modelom obsahuje presne toľko vektorov ako bežný index na úrovni fragmentu s rovnakou stratégiou delenia. Kontextualizácia mení to, čo každý vektor kóduje, nie koľko vektorov je uložených. Veľkosť úložiska sa preto riadi veľkosťou každého vektora. Model ponúka dva spôsoby, ako ju znížiť: skrátenie vloženia z 2048 na 1024 dimenzií a jeho kvantizáciu na int8.

Obrázok 7 ukazuje priaznivý kompromis medzi kvalitou vyhľadávania a úložiskom vektorov. Pri 1024 dimenziách naše int8 vloženia využívajú 1 KB na vektor, pričom mierne prekračujú skóre vyhľadávania fragmentov modelu voyage-context-4 pri 2048 dimenziách vo formáte float32, ktorý využíva 8 KB na vektor. Zväčšenie veľkosti vloženia na 2048 dimenzií ďalej zvyšuje kvalitu vyhľadávania pri 2 KB na vektor. Tieto údaje o úložisku sa týkajú iba samotných vektorov, nie zvyšku indexu.

Obrázok 7: Kvalita vyhľadávania fragmentov (priemerná hodnota nDCG@10) ako funkcia úložiska na vektor. Plné čiary označujú formát float32 a prerušované čiary označujú int8; popisy uvádzajú dimenziu vloženia.

Citlivosť na veľkosť fragmentu

Obrázok 8 ukazuje len miernu zmenu v kvalite vyhľadávania, keď sa veľkosť fragmentu zväčší zo 64 na 512 tokenov: priemerné skóre klesne z 81,0 % na 79,9 %, čo predstavuje pokles o 1,1 percentuálneho bodu. To naznačuje, že model zostáva účinný pri testovaných veľkostiach fragmentov, čo poskytuje indexovacím kanálom flexibilitu v tom, ako sa dokumenty delia.

Obrázok 8: Citlivosť nášho modelu na veľkosť fragmentu. Každý bod je neváženým priemerom nDCG@10 naprieč 74 úlohami MTEB, pričom dokumenty sú indexované pri danej veľkosti fragmentu.

Vydanie

turbopuffer uchováva celý korpus, dopyty a označenia context-bench v súkromí a zverejňuje výsledky odoslaných modelov. Verejný benchmark tohto typu by lákal k priamemu trénovaniu na jeho dopytoch a dokumentoch, čo by ho postupne nasýtilo a oslabilo jeho hodnotu pri sledovaní pokroku v čase. Ak chcete, aby bol váš model vyhodnotený v benchmarku, kontaktujte, prosím, turbopuffer na adrese contextbench@turbopuffer.com.

Ukážka nášho modelu je dostupná na Hugging Face a všetky výsledky v tomto príspevku sú uvádzané pre túto ukážku. Pracujeme na sprístupnení modelu prostredníctvom rozhrania Perplexity API a na ďalšom zlepšovaní vyhľadávania v dlhých dokumentoch v spolupráci so spoločnosťou turbopuffer.

Citácia

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