Kompresija konteksta svjesna upita za bolje odsječke

Poboljšanje granice kvalitete i učinkovitosti konteksta modela kroz modele kompresije konteksta svjesne upita.

AutoriPerplexity Research

Svaki odgovor počinje s dokazima. U sustavu za pretraživanje ti dokazi obično dolaze iz dokumenata: naslova, sažetaka, odsječaka i ulomaka koji se prosljeđuju kao kontekst modelu za odgovore ili agentu.

Taj sirovi kontekst je bučan. Na primjer, web-stranica može sadržavati informacije potrebne za korisnikov zahtjev, ali može sadržavati i elemente koji odvraćaju pažnju. Ti se elementi mogu pojaviti kako u glavnom dijelu teksta tako i u sporednim elementima, kao što su tekstualni elementi navigacije, irelevantni oglasi, metapodaci i drugo. Proslijeđivanje tih elemenata naknadnom agentu stvara tri problema.

Prvo, to narušava točnost. Čak i najmoćniji modeli imaju ograničen kapacitet. Dugi nizovi irelevantnih informacija troše kapacitet modela, što rezultira „truljenjem konteksta” koje narušava sposobnost modela da obradi stvarni korisnikov zahtjev. Posljedično, konačni odgovor ima veću vjerojatnost da će propustiti ključne činjenice, dati preveliku važnost informacijama niske kvalitete ili proizvesti tvrdnje koje je teže potkrijepiti izvorom.

Drugo, to povećava latenciju. Dulji kontekst znači više tokena koje naknadni model mora obraditi, osobito kada upit treba dokaze s mnogih stranica kandidata. Iako se dio tog troška latencije snosi u fazi predpopunjavanja (prefill), znatno veći trošak plaća se u zaključivanju, pri čemu modeli zahtijevaju više tokena za zaključivanje kako bi se nosili s irelevantnim kontekstom.

Treće, to povećava troškove. Svaki suvišni token proslijeđen modelu čini posluživanje korisnikovog zahtjeva skupljim, budući da se upotreba i ulaznih tokena i tokena za zaključivanje povećava s bučnijim kontekstom. Elementi koji odvraćaju pažnju ne smanjuju samo kvalitetu; oni na kraju prisiljavaju da platite više za tu lošiju kvalitetu.

Slika 1. Sirovi dohvaćeni kontekst često sadrži odgovor okružen irelevantnim tekstom. Korisni dokazi su prisutni, ali su zakopani među zaglavljima, podnožjima, standardnim tekstom (boilerplate), metapodacima i sadržajem koji nije vezan uz temu prije nego što ih model za odgovore vidi.

Kako bismo istovremeno unaprijedili točnost, brzinu i isplativost kroz Perplexityjeve aplikacije i API platformu, ulažemo znatna sredstva u poboljšanje preciznosti konteksta. Jedan od načina na koji to činimo jest pročišćavanje naših algoritama za generiranje odsječaka. Generiranje odsječaka tretiramo kao problem kompresije konteksta. Modeli koji traže određene informacije nemaju koristi od generaliziranih sažetaka ili ulomaka dokumenta. Umjesto toga, potreban im je najmanji, kirurški izvučeni dio izvornih informacija kako bi odgovorili na korisnikov zahtjev. Sve ostalo može se i mora ukloniti.

Dobar odsječak stoga bi trebao učiniti tri stvari:

Promicati točnost prezentiranjem preciznih dokaza potrebnih za utemeljenje odgovora modela.

Smanjiti latenciju i troškove uklanjanjem irelevantnog konteksta prije poziva LLM-a.

Osigurati sljedivost očuvanjem vjernosti citiranja i ostavljanjem izvorne Wording-a netaknutom.

Ovog smo mjeseca implementirali novi, vrhunski generator odsječaka unutar naših aplikacija i API platforme. Jezgra ovog modula je model kompresije konteksta svjestan upita koji za svaki upit i rezultat kandidata odlučuje koji podskup raspona (spans) treba sačuvati. Ovaj članak opisuje naš pristup izgradnji i obuci modela radi postizanja vrhunskih performansi u klasi za ovaj kritični zadatak.

