Контекстуално вграждане отвъд златния пасаж

Нов метод за обучение, модел и бенчмарк за извличане на отговори и техния поддържащ контекст.

АвториPerplexity Research & turbopuffer

Въведение

Контекстуалните вграждания улавят значението на всеки пасаж или фрагмент в контекста на целия документ. Тяхното обучение и оценка обикновено предполагат един единствен релевантен фрагмент на заявка, известен като „златен пасаж“. Въпреки това на практика златен пасаж често не е достатъчен. Той може да съдържа отговора, но да му липсва поддържащият контекст, необходим за неговото разбиране или проверка, което го оставя двусмислен в изолация.

Представяме ви pplx-embed-v2-context-9b-preview, нашия нов модел за контекстуални вграждания. Моделът е обучен с нов подход, който използва модела за компресия на контекста на Perplexity като учител. Ние агрегираме неговите прогнози на ниво токен в оценки за релевантност на ниво фрагмент, учим модела за вграждане да извлича както фрагменти с отговори, така и поддържащ контекст, вместо един единствен златен фрагмент. Моделът произвежда по едно вграждане на фрагмент без допълнителни разходи за инференция и поддържа 1024-измерни и int8 вграждания.

Той постига водещи в бранша резултати в context-bench, нов бенчмарк за контекстуално осъзнато извличане, създаден и поддържан поверително от turbopuffer, и в ConTEB, широко използван публичен бенчмарк. Нашият модел е разработен независимо от context-bench и е оценен като сляпо подаване.

Context-bench се състои от 2099 заявки върху 38 894 дълги документа в 21 домейна и оценява три възможности на контекстуалните вграждания: документно разграничаване сред почти дублиращи се документи, извличане на златни фрагменти, чието значение зависи от далечен контекст, и извличане на поддържащите доказателства, необходими за проверка на отговор.

Предварителен преглед на модела е публично достъпен в Hugging Face. Бенчмаркът се поддържа поверително от turbopuffer с цел намаляване на риска от замърсяване при обучението и запазване на неговата стойност за измерване на напредъка. За да заявят оценка, моля, свържете се с turbopuffer на contextbench@turbopuffer.com.

Фигура 1: Answer@K, Document@K, Evidence Recall@K и All-Evidence@10 в context-bench, сравняващи Perplexity v2 preview 9B с Voyage Context 4, Voyage 4 Large и Perplexity context v1 4B.

Защо контекстът е от значение за извличането

Системите за извличане обикновено разделят дългите документи на по-малки фрагменти, които могат да бъдат индексирани и търсени независимо. Нарязването на фрагменти е удобно на практика, но то премахва контекста, в който първоначално се е появил всеки фрагмент, създавайки компромис между гранулярността на компресията на информацията и контекста, използван по време на кодирането. Даден фрагмент може да се отнася до въведен по-рано обект, да наследи значението си от заглавие на раздел или да разчита на дефиниции, намиращи се другаде в документа. Веднъж извлечен, той може вече да не съдържа достатъчно информация, за да бъде съпоставен надеждно със заявка. Кодирането на целия документ като единствен вектор не разрешава това, тъй като една обединена репрезентация не може вярно да улови всеки аспект на дълъг документ.

Моделите за контекстуални вграждания адресират това ограничение, като представят всеки фрагмент в контекста на неговото заобикалящо съдържание, най-често чрез късно нарязване на фрагменти (late chunking): документът се кодира в едно предаване и след това репрезентациите на фрагментите се обединяват, така че всеки вектор на фрагмент да се изчислява при пълен изглед към целия документ. Предишна работа, като ConTEB и нашия собствен pplx-embed-context-v1, показа, че контекстуализираните репрезентации на фрагменти съществено подобряват извличането в сравнение с независимо кодираните фрагменти, особено при дълги документи.

Ограниченията на супервизията със златни фрагменти

Обучението на модели за контекстуални вграждания изисква супервизия, която идентифицира кои части от документа са релевантни към дадена заявка. Често срещан подход са анотациите със златни фрагменти: за всяка заявка анотатор, обикновено голям езиков модел (LLM), идентифицира фрагмента от документа, който отговаря на нея.

