Perplexity випускає pplx-embed-v2-context-9b-preview: контекстну embedding-модель, яка витягує відповіді та докази на їхню підтримку
Perplexity Research і turbopuffer випустили pplx-embed-v2-context-9b-preview — модель контекстуальних ембедингів для RAG-конвеєрів. Кожен фрагмент кодується з урахуванням усього документа. Справжня зміна полягає в сигналі навчання. Модель навчається знаходити відповідь разом із контекстом, необхідним для її перевірки, а не один «еталонний фрагмент». P
Чи придатна вона для розгортання? Так, як попередня версія для самостійного хостингу. Ваги доступні на Hugging Face за ліцензією MIT. Для завантаження потрібен transformers>=5.4.0 із trust_remote_code=True. Поки що модель недоступна в API Perplexity. У картці моделі зазначено, що ваги та інтерфейс можуть змінюватися без зворотної сумісності.
Чому еталонний фрагмент не працює належним чином
RAG-системи розділяють довгі документи на фрагменти. Фрагмент часто залежить від сутності, заголовка або визначення, наведеного в іншому місці. Контекстуальні моделі розв’язують цю проблему за допомогою відкладеного фрагментування. Документ кодується за один прохід, після чого для кожного фрагмента виконується пулинг.
Однак під час навчання зазвичай позначають один еталонний фрагмент для кожного запиту. Усі інші фрагменти стають негативними, зокрема речення, які роблять відповідь перевірюваною. Perplexity називає ще 3 проблеми. Бінарні мітки дають грубий сигнал. Вартість анотації за допомогою LLM зростає лінійно разом із розміром набору даних. Мітки також прив’язані до однієї стратегії фрагментування.
Як працює навчання
Учителем є модель стиснення контексту з урахуванням запиту від Perplexity. Вона читає запит і документ разом та оцінює кожен токен.
- Релевантність фрагмента: середнє значення n найвищих оцінок токенів усередині кожного фрагмента.
- М’яка ціль: softmax із масштабуванням температурою для фрагментів у позитивному документі. Фрагменти в інших документах отримують нульове значення.
- Втрата дистиляції: пряма KL-дивергенція між розподілами вчителя та учня.
- Документна втрата: InfoNCE, де документ оцінюється за його найкращим фрагментом; підхід натхненний MaxSim від ColBERT.
У кожному пакеті даних випадково обирається стратегія фрагментування. Фрагменти розділяються навченим токеном <|chunk_sep|> і усереднюються. Учитель працює лише під час навчання, тому під час інференсу не додає затримки чи потреби в додатковому сховищі.
Модель починається з внутрішньої 9B-моделі пошуку ColBERT. Лінійна проєкція видає 2048 вимірів. Навчання Matryoshka також підтримує 1024 виміри. Навчання з урахуванням квантизації забезпечує нативні ембединги int8. Реліз є сумішшю моделей із кількох контрольних точок. Для навчання використано приблизно 430 наборів даних, що охоплюють понад 50 мов, без даних ConTEB.
Інтерактивне пояснення
Пояснення контекстуальних ембедингів pplx-embed-v2Інтерактивний огляд попередньої версії контекстуальних ембедингів Perplexity: чому ізольовані фрагменти не працюють, як дистиляція вчителя замінює єдиний еталонний фрагмент і що означають наведені показники.
У трьох файлах оренди є речення «Місячна орендна плата становить …». Лише один із них стосується 5 Park Avenue. Перемикайте режими та запускайте пошук.
Ілюстративний приклад за мотивами сценарію з договором оренди в публікації Perplexity. Оцінки наведено лише для пояснення, це не вихідні дані моделі.
Модель стиснення контексту виконує роль учителя. Вона оцінює кожен токен за запитом. Потім ці оцінки агрегуються для кожного фрагмента (середнє значення n найвищих токенів) і перетворюються на м’яку ціль замість однієї бінарної еталонної мітки.
Мітка еталонного фрагмента (one-hot)
Ціль учителя (м’яка, з оцінок токенів)
Змінюйте межі: ті самі оцінки токенів агрегуються заново без повторної анотації. Саме це є властивістю «гнучких меж фрагментів», яку описує Perplexity. Наведені тут оцінки токенів є ілюстративними.
context-bench (2 099 запитів, 38 894 документи, 2 458 072 речення-фрагменти, вичерпне ранжування). Наведені нижче числа повідомлені Perplexity для K = 10.
Значення для Voyage обчислено як показник Perplexity мінус зазначена різниця (14,4 і 5,0 пунктів). Інші показники Voyage наведено лише на графіку Perplexity, тому тут їх не показано.
Контекстуальні ембединги зберігають один вектор на фрагмент — так само, як звичайний індекс фрагментів. Вартість залежить від розміру вектора. Perplexity повідомляє, що 1024-вимірні int8-вектори (1 КБ) трохи перевершують voyage-context-4 із 2048-вимірними float32-векторами (8 КБ) у наборі тестів пошуку фрагментів.
Байти = кількість вимірів × кількість байтів на значення. Чутливість — це середній показник nDCG@10 для 74 завдань MTEB, за даними Perplexity.
Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.