Odsječci kao kompresija svjesna upita

Prvi zadatak je definirati sam zadatak. Što želimo da ovaj model radi i kako trebamo definirati ulaznu i izlaznu shemu?

Metode odsječaka spadaju u dvije široke obitelji. Prva se temelji na odabiru: pronađite relevantan prozor, odsječak, rečenicu ili ulomak i proslijedite ga dalje. Druga se temelji na generiranju: zatražite od modela da napiše sažetak stranice usredotočen na upit.

Naš fokus na točnost, latenciju i troškove čini izbor dizajna jasnim. Možemo isključiti generiranje, budući da stvaranje novog sažetka za svaku stranicu narušava performanse u sva tri fokusa. Sažimanje slabo odgovara sloju dokaza do kojeg nam je stalo. Može parafrazirati izvor, čineći usklađivanje citata težim. Također može uvesti formulaciju koja nije bila prisutna na stranici, što je rizično kada se odsječak koristi kao dokaz, a ne kao konačni odgovor. Uključena latencija i troškovi čine generiranje još neprivlačnijim.

Umjesto toga, naš zadatak definiramo kao ekstraktivnu kompresiju svjesnu upita: odvajanje korisnih dijelova dohvaćenog konteksta od dijelova koji odvraćaju pažnju. Konkretno, naš model mora prihvatiti upit i rezultat kandidata te odlučiti koje raspone sačuvati, one koji najbolje podržavaju upit, a koje odbaciti, ostatak. Izlaz modela čuva izvorni tekst umjesto da ga prepisuje. To čini rezultat lakšim za citiranje, lakšim za provjeru i jeftinijim za prosljeđivanje.

Na primjer, razmotrite ovaj upit i dohvaćeni rezultat:

Upitom svjesna sažimajuća ekstrakcija zadržava izvorni rečenicu relevantnu za upit i odbacuje nepovezani kontekst.

Plausible izlaz modela bio bi odabir podebljane rečenice: „U Cometu pomoćnik može ...”.

Naš pristup slijedi istu širu ideju kao i prethodni rad na kompresiji konteksta kao što su FliCo, Provence i LooComp, prilagođen za generiranje odsječaka u produkcijskom sustavu za pretraživanje. Važno je napomenuti da model radi kao faza preciznosti nakon naše faze sirovog dohvaćanja. Kao što je raspravljeno u našem prethodnom članku iz Perplexity Researcha, Predstavljanje Perplexity Search API-ja, naše sustave za dohvaćanje arhitektura usmjeravamo da rade izvorno na razini poddokumenata ili odsječaka, što nam već omogućuje prilično dobro balansiranje preciznosti i odziva (recall). Uvođenje modela kompresije konteksta svjesnog upita pomiče Pareto granicu preciznosti i odziva još dalje prema van.

Izgradnja i obuka modela kompresije konteksta

Model razvijamo imajući na umu tri glavna razmatranja: zajedničko razumijevanje upita i konteksta, finozrnati odabir na razini rečenica i učinkovitost kako bi se uklopio u iznimno uski proračun latencije.

Arhitektura modela

Kao okosnicu koristimo pplx-diffusion model. To je ista obitelj modela koja stoji iza pplx-embed-v1, a i naš prethodni akademski rad, Diffusion-Pretrained Dense and Contextual Embeddings, i naši produkcijski računalni testovi potvrđuju da je to snažan dvosmjerni koder za parove upit-kontekst. Jedno od ključnih svojstava ove obitelji modela jest dvosmjerni kontekst: svaka reprezentacija tokena može obratiti pozornost na cijeli upit i cijeli kontekst kandidata prije nego što model odluči što treba zadržati.

Povrh ove okosnice, treniramo laganu glavu kompresije koja predviđa koje dijelove konteksta treba zadržati. Budući da generiranje nije uključeno, ta se predviđanja vrše paralelno preko cijelog konteksta. U vrijeme posluživanja, mehanizam za odsječke agregira ta predviđanja na razini rečenica, primjenjuje prag i skraćuje rezultat na traženi proračun tokena.