Обучението обикновено комбинира две контрастивни загуби: контрастивна загуба на ниво документ, която противопоставя златния фрагмент на фрагменти от други документи, и контрастивна загуба в рамките на документа, която го противопоставя на останалите фрагменти в същия документ.

Този подход има няколко ограничения:

  1. Само един фрагмент е релевантен. Той третира всеки друг фрагмент в документа като негатив, включително тези с полезна поддържаща информация. Супервизията на ниво документ работи в другата крайност. Тя идентифицира документа като релевантен, без да уточнява кои фрагменти в него са от значение. На практика релевантността често се намира между тези крайности. Съдържащият отговор фрагмент може да завѝси от няколко поддържащи фрагмента, които въвеждат обект, разрешават препратка или предоставят допълващ факт, докато останалата част от документа е ирелевантна. Следователно моделът трябва да научи правилното ниво на селективност: по-широко от един златен фрагмент, но по-фокусирано от документа като цяло.
  2. Груба супервизия. Тъй като всяка анотация идентифицира един златен фрагмент, вместо да улавя степените на релевантност в целия документ, тя предоставя ограничени обучителни сигнали за количеството изчислителна мощ, вложена за създаването й.
  3. Скъпо за мащабиране. Всяка двойка за обучение изисква LLM да прочете документа и да избере релевантния фрагмент, така че цената на анотацията нараства линейно с размера на тренировъчния набор и ограничава колко големи и разнообразни могат да бъдат данните за обучение.
  4. Чувствителност към границите на фрагментите. Етикетите също са обвързани с границите на фрагментите, използвани по време на анотирането. Златен етикет, зададен на прозорец с фиксиран размер в токени, не указва кои по-къси изречения или по-дълги абзаци са релевантни. Промяната на стратегията за нарязване на фрагменти или обучението с множество нарязвания за подобряване на робастността спрямо начина на разделяне на документите в момента на индексиране може следователно да изисква повторно анотиране на корпуса.

Нов подход към контекстуалното обучение

Ние адресираме ограниченията на супервизията със златни фрагменти, като дестилираме преценки за релевантност от модел за компресия на контекста, съобразен със заявката. Този модел служи като учител: той чете заявката и документа съвместно и присвоява на всеки токен от документа оценка за релевантност. Неговите прогнози предлагат няколко предимства за обучение на контекстуални вграждания:

  1. Гъвкави граници на фрагментите. Оценките за релевантност на ниво токен могат да бъдат агрегирани върху произволно избрани граници на фрагменти, което позволява на едни и същи прогнози на учителя да супервизират различно нарязване на фрагменти без повторно анотиране.
  2. Непрекъсната релевантност. За разлика от бинарните етикети за златни фрагменти, учителят предоставя непрекъснати оценки, които улавят степени на релевантност, естествено отличаващи фрагментите с отговори, поддържащия контекст и ирелевантното съдържание.
  3. По-ниска цена за анотиране. Учителят е компактен и специализиран в оценяването на релевантността, което го прави много по-евтин за супервизиране в мащаб в сравнение с общоцелеви LLM.

Ние обучаваме нашия модел с претеглена сума от контрастивна загуба на ниво документ и загуба на дестилация на ниво фрагмент върху партиди от двойки заявка-документ. За всяка заявка сдвоеният документ служи като позитив, докато останалите документи в същата партида служат като негативи.

За всяка партида избираме на случаен принцип стратегия за нарязване на фрагменти, разделяме документите съответно и вкарваме разделителни токени между фрагментите. След това обработваме всеки документ в едно предаване и усредняваме репрезентациите на токените в рамките на всеки фрагмент, за да получим контекстуални вграждания на фрагментите. Заявките се кодират отделно, с усредняване на репрезентациите на техните токени. И накрая, изчисляваме косинусното сходство между всяко вграждане на заявка и всяко вграждане на фрагмент в партидата.

Функция на загубата

Контрастивна загуба на ниво документ

Въпреки че нашият модел за вграждане произвежда само сходства на ниво фрагмент, ние можем естествено да изведем сходства на ниво документ от тях. Ние считаме документ d за толкова релевантен към заявка q, колкото неговия най-релевантен фрагмент. Това правило за оценяване е вдъхновено от операцията MaxSim на ColBERT, приложена тук към фрагменти вместо към токени.

