Kompresija konteksta svesna upita za bolje isečke
Unapređenje granice kvaliteta i efikasnosti konteksta modela pomoću modela kompresije konteksta svesnih upita.
Svaki odgovor počinje dokazima. U sistemu za pretragu ovi dokazi obično potiču iz dokumenata: naslova, rezimea, isečaka i delova teksta koji se prosleđuju kao kontekst modelu za odgovore ili agentu.
Ovaj sirovi kontekst je bučan. Na primer, veb stranica može sadržati informacije potrebne za korisnikov zahtev, ali može sadržati i distraktore. Ovi distraktor se mogu pojaviti kako u glavnom telu teksta tako i u sporednim elementima, kao što su elementi tekstualne navigacije, irelevantni oglasi, metapodaci i drugo. Prosleđivanje ovih distraktora daljem agentu stvara tri problema.
Prvo, narušava tačnost. Čak i najmoćniji modeli imaju konačan kapacitet. Dugi nizovi irelevantnih informacija troše kapacitet modela, što rezultira „truljenjem konteksta“ koje narušava sposobnost modela da obradi stvarni korisnički zahtev. Kao rezultat toga, konačni odgovor će verovatnije propustiti ključne činjenice, dati preveliku težinu informacijama lošeg kvaliteta ili proizvesti tvrdnje koje je teže utemeljiti na izvoru.
Drugo, pogoršava kašnjenje. Duži kontekst znači više tokena koje model u nastavku mora da obradi, posebno kada upit zahteva dokaze sa mnogih stranica kandidata. Iako se deo ovog troška kašnjenja snosi u fazi prethodnog popunjavanja, znatno veći trošak se plaća u zaključivanju, pri čemu modeli zahtevaju više tokena za zaključivanje da bi se izborili sa irelevantnim kontekstom.
Treće, povećava troškove. Svaki nepotrebni token prosleđen modelu čini obradu korisničkog zahteva skupljom, pošto se upotreba i ulaznih tokena i tokena za zaključivanje povećava sa bučnijim kontekstom. Distraktori ne umanjuju samo kvalitet; oni na kraju primoravaju da se plati više za taj lošiji kvalitet.
Da bismo istovremeno unapredili tačnost, brzinu i isplativost u svim aplikacijama kompanije Perplexity i na API platformi, mnogo ulažemo u poboljšanje preciznosti konteksta. Jedan od načina na koji to činimo jeste usavršavanje naših algoritama za generisanje isečaka. Generisanje isečaka tretiramo kao problem kompresije konteksta. Modeli koji traže specifične informacije nemaju koristi od generalizovanih rezimea ili odlomaka iz dokumenta. Umesto toga, njima je potreban najmanji, najpreciznije izvučeni deo izvornih informacija kako bi odgovorili na korisnikov zahtev. Sve ostalo može i mora biti uklonjeno.
Dobar isečak bi stoga trebalo da radi tri stvari:
Promoviše tačnost predstavljanjem preciznih dokaza potrebnih za utemeljenje odgovora modela.
Smanjuje kašnjenje i troškove uklanjanjem irelevantnog konteksta pre poziva jezičkom modelu (LLM).
Obezbeđuje sledljivost očuvanjem vernosti citata i zadržavanjem izvornog teksta u originalnom obliku.
Ovog meseca smo primenili novi, najsavremeniji generator isečaka u našim aplikacijama i na API platformi. Jezgro ovog modula je model kompresije konteksta svestan upita koji za svaki upit i rezultat kandidata odlučuje koji podskup opsega treba sačuvati. Ovaj članak opisuje naš pristup izgradnji i obuci modela radi postizanja vrhunskih performansi u ovom kritičnom zadatku.
Isečci kao kompresija svesna upita
Prvi zadatak je da se definiše sam zadatak. šta želimo da ovaj model radi i kako treba da definišemo ulaznu i izlaznu šemu?
Metode za isečke spadaju u dve šire porodice. Prva je zasnovana na izboru: pronađite relevantan prozor, blok, rečenicu ili odlomak i prosledite ga dalje. Druga je zasnovana na generisanju: zatražite od modela da napiše rezime stranice fokusiran na upit.
Naš fokus na tačnost, kašnjenje i troškove čini izbor dizajna jasnim. Možemo isključiti generisanje, pošto kreiranje novog rezimea za svaku stranicu narušava performanse u sva tri fokusna polja. Rezimiranje se loše uklapa u sloj dokaza koji nam je važan. Ono može parafrazirati izvor, što otežava usklađivanje citata. Takođe može uneti formulacije koje nisu bile prisutne na stranici, što je rizično kada se isečak koristi kao dokaz, a ne kao konačan odgovor. Uključeno kašnjenje i troškovi čine generisanje još neprihvatljivijim.
Umesto toga, naš zadatak definišemo kao ekstraktivnu kompresiju svesnu upita: odvajanje korisnih delova preuzetog konteksta od delova koji skreću pažnju. Preciznije, naš model mora da prihvati upit i rezultat kandidata, te da odluči koje opsege da sačuva, one koji najbolje podržavaju upit, a koje da odbaci, ostatak. Izlazni podaci modela čuvaju izvorni tekst umesto da ga ponovo pišu. To čini rezultat lakšim za citiranje, lakšim za proveru i jeftinijim za prosleđivanje.
Na primer, razmotrite ovaj upit i preuzeti rezultat:
Pouzdan izlaz modela bio bi izbor podebljane rečenice: „U sistemu Comet, asistent može ...“.
Naš pristup prati istu širu ideju kao i prethodni rad na kompresiji konteksta, kao što su FliCo, Provence i LooComp, prilagođen za generisanje isečaka u produkcionom sistemu pretrage. Važno je napomenuti da model funkcioniše kao faza preciznosti nakon naše faze sirovog preuzimanja. Kao što je razmatrano u našem prethodnom članku istraživačkog tima Perplexity, Predstavljanje API-ja za pretragu Perplexity, mi projektujemo naše sisteme pretrage tako da funkcionišu nativno na nivou pod-dokumenata ili isečaka, što nam već omogućava da prilično dobro uskladimo preciznost i odziv. Uvođenje modela kompresije konteksta svesnog upita pomera Paretovu granicu preciznosti i odziva još više ka spolja.
Izgradnja i obuka modela kompresije konteksta
Razvijamo naš model imajući na umu tri glavna razmatranja: zajedničko razumevanje upita i konteksta, fino zrnastu selekciju na nivou rečenica i efikasnost kako bi se uklopio u izuzetno uske okvire kašnjenja.
Arhitektura modela
Kao osnovu koristimo pplx-diffusion model. To je ista porodica modela koja stoji iza pplx-embed-v1, i naš prethodni akademski rad, Gustа i kontekstualna ugrađivanja prethodno obučena difuzijom, kao i naši produkcioni referentni testovi potvrđuju da je reč o snažnom dvosmernom enkoderu za parove upita i konteksta. Jedno od ključnih svojstava ove porodice modela jeste dvosmerni kontekst: svaka reprezentacija tokena može da obuhvati ceo upit i ceo kontekst kandidata pre nego što model odluči šta treba zadržati.
Na vrhu ove osnove obučavamo laganu glavu za kompresiju koja predviđa koji delovi konteksta treba da budu zadržani. Pošto nema generisanja, ova predviđanja se vrše paralelno u celom kontekstu. U vreme posluživanja, mehanizam za isečke agregira ova predviđanja na nivou rečenice, primenjuje prag i skraćuje rezultat do traženog budžeta tokena.
Glavni cevovod za nadgledanje
Obuka ovog kompresora zahteva nadzor na odgovarajućem nivou granularnosti. Oznaka relevantnosti na nivou dokumenta očigledno nije pogodna za naš zadatak ekstraktivne kompresije. Da bismo generisali dovoljno granularne podatke za mašinsko učenje uz nadzor, izgradili smo cevovod za označavanje opsega koji označava opsege dokaza relevantne za upit, zajedno sa opsezima distraktora koje treba ukloniti.
Naš cevovod koristi postavku u kojoj je jezički model u ulozi sudije (LLM-as-a-judge). S obzirom na korisnički upit i veb-stranicu kandidata sa njenom vezom, naslovom i rezimeom, sudija najpre vrši razumevanje upita, analizirajući upit i dajući listu mogućih korisničkih namera. Oslanjajući se na ove namere, sudija zatim obrađuje kontekst kandidata i vraća opsege kopirane od reči do reči iz teksta, sa kategorijom za svaki opseg kako bi se oznake lakše pregledale.
Zatim smo vratili vraćene opsege u izvorni tekst. Bez iznenađenja, većina izlaza sudije već je bila tačna kopija: jednostavno uparivanje niski oporavilo je 98% opsega. Dodavanje jednostavnog koraka uparivanja zasnovanog na regularnim izrazima podiglo je oporavak opsega na 100%. To nam je dalo pouzdane, granularne opsege koji su mogli da se konvertuju u nadzor zadržavanja/odbacivanja na nivou tokena.
Ocenili smo ovaj cevovod za nadgledanje koristeći mali kurirani skup podataka sa ručno označenim opsezima, upoređujući manje modele sudija, različite upite i različite konfiguracije koraka. Postavka sa najboljim performansama bila je dvostepeni cevovod: najpre razumevanje upita, praćeno kategorizovanim označavanjem opsega. Takođe smo potvrdili skup izvučenih opsega kroz naknadne proverljive procene kao što su BrowseComp i SimpleQA, gde je upotreba samo sačuvanih opsega dokaza očuvala visoke rezultate uz značajno smanjenje ulaznih tokena.
Koristeći ovaj cevovod, označili smo 750 hiljada parova upit-dokument i koristili dobijene opsege za obuku glave za kompresiju pomoću binarne unakrsne entropije. Ovaj proces omogućava našem modelu kompresije svesnom upita da sačuva izvorni tekst netaknutim uz uklanjanje konteksta za koji je malo verovatno da će pomoći modelu u nastavku da odgovori na korisnikov zahtev.
Obezbeđivanje kašnjenja u realnom vremenu
Kompresija konteksta se nalazi pre modela u nastavku, što je čini blokirajućom operacijom. Štaviše, svaka kompresija zavisi od upita. Stoga, onlajn putanja mora da oceni parove upit-kontekst za svaki dokument kandidata unutar strogog okvira kašnjenja. Spor model kompresije je samouništavajući, pošto se prednosti u pogledu kašnjenja proistekle iz veće preciznosti brišu samim kašnjenjem kompresije. Istovremeno, manje inteligentan model kompresije donosi lošije odluke o tome šta treba iseći, a šta zadržati.
Praktično pitanje je koliko kapaciteta modela možemo bezbedno da uklonimo pre nego što kvalitet kompresije počne da opada. Upoređujemo punu pplx-difuzionu osnovu sa 28 slojeva sa varijantama od 11 i 17 slojeva proizvedenim uklanjanjem slojeva i usmerenim na putanju pretrage. Za svaku od njih prelazimo preko praga kompresije i merimo dve veličine: prosečan broj tokena konteksta poslatjih nadole po upitu i udeo korisnih dokaza sačuvanih nakon kompresije.
Slika 2 prikazuje granicu kvaliteta i efikasnosti. Model je bolji kada se pomera ka gornjem levom uglu: manje tokena u nastavku sa više sačuvanih korisnih dokaza. Model sa 28 slojeva obezbeđuje referentnu vrednost kvaliteta. Model sa 11 slojeva pokazuje rizike suviše agresivne kompresije modela. Skraćeni model sa 17 slojeva predstavlja sredinu: on blisko prati model sa 28 slojeva u zasićenom režimu, ali se otvara mali jaz u strmom delu krive gde funkcioniše većina produkcionog saobraćaja.
Da bismo zatvorili taj jaz, primenjujemo destilaciju znanja na nivou tokena. Naš pristup je uobičajen: proširujemo standardni gubitak terminom meke unakrsne entropije na predviđanjima modela nastavnika, ponderisanim koeficijentom destilacije. Ovo je dovoljno da model učenika dovede do parnosti, omogućavajući nam da u potpunosti pređemo na destilovani model sa 17 slojeva u produkciji. Ovaj novi produkcioni model donosi smanjenje kašnjenja u zaključivanju za 35-40% i smanjenje ukupnog GPU izračunavanja za 40-45% bez pada kvaliteta u odnosu na nastavnika sa 28 slojeva. Produkciono kašnjenje iznosi ispod 20 ms (p99): dovoljno malo da se doda u putanju posluživanja uz istovremeno veliko smanjenje ukupnog broja tokena prosleđenih modelu za odgovore.
Kvalitet i efikasnost tokena
Koristimo Perplexity API za agente kao poligon za testiranje efektivnosti kompresije konteksta. Ocenjujemo tri unapred podešene postavke API-ja za agente:
„Niska“ unapred podešena vrednost konteksta koja ograničava budžet tokena za svaki skup rezultata na 1000 tokena.
„Srednja“ unapred podešena vrednost konteksta koja ograničava budžet tokena za svaki skup rezultata na 4000 tokena.
„Visoka“ unapred podešena vrednost konteksta koja ograničava budžet tokena za svaki skup rezultata na 10000 tokena.
I standardne postavke (bez kompresije) i postavke sa kompresijom su konfigurisane tako da poštuju ove budžete tokena.
Višestepena pretraga posredstvom agenata (BrowseComp)
Najpre ispitujemo uticaj kompresije na višestepene radne tokove pretrage posredstvom agenata na BrowseComp referentnom testu. Ovu procenu vršimo pomoću našeg open-source alata search_evals. Ocenjivanje je identično u svim pokretanjima, koristeći OpenAI kanonski BrowseComp LLM prompt za sudiju.
Dve dimenzije od interesa jesu tačnost referentnog testa i potrošnja tokena. Važno je napomenuti da potrošnju tokena merimo na nivou upita, a ne na nivou pojedinačnih koraka, kako bismo izmerili stvarno opterećenje tokenima nastalo tokom životnog ciklusa zahteva. Slika 3 prikazuje granicu „rezultat-token“, odnosno odnos ocene tačnosti i potrošnje tokena.
Kompresija donosi novu Paretovu granicu u celosti. Za svaku postavku, uvođenje kompresije smanjuje potrošnju tokena na nivou upita za bilo gde između 10% i 70%, uz dobitke u tačnosti koji se kreću između 4 i 4,81 procentnih poena. Uvođenje kompresije omogućava čak i našoj „niskoj“ postavci da nadmaši „visoku“ postavku bez kompresije, i to uz smanjenje potrošnje tokena za više od tri puta.
Zapažamo da sa kompresijom „visoka“ postavka donosi veću tačnost nego „srednja“, kao što bismo i očekivali. Međutim, zanimljivo je da se to postiže uz manju potrošnju tokena. Ovo otkriva suptilan, ali važan efekat kompresije: uz kompresiju, čak i povećanje veličine konteksta po koraku može omogućiti modelu da preduzme manje koraka kako bi došao do tačnog rezultata. Istraživanje ove nemonotonosti predstavlja obećavajući pravac za budući rad.
SimpleQA: jednostepena činjeničnost
BrowseComp stavlja akcenat na višestepeno istraživanje, pa ipak mnogi produkcioni radni tokovi uključuju jednostepenu proveru činjenica. Da bismo utvrdili da li kompresija takođe pomaže u jednostepenom režimu, ispitujemo i performanse na testu SimpleQA, referentnom testu koji obuhvata 4.326 pitanja na koja treba odgovoriti u jednom koraku pretrage, umesto u petlji agenta.
Kao i pre, crtamo odnos tačnosti i prosečnog ukupnog broja tokena po zadatku koristeći kanonski prompt sudije. Slika 4 prikazuje granicu rezultata i tokena u ovom jednostepenom okruženju. Iako su efekti kompresovaniji u jednostepenom okruženju, ponovo zapažamo da kompresija istovremeno poboljšava tačnost i efikasnost u svim podešenim postavkama, uvodeći tako novu Paretovu granicu. Sa omogućenom kompresijom, srednja postavka postiže tačnost od 95% sa prosekom od samo 200 tokena po dokumentu. S obzirom na prosečnu dužinu dokumenta od preko 10.000 tokena, ovo predstavlja performanse na nivou graničnih vrednosti uz odnos kompresije veći od 50.
Šta na kraju dospeva u isečke?
Dobici u nastavku u odeljcima 4.1 i 4.2 su krajnji. Da bismo razumeli kako kompresija menja pojedinačne isečke, pokrećemo zasebnu procenu koja koristi LLM sudiju za klasifikaciju svakog tokena svakog preuzetog isečka u jednu od šest kategorija:
Ključno: dokazi neophodni za odgovor na korisnikov upit.
Sporedno (off-topic): informacije koje mogu biti korisne za neku drugu svrhu, ali se ne odnose na aktuelni upit.
Oglasi: irelevantno oglašavanje koje odvraća pažnju od davanja odgovora na korisnikov upit.
Metapodaci: metapodaci o sadržaju dokumenta.
Interfejs i navigacija (UI & navigation): elementi za prikaz na grafičkom interfejsu i navigaciju.
Duplikat: ponavljanje prethodno ugrađenih informacija.
Naša procena se pokreće na 1.000 upita iz različitih domena iz našeg skupa za validaciju, upoređujući produkcioni stak sa inače identičnom osnovnom linijom kod koje je kompresija isključena. Kao što je prikazano na slici 5, kompresija povećava udeo ključnih tokena po isečku za prosečno 63% u odnosu na osnovnu liniju bez kompresije. Zapažamo odgovarajuće smanjenje od 29% kod irelevantnih tokena, sa posebno strmim padom kod interfejsa/navigacije (-58%), metapodataka (-46%) i oglasa (-43%). Ovi rezultati potvrđuju mehanizam za poboljšanja kvaliteta i efikasnosti o kojima je bilo reči iznad: kompresija poboljšava performanse u obe dimenzije oštrim povećanjem odnosa signala i šuma svakog pojedinačnog isečka.
Slika 6 ilustruje ovu promene za pojedinačni upit. Za upit „unos mleka novorođenčeta starog 6 dana po hranjenju“, prikazujemo i nekompresovane i kompresovane isečke osnovne linije. Kompresija eliminiše kategorije sadržaja koji nisu ključni i zadržava samo informacije o hranjenju povezane sa novorođenčetom. Važno je napomenuti da kompresija uspešno eliminiše sadržaj koji može biti uglavnom relevantan za stranicu, ali irelevantan za ovaj specifični upit fokusiran na novorođenčad.
Zaključak
Sistemi veštačke inteligencije se oslanjaju na informacije sa jakim signalom kako bi inteligentno i efikasno odgovorili na korisničke zahteve. Ove informacije moraju biti predstavljene što je moguće preciznije kako bi se maksimalno povećala relevantnost za svaki upit. Naši novi modeli kompresije svesni upita rade upravo to maksimiziranjem dokaza vezanih za temu po isečku i agresivnim uklanjanjem irelevantnih distraktora.
Primenom ovih novih modela u našem staku pretrage, u mogućnosti smo da obezbedimo brže i bolje odgovore onima koji se oslanjaju na naše proizvode i API interfejse. Naš pristup stvara jednostavnu kontrolnu površinu, omogućavajući našim sistemima i korisnicima API-ja da prilagode stepen kompresije kako bi izbalansirali opoziv, kašnjenje i troškove.
Katedra za kontekst je oblast u razvoju, i još mnogo toga treba uraditi kako bi se optimizovala vrednost svakog tokena koji se koristi unutar današnjih graničnih sistema inteligencije. Aktivno radimo na tome da naše tehnike uređivanja konteksta učinimo još boljim kroz poboljšanja modela i sistemsku arhitekturu, kako bismo omogućili još širu upotrebu ovih modela.
Reference
N. Chirkova, T. Formal, V. Nikoulina, and S. Clinchant. Provence: Efikasno i robusno orezivanje konteksta za generisanje prošireno pretragom, 2025. Prihvaćeno na ICLR 2025. arXiv:2501.16214.
T. Do, D. P. Tran, A. Vo, S. K. Kim, and D. Kim. LooComp: Iskorišćavanje strategije ostavljanja jednog izvan za transformator samo za enkodere radi efikasne kompresije konteksta svesne upita, 2026. arXiv:2603.09222.
S. Eslami, M. Gaiduk, M. Krimmel, L. Milliken, B. Wang, and D. Bykov. Gusta i kontekstualna ugrađivanja prethodno obučena difuzijom, 2026. arXiv:2602.11151.
Z. Wang, J. Araki, Z. Jiang, M. R. Parvez, and G. Neubig. Učenje filtriranja konteksta za generisanje prošireno pretragom, 2023. arXiv:2311.08377.
Citiranje
@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://www.perplexity.ai/hub/blog/query-aware-context-compression-for-better-snippets}
}