Как сообщает издание MarktechPost, компания Perplexity Research совместно с turbopuffer анонсировала выпуск модели контекстного встраивания pplx-embed-v2-context-9b-preview для RAG-пайплайнов. Эта модель позволяет встраивать каждый фрагмент текста с полным документом на виду. Главным изменением является сигнал обучения, так как модель обучается извлекать ответ вместе с контекстом, необходимым для его проверки, а не только одно «золотое» утверждение. Модель уже доступна для развертывания в виде самохостинга. Веса модели можно найти на Hugging Face под лицензией MIT. Для загрузки требуется версия transformers не ниже 5.4.0 с параметром trust_remote_code=True. В данный момент модель не доступна через API Perplexity. В карточке модели указано, что веса и интерфейс могут изменяться без обратной совместимости. Системы RAG разбивают длинные документы на фрагменты, при этом каждый фрагмент часто зависит от сущности, заголовка или определения, указанных в другом месте. Контекстные модели решают эту проблему с помощью позднего разбиения на фрагменты. Документ кодируется за один проход, а затем агрегируется по фрагментам. Однако в процессе обучения обычно выделяется только один золотой фрагмент на запрос. Все остальные фрагменты становятся негативными, включая предложения, которые делают ответ проверяемым. Perplexity также выделяет три другие проблемы: бинарные метки дают грубый сигнал, стоимость аннотации LLM растет линейно с размером набора данных, а метки также привязаны к одной стратегии разбиения. Обучение осуществляется с помощью модели сжатия контекста, осведомленной о запросах, от Perplexity. Она одновременно считывает запрос и документ, оценивая каждый токен. Релевантность фрагмента определяется как среднее значение лучших n оценок токенов внутри каждого фрагмента. Мягкая цель формируется с помощью температурного масштабирования softmax по фрагментам в положительном документе. Фрагменты в других документах получают нулевые оценки. Убыток дистилляции определяется как KL-дивергенция между распределениями учителя и студента. Убыток документа определяется по InfoNCE, где документ оценивается как его лучший фрагмент, вдохновленный MaxSim от ColBERT. Каждая партия выбирает случайную стратегию разбиения на фрагменты, которые разделяются с помощью обученного токена <|chunk_sep|> и агрегируются по среднему значению. Учитель работает только во время обучения, поэтому вывод не добавляет задержки или затрат на хранение. Модель начинается с внутренней модели извлечения ColBERT с 9 миллиардами параметров. Линейная проекция выводит 2048 измерений. Обучение Matryoshka также поддерживает 1024 измерения. Обучение с учетом квантизации позволяет использовать нативные int8 встраивания. Выпуск представляет собой «суп» моделей из нескольких контрольных точек. Обучение проводилось на основе примерно 430 наборов данных, охватывающих более 50 языков, без данных ConTEB. Также представлено интерактивное объяснение pplx-embed-v2, которое демонстрирует, как модель контекстного встраивания извлекает ответы и их доказательства. Оно объясняет, почему изолированные фрагменты не работают, как дистилляция учителя заменяет одно золотое утверждение и что означают представленные числа. Три файла аренды содержат предложение «Ежемесячная аренда составляет...». Только один из них принадлежит 5 Park Avenue. Пользователи могут выбрать режим и запустить извлечение, чтобы узнать, когда заканчивается аренда 5 Park Avenue и какая текущая аренда. Результаты являются иллюстрацией и не представляют собой выходные данные модели. Контекстные встраивания хранят один вектор на фрагмент, так же как и обычный индекс фрагментов. Стоимость зависит от размера вектора. Perplexity сообщает, что 1024-мерные int8 (1 КБ) немного превышают voyage-context-4 с 2048-мерными float32 (8 КБ) в их наборе для извлечения фрагментов. Число фрагментов варьируется от 100,000 до 100,000,000, в зависимости от объема хранения векторов. Чувствительность к размеру фрагмента колеблется от 81.0% до 79.9% в зависимости от количества токенов. Материал подготовлен нейросетью на основе оригинальной публикации. ИИ может ошибаться в деталях (цифры, имена, даты, цитаты) — для важной информации сверяйтесь с первоисточником.