Специфично, дадена заявка q с вграждане q и документ d като подреден списък от фрагменти c с вграждания c, ние дефинираме сходството на ниво документ като:

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

Предвид тези сходства на ниво документ, можем да формулираме цел InfoNCE на ниво документ спрямо вътрешнопартийни негативи.

За заявка q нека d⁺ обозначава нейния релевантен документ, а 𝒟 – документите в партидата. Контрастивната загуба е следната, като пропускаме температурите за четливост:

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

Загуба на дестилация на ниво фрагмент

Контрастивната загуба учи модела кой документ е релевантен към дадена заявка. Загубата на дестилация го учи къде се намира релевантността в рамките на този документ, което е съществено за един контекстуален модел.

По време на обучението подаваме всяка позитивна двойка заявка-документ към нашия модел за компресия на контекста, който присвоява оценка за релевантност на всеки токен в документа. Както при оценяването на ниво документ, ние извеждаме релевантността на всеки фрагмент от неговото най-релевантно съдържание. За да намалим чувствителността към отклоняващи се токени, включително тези на границите на фрагментите, ние дефинираме релевантността на ниво фрагмент като средната стойност на топ n оценките на токените в рамките на фрагмента.

За всяка заявка прилагаме температурно мащабиран softmax към оценките за релевантност на ниво фрагмент на учителя в рамките на позитивния документ, за да получим целево разпределение. Фрагментите в другите документи в партидата получават целева вероятност нула. Ние обучаваме модела за вграждане да съответства на тази цел чрез минимизиране на дивергенцията на Кулбак-Лайблер (KL divergence) напред между целта и нейното предсказано разпределение за всички фрагменти в партидата:

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

Тук горните индекси T и S показват учителя и ученика, а rⱼ е оценката за релевантност на учителя за фрагмент cⱼ в позитивния документ d⁺. Целевото разпределение на учителя присвоява нулева вероятност на фрагментите във всички останали документи в партидата.

За разлика от един единствен етикет за златен фрагмент, тази цел улавя степени на релевантност. Поддържащите фрагменти получават тегло според оценките на учителя, вместо да бъдат третирани като негативи, което учи модела да извлича както поддържащ контекст, така и отговора.

Комбинирана загуба

Нашата комбинирана цел за обучение е претеглена сума от контрастивната загуба на ниво документ и загубата на дестилация на ниво фрагмент. Ние усредняваме тази претеглена загуба върху партидата от двойки заявка-документ.

Фигура 2 илюстрира нашия подход на обучение. Компресорът на контекста служи като учител само по време на обучението. По време на инференция моделът за вграждане произвежда по едно контекстуално вграждане на фрагмент, без допълнителен етап на компресия или прекласиране. Подходът подобрява начина, по който се усвояват контекстуалните вграждания, без да се увеличава съхранението в индекса или да се добавя латентност на модела-учител по време на извличане.

Фигура 2: Настройката за обучение на нашия модел. Контекстуалният енкодер (ученик, вляво) обработва документи, всеки от които се състои от няколко фрагмента. Всеки фрагмент е вграден спрямо заобикалящия го документен контекст. Заявката А е известно съвпадение за документ А и се оценява спрямо фрагментите на всички документи, за да се получат предсказани сходства. Тези оценки на ниво фрагмент са обединени чрез max-pooling до оценки на ниво документ. Ние обучаваме прогнозите на ниво фрагмент и прогнозите на ниво документ да съответстват на целевите разпределения (вляво). Целта на ниво фрагмент се изчислява по време на обучението като прогнозата на компресора на контекста в рамките на известния релевантен документ и се задава на нула в рамките на известните ирелевантни документи. Целевото разпределение на ниво документ е зададено да бъде one-hot върху известния релевантен документ.

Данни за обучение

Данните за обучение се състоят от около 430 публични и вътрешни набора от данни за заявки и документи, покриващи над 50 езика.