Cjevovod nadzora

Obuka ovog kompresora zahtijeva nadzor na odgovarajućoj razini granularnosti. Oznaka relevantnosti na razini dokumenta očito je neprikladna za naš zadatak ekstraktivne kompresije. Kako bismo generirali dovoljno granularne podatke za strojno učenje uz nadzor, izgradili označavanje raspona koji označava raspone dokaza relevantne za upit, zajedno s rasponima koji odvlače pažnju i koje treba ukloniti.

Naš cjevovod koristi postavljanje LLM-kao-sudac (LLM-as-a-judge). S obzirom na korisnički upit i web-stranicu kandidata s njezinom vezom, naslovom i sažetkom, sudac prvo provodi razumijevanje upita, analizirajući upit i dajući popis mogućih korisničkih namjera. Oslanjajući se na te namjere, sudac zatim obrađuje kontekst kandidata i vraća raspone kopirane od riječi do riječi iz teksta, s kategorijom za svaki raspon kako bi se oznake lakše pregledale.

Zatim smo uskladili vraćene raspone natrag s izvornim tekstom. Bez iznenađenja, većina izlaza suca već su bile točne kopije: naivno podudaranje nizova oporavilo je 98% raspona. Dodavanje jednostavnog prolaza podudaranja temeljenog na regularnim izrazima podiglo je oporavak raspona na 100%. To nam je dalo pouzdane, granularne raspone koji su se mogli pretvoriti u nadzor zadržavanja/odbacivanja na razini tokena.

Ocijenili smo ovaj cjevovod nadzora koristeći mali odabrani skup podataka s ručno označenim rasponima, uspoređujući manje modele sudaca, različite upute i različite konfiguracije koraka. Postavka s najboljim performansama bila je dvostupanjski cjevovod: najprije razumijevanje upita, nakon čega slijedi kategorizirano označavanje raspona. Također smo potvrdili skup izvađenih raspona kroz naknadne provjerljive evaluacije kao što su BrowseComp i SimpleQA, gdje je korištenje samo sačuvanih raspona dokaza očuvalo jake rezultate uz istovremeno značajno smanjenje ulaznih tokena.

Koristeći ovaj cjevovod, označili smo 750 tisuća parova upit-dokument i koristimo rezultirajuće raspone za treniranje glave kompresije s binarnom unakrsnom entropijom (binary cross-entropy). Ovaj proces omogućuje našem modelu kompresije svjesnom upita da očuva izvorni tekst netaknutim dok istovremeno uklanja kontekst za koji je malo vjerojatno da će pomoći naknadnom modelu u posluživanju korisnikovog zahtjeva.

Osiguravanje latencije u stvarnom vremenu

Kompresija konteksta nalazi se prije naknadnog modela, što je čini blokirajućom operacijom. Štoviše, svaka je kompresija ovisna o upitu. Stoga mrežna putanja mora bodovati parove upit-kontekst za svaki dokument kandidata unutar strogo određenog okvira latencije. Spor model kompresije sam sebe poništava, jer se prednosti latencije proizašle iz veće preciznosti brišu samom latencijom kompresije. Istovremeno, manje inteligentan model kompresije donosit će lošije odluke o tome što izrezati, a što zadržati.

Praktično pitanje je koliko kapaciteta modela možemo sigurno ukloniti prije nego što kvaliteta kompresije počne opadati. Uspoređujemo punu okosnicu pplx-diffusion s 28 slojeva s varijantama od 11 i 17 slojeva proizvedenim obrezivanjem slojeva (layer pruning) usmjerenim na putanju pretraživanja. Za svaku od njih prolazimo kroz prag kompresije i mjerimo dvije veličine: prosječan broj kontekstnih tokena poslanih u nastavku (downstream) po upitu i udio korisnih dokaza sačuvanih nakon kompresije.

