# Perplexity открыла pplx-embed-v2-context-9b-preview: контекстные эмбеддинги для локального RAG

Источник: https://modelium.tech/zhurnal/pplx-embed-v2-context-9b-preview-local-rag/

Perplexity выложила веса и код preview-модели pplx-embed-v2-context-9b: она кодирует фрагменты одного документа совместно и возвращает отдельный вектор для каждого фрагмента. Это полезно для поиска по документам, где смысл короткого отрывка зависит от соседнего текста. Запросы нужно кодировать отдельным методом encode_queries; смешивать векторы preview с будущим стабильным выпуском нельзя. Наличие весов подтверждено, локальная скорость и качество Modelium не измерялись.

Perplexity открыла pplx-embed-v2-context-9b-preview для контекстного поиска

Perplexity разместила на Hugging Face предварительную версию модели эмбеддингов `pplx-embed-v2-context-9b-preview`. Репозиторий создан 25 сентября 2026 года; уже коммит того же дня содержит семь шардов основных весов и отдельную проекционную голову. Последние правки карточки и кода датированы 30 сентября — это не новая дата выпуска. На проверенной ревизии `b667039ee8b438a6350fbc91bbcecd86f9d363ba` все семь шардов из индекса и файл `contextual_head.safetensors` присутствуют. [s1](#src-s1) [s2](#src-s2) [s3](#src-s3)

## Что меняется в локальном RAG

Обычный поиск часто кодирует каждый отрывок отдельно. Здесь на вход передают **список фрагментов одного документа**: модель обрабатывает их совместно и возвращает по вектору на фрагмент. Если короткий отрывок ссылается на определение или объект в соседнем абзаце, такой способ даёт ему контекст. Это устройство модели, а не доказательство превосходства на вашем корпусе: карточка этого preview не приводит самостоятельного сравнительного бенчмарка для выбора вместо другого энкодера. [s1](#src-s1)

**Практический маршрут:** сохраните порядок чанков по документу, кодируйте их группами через `model.encode(documents)` и индексируйте векторы вместе с ID документа и чанка. Для поискового запроса используйте `**model.encode_queries(queries)**`, а не `encode`: авторы предупреждают, что у двух путей разные префиксы и неверный метод ухудшает поиск без явной ошибки. Каждая строка `queries` — список с одним запросом. Пример авторов использует `AutoModel.from_pretrained` с `trust_remote_code=True` и требует `transformers>=5.4.0`; сторонний Python-код следует проверить перед запуском на приватных данных. Готового пути через Ollama или llama.cpp карточка не обещает. [s1](#src-s1) [s4](#src-s4)

## Векторы, сравнение и миграция

Выходная размерность — 2048; карточка описывает обученное сокращение до 1024 измерений: сначала взять первые 1024 координаты **ненормализованного** вектора, затем нормализовать их. Для исходных векторов используйте cosine similarity либо `normalize_embeddings=True` и скалярное произведение. Не смешивайте разные размерности или нормализованные и ненормализованные векторы в одном индексе. [s1](#src-s1)

Карточка называет выход INT8-квантованным. При этом опубликованный Python-код прямо документирует возврат *float32 с целочисленными значениями* в обычном `encode` — это не обещание, что возвращаемый NumPy-массив занимает один байт на координату. При планировании хранилища проверяйте фактический `dtype` и формат индекса; размер файлов весов не является минимальным требованием к RAM или VRAM. [s1](#src-s1) [s4](#src-s4)

Это **preview**: авторы предупреждают, что веса, интерфейс и эмбеддинги могут измениться без обратной совместимости. Для пилота закрепите ревизию, версию Transformers и набор тестовых запросов; при будущей замене модели пересоздайте и документные, и запросные векторы, затем измерьте retrieval на собственных размеченных примерах. Modelium не запускал модель и не проверял её скорость или качество. [s1](#src-s1) [s2](#src-s2)

## Доступ и права

HF API показывает публичный негейтированный репозиторий, семь шардов основных весов, проекционную голову, конфигурацию и custom Python-код. Метаданные карточки указывают лицензию **MIT**, но отдельного файла `LICENSE` в проверенном дереве нет: это метка автора, а не проведённая нами правовая экспертиза всех зависимостей и исходных данных. Возможность скачать веса, метка лицензии, совместимость со сторонним runtime и качество результата — разные утверждения. [s2](#src-s2) [s5](#src-s5)

**Вывод:** стоит попробовать в отдельном локальном RAG-пилоте, если важен контекст соседних фрагментов; для производственного индекса сначала сверить права и выполнить собственную оценку retrieval, затем закрепить одну ревизию. [s1](#src-s1) [s2](#src-s2)

## Источники

1. [Perplexity: карточка pplx-embed-v2-context-9b-preview, закреплённая ревизия](https://huggingface.co/perplexity-ai/pplx-embed-v2-context-9b-preview/blob/b667039ee8b438a6350fbc91bbcecd86f9d363ba/README.md) — получено 2026-10-05
2. [Hugging Face API: модель, ревизия и полное перечисление файлов](https://huggingface.co/api/models/perplexity-ai/pplx-embed-v2-context-9b-preview) — получено 2026-10-05
3. [Hugging Face: история коммитов официального репозитория](https://huggingface.co/perplexity-ai/pplx-embed-v2-context-9b-preview/commits/main/) — получено 2026-10-05
4. [Perplexity: опубликованный код энкодера на закреплённой ревизии](https://huggingface.co/perplexity-ai/pplx-embed-v2-context-9b-preview/blob/b667039ee8b438a6350fbc91bbcecd86f9d363ba/modeling_pplx_contextual.py) — получено 2026-10-05
5. [Perplexity: индекс весов на закреплённой ревизии](https://huggingface.co/perplexity-ai/pplx-embed-v2-context-9b-preview/blob/b667039ee8b438a6350fbc91bbcecd86f9d363ba/model.safetensors.index.json) — получено 2026-10-05