Ние конструираме вътрешни набори от данни с двойки от филтрирани за PII производствени данни и чрез синтезиране на релевантни заявки върху дълги документи. За всяко предаване напред избираме един набор от данни и вземаме цяла партида от него, за да увеличим трудността на вътрешнопартийните негативи и да избегнем ученето по пряк път. Никой от нашите набори от данни за обучение няма анотации на ниво фрагмент: цялата супервизия в рамките на документа идва от модела за компресия и нито една дата от ConTEB не се използва за обучение. Освен това по време на разработването на модела не бяха налични данни от context-bench.

Настройка за обучение

Моделът започва от вътрешен модел за извличане ColBERT с 9 милиарда параметъра и генерира 2048-измерни вграждания през слой с линейна проекция. Ние маркираме границите на фрагментите с научен <|chunk_sep|> токен и формираме всяко вграждане на фрагмент чрез средно аритметично на вгражданията на неговите токени. Заявките се кодират от същия модел, като вгражданията на техните токени са усреднени в един единствен вектор.

Ние използваме обучение Matryoshka за поддържане както на 1024-, така и на 2048-измерни вграждания, и обучение, съобразено с квантуването, за поддържане на нативни int8 вграждания. По време на обучението постепенно увеличаваме скоростта на учене, задържаме я постоянна, след което я намаляваме.

Публикуваният модел представлява микс от модели (model soup), който усреднява теглата на няколко контролни точки от едно и също обучение.

Нов бенчмарк за извличане на ниво фрагменти

Публичните бенчмаркове за контекстуално извличане като ConTEB споделят предположението зад супервизията със златни фрагменти: всяка заявка има един единствен релевантен фрагмент и моделът получава награда само за класирането на този фрагмент на първо място. Те също така наследяват неговите ограничения.

Първо, ConTEB тества извличането на задачи, при които фрагментът е двусмислен без заобикалящия го контекст. При тези задачи контекстуалните модели надминаха моделите, които кодират всеки фрагмент независимо. Въпреки това той не поставя въпроса дали моделът извежда на повърхността и другите части на документа, които правят фрагмента разбираем.

Второ, той не тества систематично дали правилният документ може да бъде намерен, когато почти идентични документи в същия корпус се различават само по контекста, който заобикаля иначе идентично изречение.

И двете възможности са от значение, когато търсещ агент или потребител трябва да разбере и провери отговор от няколко извлечени изречения, а не от цял документ. Затова създадохме context-bench – контролиран бенчмарк за извличане от дълги документи, проектиран да отличава използването на документен контекст от общото качество на извличане. Той тества дали контекстуалните вграждания използват информация от друго място в документа в подкрепа на три възможности:

  1. Документно разграничаване: Идентифициране на правилния документ сред почти идентични алтернативи.
  2. Извличане на отговор: Извличане на съдържащи отговор фрагменти, чието значение зависи от детайли другаде в документа.
  3. Извличане на доказателства: Извличане на поддържащи фрагменти, които изясняват или обосновават отговора.

Context-bench съдържа 2099 заявки и 38 894 документа. Използват се фрагменти с дължина на изречение, което води до общо 2 458 072 фрагмента. Заявките покриват 21 домейна, включително корпоративни отчети, клинични изследвания, пътувания, развлечения, образование, правителство, правни договори и софтуерна документация.

Всяка заявка е проектирана да тества една от дванадесетте контекстуални възможности. Основните целеви документи са умишлено дълги: 1061 от 1197 отделни основни целеви документа имат най-малко 200 изречения, с медианна дължина от около 6100 токена. Всяка заявка има точно един верен отговор в корпуса. Когато един и същ факт е посочен повече от веднъж в златен документ, например в обобщено изречение и ред от таблица, всяко от тези изречения се приема като отговор.

Маршрутът на отговора е една валидна комбинация от фрагмент с отговор и поддържащите доказателства, необходими за неговото тълкуване или проверка. В рамките на 2099 заявки, маршрутът на отговора за основния целеви документ има една група доказателства за 964 заявки, две за 735, три или повече за 332 и нито една за 68. Алтернативните валидни маршрути на отговора могат да изискват различни групи доказателства.

Таблица 1: Статистика на бенчмарка.

Статистика

Стойност

Заявки

2099

Документи

38 894

Фрагменти от изречения

2 458 072