Slika 2 prikazuje granicu kvalitete i učinkovitosti. Model je bolji kada se pomiče prema gore i lijevo: manje naknadnih tokena s više sačuvanih korisnih dokaza. Model s 28 slojeva pruža referentnu vrijednost kvalitete. Model s 11 slojeva pokazuje rizike preagresivnog kompresiranja modela. Obrezani model sa 17 slojeva predstavlja sredinu: blisko prati model s 28 slojeva u zasićenom režimu, ali se mala praznina otvara u strmom dijelu krivulje gdje radi većina produkcijskog prometa.

Kako bismo zatvorili tu prazninu, primjenjujemo destilaciju znanja na razini tokena. Naš je pristup rutinski: nadopunjujemo standardni gubitak pojam meke unakrsne entropije (soft cross-entropy term) na predviđanjima modela učitelja, ponderiranim koeficijentom destilacije. To je dovoljno da model učenik dovede do pariteta, omogućujući nam da u produkciji u potpunosti pređemo na destilirani model sa 17 slojeva. Ovaj novi produkcijski model donosi smanjenje latencije zaključivanja od 35-40% i smanjenje ukupnog računalnog opterećenja GPU-a od 40-45% bez pada kvalitete u odnosu na učitelja s 28 slojeva. Produkcijska latencija iznosi manje od 20 ms (p99): dovoljno mala da se doda u putanju posluživanja uz istovremeno veliko smanjenje ukupnih tokena proslijeđenih modelu za odgovore.

Slika 2. Performanse kompresije kroz različite dubine modela. Destilirani učenik sa 17 slojeva, naš produkcijski model, odgovara učitelju s 28 slojeva u performansama kompresije kroz sve pragove, uz niže troškove online računanja.

Kvaliteta i učinkovitost tokena

Kao testno okruženje za analizu učinkovitosti kompresije konteksta koristimo Perplexityjev Agent API. Ocjenjujemo tri unaprijed postavljene postavke Agent API-ja:

„Niska” (low) postavka konteksta koja ograničava proračun tokena za svaki skup rezultata na 1000 tokena.

„Srednja” (medium) postavka konteksta koja ograničava proračun tokena za svaki skup rezultata na 4000 tokena.

„Visoka” (high) postavka konteksta koja ograničava proračun tokena za svaki skup rezultata na 10000 tokena.

I standardne postavke (bez kompresije) i postavke kompresije konfigurirane su tako da poštuju ove proračune tokena.

Agentska višestupanjska pretraga (BrowseComp)

Prvo ispitujemo utjecaj kompresije na agentske višestupanjske tijek rada pretraživanja na mjerilu (benchmark) BrowseComp. Ovu evaluaciju provodimo koristeći naš otvoreni kod search_evals. Ocijenjivanje je identično u svim pokretanjima, koristeći OpenAI-jev kanonski BrowseComp LLM judge prompt.

Dvije dimenzije od interesa jesu točnost mjerila i upotreba tokena. Važno je napomenuti da upotrebu tokena mjerimo na razini upita, a ne na razini pojedinačnog koraka kako bismo izmjerili stvarno opterećenje tokenima nastalo tijekom životnog ciklusa zahtjeva. Slika 3 prikazuje granicu „rezultat-token” (score-token), ocjenu točnosti u odnosu na upotrebu tokena.

Slika 3. Granica rezultata i tokena na BrowseComp-u. Točke na vrhu predstavljaju veću točnost, dok točke na lijevoj strani predstavljaju veću učinkovitost. Kompresija poboljšava Pareto granicu kroz sve postavke. Točkaste horizontalne linije predstavljaju sustave za pretraživanje koji nisu iz Perplexityja, uključujući paralelne mjerila (benchmarkove). GPT-5.5 pokreće petlju agenata.

Kompresija donosi novu Pareto granicu u svim segmentima. Za svaku postavku, uvođenje kompresije smanjuje upotrebu tokena na razini upita za 10% do 70%, uz dobitke u točnosti koji se kreću između 4 i 4,81 postotnih bodova. Uvođenje kompresije omogućuje čak i našoj „niskoj” postavci da nadmaši „visoku” postavku bez kompresije, i to uz trostruko smanjenje upotrebe tokena.

