Perplexity Research і turbopuffer представили pplx-embed-v2-context-9b-preview — контекстну модель ембедінгів для RAG. Кожен чанк кодується з урахуванням усього документа. Ключова зміна — у навчальному сигналі: модель вчиться знаходити не лише відповідь, а й контекст, що дає змогу її перевірити. Не один «золотий» пасаж, а сукупність підтверджуючих фрагментів. Хочете знати, чи можна запустити її вже зараз, як вона тренується, і що показують бенчмарки? Розбираємо це по черзі.
Що таке pplx-embed-v2-context-9b-preview і чим вона відрізняється?
Це контекстна модель ембедінгів для RAG, де кожен чанк бачить увесь документ. Модель вчиться витягати відповідь разом із доказовим контекстом, а не полює за одним «золотим» уривком. Такий підхід має на меті скоротити помилки перевірки фактів і краще знімати залежності між реченнями. Він змінює саме навчальний сигнал і дозволяє інтегрувати контекст у кожну векторну репрезентацію чанка.
Стандартний RAG дробить довгі тексти на чанки. Часто потрібні визначення, заголовки чи сутності знаходяться поза межами окремого чанка. Контекстні ембедінги вирішують це за допомогою «пізнього чанкінгу»: документ кодується одним проходом, а потім усереднюється на рівні чанків. Так модель зберігає зв’язки між фрагментами, які зазвичай губляться.
Головний зсув — у навчанні. Замість того щоб позначати один чанк як «золото», модель отримує сигнал витягати відповідь плюс контекст, що дозволяє її перевірити. Це допомагає уникнути ситуацій, коли корисні речення потрапляють у «негативні» приклади тільки тому, що не ввійшли в один єдиний позначений чанк. Система стає менш крихкою до розмітки.
У підсумку ви отримуєте один і той самий індекс чанків, але з векторами, що вже містять релевантні взаємозалежності. Вартість індексу залежить від розміру вектора, як і в класичних підходах. Ідея проста: якщо чанк зберігає контекст документа, то ймовірність знайти всю потрібну підказку вище, а перевірка відповіді стає надійнішою.
Чи можна розгорнути модель зараз і що потрібно для запуску?
Так. Модель доступна як самохостований прев’ю-білд із вагами на Hugging Face під ліцензією MIT. Для завантаження потрібен transformers версії не нижче 5.4.0 з параметром trust_remote_code=True. Модель поки недоступна через Perplexity API. У картці моделі зазначено, що ваги та інтерфейс можуть змінюватися без зворотної сумісності. Готові тестувати її локально й контролювати середовище?
Такий режим дає повну автономію. Ви можете інтегрувати модель у власний пайплайн RAG і експериментувати зі стратегіями індексації. Перехід на нову версію transformers — обов’язковий крок. Прапорець trust_remote_code дозволяє коректно підвантажити спеціальну логіку моделі з репозиторію ваг.
Варто врахувати попереджувальний статус. Оскільки це прев’ю, автори прямо вказують на можливі зміни ваг та інтерфейсів без підтримки зворотної сумісності. Плануйте оновлення індексу і залежностей так, щоб швидко перебудувати продакшен-контур за потреби. Такий підхід типово супроводжує швидкі ітерації досліджень.
Поки що немає доступу через Perplexity API. Це означає, що інтеграції з хмарними сервісами слід відкласти або реалізувати самостійно. Якщо ваші вимоги суворі до затримки та контролю над даними, самохост — це навіть плюс. Ви уникаєте мережевих залежностей і тримаєте повний контроль над ресурсами.
Чому підхід із «золотим» чанком дає збої?
Бо реальні відповіді живуть у контексті, а не в ізольованих уривках. Коли тренування позначає один «золотий» чанк, усі інші стають «негативами». Серед них часто є речення, що роблять відповідь перевірною. Така схема спрощує світ занадто грубо. Вона ігнорує, що чанк залежить від сутностей, заголовків та визначень в інших місцях документа.
Контекстні моделі вирішують це через «пізній чанкінг». Документ кодується одним проходом, а далі утворюються представлення чанків шляхом згортання. Так ембедінги зберігають залежності, що інакше втрачаються під час жорсткого розрізання. Модель бачить повний документ і вже потім «ріжеться» на частини, утримуючи взаємозв’язки всередині векторів.
Perplexity відзначає три додаткові проблеми класичної розмітки. По-перше, бінарні мітки дають надто грубий сигнал і не виражають ступінь корисності. По-друге, вартість LLM-розмітки зростає лінійно з розміром датасета. По-третє, мітки прив’язані до однієї стратегії чанкінгу і погано переноситься на інші розбивки. Хочете мати гнучкість? Потрібен інший сигнал.
Тому нова модель вчиться отримувати відповідь разом із контекстом, якого достатньо для її верифікації. Це природно зменшує покарання для корисних фрагментів, які не потрапили до єдиного «золотого» чанка. У реальних документах це часто вирішує критичні кейси: посилання на таблиці, визначення термінів, або співвіднесення імен і займенників між абзацами. Результат — менше провалів під час валідації.
Як саме працює тренування і яка архітектура моделі?
Навчання веде вчитель — запит-обізнана модель контекстної компресії Perplexity. Вона читає запит і документ разом і виставляє бали кожному токену. Релевантність чанка — це середнє з топ-n токенів усередині нього. Далі формується «м’яка» ціль: температурно масштабована softmax-розподілена ймовірність по чанках позитивного документа, а всі інші документи отримують нулі. Студент узгоджує свій розподіл через пряму KL-дивергенцію.
Паралельно додається документний лосс InfoNCE. Документ оцінюється як найкращий свій чанк, за мотивами MaxSim у ColBERT. Кожен батч вибирає випадкову стратегію чанкінгу. Чанки розділяються навчуваним токеном <|chunk_sep|> і усереднюються по середньому. Вчитель працює лише під час тренування, тож інференс не додає ані затримки, ані потреб у додатковому сховищі. Гнучкість меж чанків зберігається без переверстки розмітки.
Модель стартує з внутрішнього 9B ColBERT-рітривера. Лінійна проєкція видає 2048-вимірні вектори. Додатково «матрьошкове» тренування підтримує 1024 виміри. Квантизаційно-усвідомлене навчання дає нативні int8-ембедінги. Реліз — це «суп» із кількох чекпойнтів. Для навчання використано приблизно 430 датасетів, що покривають понад 50 мов, без даних ConTEB. Архітектурно це курс на поєднання ефективності і переносимості.
Існує інтерактивний пояснювач, який показує, чому ізольовані чанки часто програють. У ньому вчитель оцінює токени, потім бали агрегуються за чанками і перетворюються на м’яку ціль. Зміна меж чанків не вимагає нової розмітки — ті самі токенні бали просто переагрегуються. Приклад орієнтований на сценарій оренди, ілюстративні оцінки пояснюють кроки від токенів до KL-відповідності студента.
«Вчитель на рівні токенів замінює єдину мітку золотого чанка.»
Що показують бенчмарки і як модель виглядає на фоні конкурентів?
На context-bench при K = 10 модель дає 45.5% Answer@10, 40.6% Evidence@10 і 31.1% All-Evidence@10. Документний рекол — 15.2% при K = 1 і 61.6% при K = 10. Порівняно з voyage-context-4, вона попереду на 14.4 пункти за Answer@10 і на 5.0 пунктів за Evidence@10. Кожну модель ранжували вичерпно по всіх чанках, тож налаштування індексу ролі не грали. Це чиста перевірка якості пошуку чанків.
На ConTEB у моделі найвищий середній nDCG@10 серед показаних моделей. pplx-embed-context-v1-4B виграє NarrativeQA, а Nemotron-3-Embed-8B перемагає на COVID-QA. У загальному рітривалі модель лідирує в середньому на завданнях «запит-до-чанка» і трохи відстає від voyage-context-4 на «запит-до-документа». Це підкреслює фокус на контекстних ембедінгах саме для чанк-рітрієву.
За зберіганням контекстні ембедінги використовують один вектор на чанк, як і звичайні індекси. Вартість залежить від розміру вектора. Perplexity повідомляє, що 1024-вимірний int8 (1 КБ на вектор) трохи перевершує voyage-context-4 із 2048-вимірним float32 (8 КБ) у їхньому наборі чанк-рітривалу. Чутливість до розміру чанка змінює середню оцінку з 81.0% до 79.9% між 64 і 512 токенами. Формула проста: байти = виміри × байти на значення.
Порівняння за можливостями виглядає так. pplx-embed-v2-context-9b-preview — контекстні ембедінги з відкритими вагами під MIT і самохостом; voyage-context-4 — контекстні ембедінги як хостед API (Voyage, MongoDB Atlas) з ціною $0.12 за 1M токенів і перші 200M безкоштовно; pplx-embed-context-v1-4B — відкриті ваги під MIT і доступ через Perplexity API; Nemotron-3-Embed-8B — відкриті ваги під OpenMDW-1.1 з незалежними ембедінгами на чанк. Розміри, квантизація та контексти різняться серед них.
За параметрами: 9B у блозі (Hugging Face вказує 8B), 4B для попередньої pplx-embed-context-v1, і близько 8B у Nemotron-3-Embed-8B. Підтримувані розміри векторів: 2048 і 1024 у pplx-embed-v2-context-9b-preview; 2048, 1024, 512, 256 у voyage-context-4; 2560 «матрьошкові» у pplx-embed-context-v1-4B; 4096 зі зрізанням у Nemotron-3-Embed-8B. За квантизацією: нативний int8 у pplx-embed-v2-context-9b-preview, різні варіанти int8/uint8/binary у voyage, int8/binary у pplx-embed-context-v1-4B, та float у Nemotron.
Контекстні вікна: pplx-embed-v2-context-9b-preview оцінена до 32,768 токенів; voyage-context-4 — 32K на запит і 120K з авто-чанкінгом; pplx-embed-context-v1-4B — 32K; Nemotron-3-Embed-8B — 32,768. Авто-чанкінг є у voyage-context-4; у решти — ні. З погляду доступу: або самохост, або API, залежно від моделі. Якщо вам потрібна повна автономія і MIT-умови, новий прев’ю легко вписується у ваш стек.
На основі матеріалу Perplexity Research і turbopuffer.