Медианна дължина на основния целеви документ

6100 токена

Домейни

21

Групи доказателства на заявка (маршрут на отговора за основния целеви документ)

1: 964; 2: 735; 3+: 332; няма: 68

Таблица 2: Дванадесет контекстуални възможности, тествани от context-bench, с илюстративни примери.

Възможност

Примерна заявка

Фрагмент с отговор

Изискван документен контекст

1. Самоличност на обект

Колко е похарчил Northlake за обратно изкупуване на акции?

Компанията е изкупила обратно акции на стойност 12,8 милиарда долара.

Въведението определя Northlake като „компанията“. Подобен отчет за Southlake не е от значение.

2. Период или версия

Коя касета пасва на M40 ревизия B?

Инсталирайте касета KC-42.

Разделът за приложимост посочва, че тези инструкции обхващат ревизия B, а не ревизия C.

3. Дефиниции и псевдоними

Какъв процент на оттегляне имаше групата с 15 mg?

Zeta имаше процент на оттегляне от 12,7%.

Отчетът определя Zeta като групата с 15 mg. Без тази дефиниция фрагментът не идентифицира заявената група.

4. Структура на таблица

Какъв е капацитетът на батерията на модела Max?

Типичен капацитет: 4250 | 4700 | 5150.

Заглавната част на таблицата установява Mini | Base | Max, измерени в mAh. Следователно отговорът е 5150 mAh.

5. Условия и изключения

Колко време е гаранцията на батерията за търговска употреба?

Гаранцията на батерията трае 18 месеца.

Въведение в раздел ограничава тази гаранция до търговски инсталации; битовите инсталации имат различна гаранция.

6. Препратки и местоимения

Кога Мара стана заместник-кмет?

Тя встъпи в длъжност през 2021 г.

Предходният разказ установява, че „тя“ се отнася за Мара, а не за Елин, която също е обсъждана.

7. Ред и позиция в списък

Коя песен отвори биса?

14. Lantern Road.

Бележка на друго място посочва, че песните 14–16 са формирали биса. Следователно песен 14 е нейната откриваща песен.

8. Обхват на раздел

Кой обектив е използван за операторското майсторство на филма?

По време на целия филм е използван 35 mm фиксиран обектив.

Този пасаж принадлежи към „Основно снимане“, а не към отделния раздел за рекламни фотографии.

9. Приписване на изказване

Каква дата за отваряне обеща кметът?

Ще отворим отново на 12 юни.

Транскриптът определя кмета като говорещ. Същите думи от изпълнитетел не биха установили обещанието на кмета.

10. Промени във времето

Какъв срок за предизвестие се прилага след изменението от май?

Срокът за предизвестие вече е 45 дни.

Историята на измененията установява, че тази промяна е влязла в сила през май, като заменя по-ранното правило за 30 дни.

11. Причинно-следствени връзки

Защо спря западната помпа?

Тази повреда причини спирането.

Разследването определя „тази повреда“ като блокирал лагер в западната помпа и я отличава от несвързано запушване на входния отвор.

12. Преносно или междуезиково значение

Преносно:

Какво символизира „зимната стая“ в поемата?

Междуезиково:

Кой компонент казват френските инструкции на техника да премахне?

Преносно:

То представлява изгнание, а не физическа стая.

Междуезиково:

Retirez le capot. (Отстранете капака.)

Преносно:

Коментарът определя „това“ като повтарящия се образ на „зимната стая“ в поемата.

Междуезиково:

Речникът на ръководството уточнява, че „capot“ означава защитния капак на мотора, а не транспортния капак.

Документи и заявки

Заявките, документите и тестваните възможности са вдъхновени от разговори с клиенти на turbopuffer.

За да дадем един пример, нека разгледаме нуждите от търсене на фирма за управление на имоти. Тези фирми имат стотици, понякога хиляди договори за наем, които се различават само по имената на наемателите, датите и няколко други ключови детайли. Често срещана заявка за този набор от данни може да бъде „кога изтича наемът на 5 Park Avenue и какъв е текущият наем?“. Договорите за наем също могат да бъдат дълги и критичните разграничаващи компоненти, които биха потвърдили, че сте извлекли правилния документ (като дата, адрес, име на наемател и т.н.), често могат да бъдат много далеч от ключовото изречение с отговора, съдържащо сумата на месечния наем. На практика идентични изречения като „Месечният наем е $X,XXX.“ могат да се появят в много документи в корпуса.