Primjećujemo da s kompresijom „visoka” postavka daje veću točnost nego „srednja” kao što bismo i očekivali. Zanimljivo je, međutim, da to čini uz manju upotrebu tokena. To otkriva suptilan, ali važan učinak kompresije: s kompresijom, čak i povećanje veličine konteksta po koraku može omogućiti modelu da napravi manje koraka kako bi stigao do točnog rezultata. Istraživanje ove nelinearnosti (non-monotonicity) obećavajući je smjer za budući rad.

SimpleQA: činjeničnost u jednom koraku

BrowseComp naglašava višestupanjsko istraživanje, no mnogi produkcijski tijek rada uključuju jednostavno činjenično traženje u jednom koraku. Kako bismo utvrdili pomaže li kompresija i u režimu jednog koraka, također ispitujemo performanse na SimpleQA, mjerilu koje se sastoji od 4.326 pitanja na koja treba odgovoriti u jednom koraku pretraživanja, umjesto u agentskoj petlji.

Kao i prije, crtamo točnost u odnosu na prosječan ukupni broj tokena po zadatku koristeći kanonski prompt suca. Slika 4 prikazuje granicu rezultata i tokena u ovom postavci jednog koraka. Iako su veličine učinaka kompresiranije u postavci jednog koraka, ponovno primjećujemo da kompresija istovremeno poboljšava točnost i učinkovitost kroz sve postavke, uvodeći tako novu Pareto granicu. S omogućenom kompresijom, srednja postavka postiže 95% točnosti s prosjekom od samo 200 tokena po dokumentu. S obzirom na prosječnu duljinu dokumenta od preko 10.000 tokena, ovo predstavlja performanse na razini graničnih vrijednosti (frontier-level) uz omjer kompresije veći od 50.

Slika 4. Granica rezultata i tokena na SimpleQA-i. Točke na vrhu predstavljaju veću točnost, dok točke na lijevoj strani predstavljaju veću učinkovitost. Kompresija poboljšava Pareto granicu kroz sve postavke. Točkaste horizontalne linije predstavljaju sustave za pretraživanje koji nisu iz Perplexityja, uključujući evaluacije Exa API-ja.

Što na kraju završava u odsječcima?

Naknadni dobici u odjeljcima 4.1 i 4.2 su krajnji (end-to-end). Kako bismo razumjeli kako kompresija mijenja pojedinačne odsječke, provodimo zasebnu evaluaciju koja koristi LLM suca za klasificiranje svakog tokena svakog dohvaćenog odsječka u jednu od šest kategorija:

Ključno (Vital): dokazi bitni za odgovor na korisnikov upit.

Izvan teme (Off-topic): informacije koje mogu biti korisne za neku drugu svrhu, ali se ne odnose na trenutačni upit.

Oglasi (Ads): irelevantno oglašavanje koje odvraća pozornost od odgovaranja na korisnikov upit.

Metapodaci (Metadata): metapodaci o sadržaju dokumenta.

Sučelje i navigacija (UI & navigation): elementi za prikaz sučelja (frontend) i navigaciju.

Duplikat (Duplicate): ponavljanje prethodno uključenih informacija.

Naša evaluacija radi na 1.000 upita s miješanim domenama iz našeg skupa za provjeru valjanosti (validation set), uspoređujući produkcijski stog s inače identičnom osnovnom linijom s onemogućenom kompresijom. Kako je prikazano na slici 5, kompresija povećava udio ključnih tokena po odsječku za prosječno 63% u odnosu na osnovnu liniju bez kompresije. Primjećujemo odgovarajuće smanjenje od 29% u irelevantnim tokenima, s posebno strmim padovima u sučelju/navigaciji (-58%), metapodacima (-46%) i oglasima (-43%). Ovi rezultati potvrđuju mehanizam za gore opisana poboljšanja kvalitete i učinkovitosti: kompresija poboljšava performanse u obje dimenzije oštrim povećanjem omjera signala i šuma svakog pojedinog odsječka.