Добрият модел за контекстуални вграждания трябва да използва контекст от целия документ, за да идентифицира правилния документ и да извлече едновременно отговора и неговите поддържащи изречения. Това позволява на потребител или търсещ агент бързо да провери отговора и да потвърди, че той идва от правилния документ.

Етикети за отговор и доказателства

За всяка заявка ние етикетираме изречения за „отговор“ и „доказателства“ в целевия документ. Един модел преминава нашия тест за „достатъчност за читателя“, ако извлече изречение с отговор заедно с поне едно изречение от всяка група доказателства. Заедно тези изречения предоставят достатъчно контекст за читателя да провери отговора с поддържащи доказателства.

Когато моделите за контекстуални вграждания правят това добре, те могат драстично да намалят броя на токените, които търсещите агенти трябва да прегледат, както и да улеснят много човек бързо да потвърди, че е намерил правилния отговор на първоначалната си заявка, без да се налага да чете целия документ.

Всяка група доказателства трябва да бъде възстановена, но всяка една от алтернативите на дадена група е достатъчна за нейното възстановяване. Често се среща един и същ факт да е посочен на няколко места в тези дълги документи. Извличането само на едно изречение от всяка група доказателства отговаря на критериите за достатъчност за читателя и като такова би било прието като перфектно извличане на доказателства.

Метрики

Всеки документ е разделен на фрагменти с размер на изречение, като за всички модели се използват едни и същи граници. Тестват се две условия за неконтекстуални модели за вграждане: едно, при което всяко изречение е вградено независимо, и друго, при което целият документ е вграден като единствен фрагмент.

Ние използваме условието на ниво изречение за измерване на извличането на отговори и извличането на доказателства. То тества дали неконтекстуален модел може да идентифицира правилния отговор и поддържащите доказателства, когато всяко изречение е вградено без достъп до заобикалящия го документ. Това е умишлено предизвикателство. При много заявки самото изречение с отговор няма детайлите, необходими за отличаването му от подобни изречения другаде в корпуса.

Ние използваме условието на ниво документ като базова линия за извличане на документи. То тества дали фино зърнестите вграждания на изречения осигуряват достатъчна полза при извличане, за да оправдаят допълнителните си разходи за съхранение спрямо съхранението на един вектор за документ. Индексът на ниво изречение създава съществено повече вектори от индекса на ниво документ, така че той трябва да надмисне базовата линия от един вектор за документ, за да оправдае този разход.

Всички оценки използват изчерпателни класирания спрямо всички 2 458 072 фрагмента. Поради това разликите между моделите отразяват репрезентациите, а не конфигурацията на индекса. Ние се фокусираме върху три ключови метрики:

Document@K се дефинира като:

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

където d∗d^{*} е документът с най-висок ранг в DqD_q.

Answer@K се дефинира като:

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

където CK(q)C_K(q) са първите KK фрагмента от целия корпус и AqA_{q} е наборът от приети фрагменти с отговори.

Evidence Recall@K се измерва в рамките на d∗d^{*} по следния начин: Класирайте изреченията на d∗d^{*} по сходство, премахнете изречението с отговор с най-висок ранг и нека RK(q)R_K(q) са топ KK, които остават. За групи доказателства Gq={g1,…,gm}G_q=\{g_1,\ldots,g_m\}, група gjg_j се възстановява, ако някаква алтернатива E∈gjE\in g_j задоволява E⊆RK(q)E\subseteq R_K(q), и

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 задава въпроса дали контекстуализацията позволява на правилния документ да победи съседни документи и дистрактори, които споделят неговия речник.

Answer@K задава въпроса дали самото изречение с отговор се класира сред топ фрагментите.

Evidence Recall@K задава въпроса каква част от поддържащия контекст е възстановена сред топ K фрагментите на правилния документ, след изключване на фрагмента с отговор с най-висок ранг. Премахването на отговора предпазва извличането на доказателства от двойно отчитане на това, което Answer@K вече измерва, и оставя всички слотове KK за поддържащ контекст. Изискването златният документ да бъде в топ 10 на извлечените документи означава, че никой модел не получава кредити за доказателства за документ, който не би извел на повърхността. Ние също така докладваме All-Evidence@K – фракцията от заявки с възстановена всяка група.

Заедно тези метрики декомпозират предизвикателствата, пред които са изправени моделите за контекстуални вграждания: намиране на правилния документ, намиране на правилния отговор и възстановяване на минималния контекст, който показва защо отговорът е верен.

Фигура 3 илюстрира метриките с примера за управление на имоти.

Фигура 3: Метрики на context-bench, илюстрирани със заявка за наем. Document@K тества извличането на правилния документ; Answer@K тества извличането на неговия фрагмент с отговор; Evidence Recall@K измерва възстановяването на групи поддържащи доказателства в рамките на целевия документ. В този пример проверката на наема изисква доказателства както за адреса, така и за годината на наема. Извличането на доказателства изключва топ фрагмента с отговор и изисква целевият документ да се класира в топ 10.

Резултати от оценката

Ние оценяваме нашия модел спрямо контекстуални и неконтекстуални модели за вграждане по четири направления.

Нашите контекстуални базови линии са pplx-embed-context-v1-4B и voyage-context-4. Нашите неконтекстуални базови линии са voyage-4-large и Nemotron-3-Embed-8B-BF16 на NVIDIA, които кодират фрагментите независимо. Наборът от базови линии варира според експеримента, както е посочено във всяка фигура.

Започваме с context-bench, който директно тества възможностите, мотивиращи тази работа, и след това докладваме резултатите за ConTEB, стандартния публичен бенчмарк за контекстуални вграждания. За да проверим дали тези печалби не са за сметка на общото качество на извличане, ние оценяваме и домейн-специфични бенчмаркове за извличане на документи и фрагменти, които изградихме от публични набори от данни. И накрая, разглеждаме две практични свойства за внедряване: качество на извличане спрямо разходи за съхранение на вектор и чувствителност към размера на фрагмента, използван по време на индексиране. Всички оценки кодират документи с до 32 768 токена в едно предаване.

Context-bench

Както е показано на Фигура 1 във въведението, нашият предварителен преглед води по Answer@K и Evidence Recall@K при всяка докладвана граница, както и по All-Evidence@10. При K = 10 той постига 45,5% припомняне на отговори, 40,6% припомняне на доказателства и 31,1% припомняне на всички доказателства. Той също така води по Document@1 и Document@10, достигайки съответно 15,2% и 61,6%. При K = 10 нашият предварителен преглед надминава voyage-context-4 с 14,4 процентни пункта при припомнянето на отговори и 5,0 пункта при припомнянето на доказателства.

ConTEB

Нашият предварителен модел постига най-високо средно nDCG@10 сред моделите, показани на ConTEB на Фигура 4. Той не води във всяка задача: pplx-context-v1-4B има по-висок резултат на NarrativeQA, докато Nemotron-3-8B има най-висок резултат на COVID-QA. Както основните автори също посочиха в статията за ConTEB, COVID-QA включва предимно двойки заявка-фрагмент, които са силно извличащи и могат да бъдат задоволени с просто повърхностно лексикално съвпадение по технически медицински термини. В резултат на това разбирането на контекста е по-малко полезно за тази задача и неконтекстуалните модели обикновено надминават контекстуалните.

Фигура 4: nDCG@10 на ниво задача в ConTEB в настройката заявка към фрагмент. Средната стойност е неутегленото средно аритметично за осемте задачи.

Общо качество на извличане по домейни

Отвъд бенчмарковете, проектирани за контекстуални вграждания, ние оценяваме специфичното за домейна представяне на нашия модел.

Нашият пакет за заявка към фрагмент (Q2C) използва задачи на MTEB като LegalBench и FinanceBench заедно с допълнителни задачи за извличане, които подбрахме от публични набори от данни. В рамките на всеки релевантен документ даден фрагмент се етикетира като релевантен, ако съдържа точния обхват на отговора, когато задачата предоставя такъв, а в противен случай – чрез LLM, преценяваща неговата релевантност към заявката. Пакетът за заявка към документ (Q2D) използва същите задачи и оценява дали релевантният документ е извлечен.