Slika 5. Promjena u sastavu tokena po odsječku uslijed kompresije, u prosjeku kroz 1.000 upita. Udio ključnog sadržaja se povećava, uz odgovarajuća smanjenja u kategorijama sadržaja koji nije ključan.

Slika 6 ilustrira ovu promjenu za pojedinačni upit. Za upit „6 day old newborn milk intake per feeding” (Unos mlijeka novorođenčeta starog 6 dana po hranjenju), prikazujemo i nekompresirane, osnovne i kompresirane odsječke. Kompresija eliminira kategorije sadržaja koji nisu ključni i zadržava samo informacije o hranjenju povezane s novorođenčetom. Važno je napomenuti da kompresija uspješno eliminira sadržaj koji može biti općenito na temi za stranicu, ali je izvan teme za ovaj specifični upit usmjeren na novorođenčad.

Slika 6. Odsječci emitirani od strane osnovne linije bez kompresije (vrh) i kompresiranog stoga (dno) za primjer para upit-dokument. Kompresija zadržava samo prvih 19% osnovnog odsječka, odbacujući preostalih 81% kao irelevantno.

Zaključak

AI sustavi se oslanjaju na informacije s visokim signalom kako bi inteligentno i učinkovito poslužili korisničke zahtjeve. Te informacije moraju biti predstavljene što je kirurški preciznije moguće kako bi se maksimizirala relevantnost za svaki upit. Naši novi modeli kompresije svjesni upita čine upravo to maksimiziranjem dokaza na temu po odsječku i agresivnim uklanjanjem irelevantnih elemenata koji odvraćaju pažnju.

Implementacijom ovih novih modela unutar našeg stoga za pretraživanje, u mogućnosti smo pružiti brže i bolje odgovore onima koji se oslanjaju na naše proizvode i API-je. Naš pristup stvara jednostavnu kontrolnu površinu, dopuštajući našim sustavima i API korisnicima da prilagode stupanj kompresije kako bi uravnotežili odziv (recall), latenciju i trošak.

Kuriranje konteksta polje je u razvoju, i još je mnogo toga potrebno učiniti kako bi se optimizirala vrijednost svakog tokena koji se koristi unutar današnjih graničnih obavještajnih sustava. Aktivno radimo na tome da naše tehnike kuriranja konteksta učinimo još boljima kroz poboljšanja modela i arhitekturu sustava kako bismo ostvarili još širu primjenu tih modela.

Reference

N. Chirkova, T. Formal, V. Nikoulina, i S. Clinchant. Provence: Učinkovito i robusno obrezivanje konteksta za generiranje prošireno dohvaćanjem (Retrieval-Augmented Generation), 2025. Prihvaćeno na ICLR 2025. arXiv:2501.16214.

T. Do, D. P. Tran, A. Vo, S. K. Kim, i D. Kim. LooComp: Iskorštavanje strategije ostavi-jedno-van (Leave-One-Out) na transformatoru samo za kodere za učinkovitu kompresiju konteksta svjesnu upita, 2026. arXiv:2603.09222.

S. Eslami, M. Gaiduk, M. Krimmel, L. Milliken, B. Wang, i D. Bykov. Diffusion-Pretrained Dense and Contextual Embeddings, 2026. arXiv:2602.11151.

Z. Wang, J. Araki, Z. Jiang, M. R. Parvez, i G. Neubig. Učenje filtriranja konteksta za generiranje prošireno dohvaćanjem, 2023. arXiv:2311.08377.

Citiranje

BibTeX
@online{perplexity2026QueryAwareContextCompressionForBetterSnippets,
  author = {{Perplexity} and Bo Wang and Hao Zhang and Ismail Gadzhiev and Kirill Priemko and Markus Krimmel and Nandor Licker and Vitalii Polshkov and Sarah Eslami and Louis Milliken and Maksim Gaiduk and Nikita Kireev and Jerry Ma},
  title = {{Query-aware context compression for better snippets}},
  date = {2026-05-14},
  url = {https://perplexity.coolkeypoint.com/hub/blog/query-aware-context-compression-for-better-snippets}
}