Нашият модел постига най-висок среден резултат при извличане на фрагменти на Фигура 5 и води в правния, техническия и здравния домейн. Той не води във всеки домейн: voyage-context-4 постига по-висок резултат във финансите и многоезичното извличане, а Nemotron-3-8B има най-висок резултат при извличането от разговори. При извличането на документи на Фигура 6 нашият модел има средно малко по-нисък резултат от voyage-context-4, докато води в техническия домейн. Базовата линия pplx-context-v1-4B има по-нисък среден резултат и в двата пакета, което е съгласувано с факта, че е била обучена само върху тренировъчния набор на ConTEB, показвайки, че супервизията, обвързана със златните фрагменти на един бенчмарк, се пренася слабо към други домейни.

Фигура 5: Среден nDCG@10 за задачите заявка към фрагмент (Q2C), грутирани по домейн. Домейнните ленти са неутеглени средни аритметични на резултатите на ниво задача в този домейн; общата средна стойност е неутеглено средно аритметично за всички показни задачи.
Фигура 6: Среден резултат от извличане за задачите заявка към документ (Q2D), грутирани по домейн. Всяка лента в даден домейн е неутегленото средно аритметично на основните й резултати на ниво задача; общата средна стойност е неутеглено средно аритметично за всички показни задачи.

Качество на извличане и разходи за съхранение

Моделът за контекстуални вграждания произвежда по един вектор на фрагмент, така че индекс, изграден с нашия модел, съдържа точно толкова вектори, колкото конвенционалният индекс на ниво фрагменти със същата стратегия за нарязване. Контекстуализацията променя това, което кодира всеки вектор, а не колко вектори се съхраняват. Следователно отпечатъкът за съхранение се определя от размера на всеки вектор. Моделът предлага два начина за неговото намаляване: съкращаване на вграждането от 2048 до 1024 измерения и квантуването му до int8.

Фигура 7 показва благоприятен компромис между качеството на извличане и съхранението на вектори. При 1024 измерения нашите int8 вграждания използват 1 KB на вектор, като същевременно леко надвишават резултата за извличане на фрагменти на voyage-context-4 при 2048 измерения във float32, който използва 8 KB на вектор. Увеличаването на размера на нашето вграждане до 2048 измерения повишава допълнително качеството на извличане при 2 KB на вектор. Тези данни за съхранение се отнасят само за самите вектори, а не за останалата част от индекса.

Фигура 7: Качество на извличане на фрагменти (среден nDCG@10) като функция на съхранението на вектор. Плътните линии обозначават float32, а прекъснатите линии обозначават int8; етикетите указват измерението на вграждането.

Чувствителност към размера на фрагмента

Фигура 8 показва само умерена промяна в качеството на извличане при увеличаване на размера на фрагмента от 64 на 512 токена: средният резултат спада от 81,0% на 79,9%, което е намаление с 1,1 процентни пункта. Това предполага, че моделът остава ефективен при тестваните размери на фрагментите, давайки на индексиращите пайплайни гъвкавост в начина на разделяне на документите.

Фигура 8: Чувствителност на нашия модел към размера на фрагмента. Всяка точка е неутегленото средно nDCG@10 за 74 задачи на MTEB, като документите са индексирани при дадения размер на фрагмента.

Публикуване

turbopuffer поддържа пълния корпус, заявките и етикетите на context-bench поверителни и докладва резултатите за подадените модели. Публичният бенчмарк от този вид предполага директно обучение върху неговите заявки и документи, което постепенно би го наситило и би ерозирало стойността му за проследяване на напредъка във времето. Ако желаете вашият модел да бъде оценен на бенчмарка, моля, свържете се с turbopuffer на contextbench@turbopuffer.com.

Предварителен преглед на нашия модел е достъпен в Hugging Face, и всички резултати в тази публикация са докладвани за този предварителен преглед. Работим по предоставянето на модела чрез Perplexity API и по по-нататъшно подобряване на извличането от дълги документи заедно с turbopuffer.

Цитиране

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