Поиск по документам — одна из самых востребованных задач в корпоративных ИИ-системах: пользователь задаёт вопрос текстом, а система должна найти нужную страницу среди тысяч отсканированных отчётов, презентаций и таблиц. Универсальные мультимодальные модели справляются с этим посредственно — они обучены на широком наборе задач и не специализированы ни под одну из них. Именно здесь помогает дообучение.

Библиотека Sentence Transformers — один из самых популярных инструментов для работы с эмбеддинг-моделями в Python — добавила полноценный пайплайн для обучения мультимодальных моделей. Разработчик библиотеки Том Аарсен дообучил Qwen/Qwen3-VL-Embedding-2B на задаче Visual Document Retrieval (VDR): модель получает текстовый запрос вроде «Какова выручка компании в третьем квартале?» и должна найти нужный скриншот страницы документа в корпусе. После дообучения на датасете tomaarsen/llamaindex-vdr-en-train-preprocessed метрика NDCG@10 выросла с 0,888 до 0,947. Полученная модель tomaarsen/Qwen3-VL-Embedding-2B-vdr превзошла все протестированные аналоги, в том числе модели с числом параметров до 8 миллиардов — то есть вчетверо крупнее.

ModelParametersNDCG@10
tomaarsen/Qwen3-VL-Embedding-2B-vdr2.1B0.947
Qwen/Qwen3-VL-Embedding-8B8.1B0.923
nvidia/omni-embed-nemotron-3b4.7B0.915
nvidia/llama-nemotron-embed-vl-1b-v21.7B0.912
nomic-ai/nomic-embed-multimodal-7b8.3B0.912
llamaindex/vdr-2b-multi-v12.2B0.912
llamaindex/vdr-2b-v12.2B0.911
nomic-ai/nomic-embed-multimodal-3b3.8B0.899
Qwen/Qwen3-VL-Embedding-2B2.1B0.888
LCO-Embedding/LCO-Embedding-Omni-7B8.9B0.888
LCO-Embedding/LCO-Embedding-Omni-3B4.7B0.860
BAAI/BGE-VL-v1.5-zs7.6B0.800
BAAI/BGE-VL-v1.5-mmeb7.6B0.797
BAAI/BGE-VL-MLLM-S27.6B0.792
BidirLM/BidirLM-Omni-2.5B-Embedding2.5B0.775
royokong/e5-v8.4B0.767
BAAI/BGE-VL-MLLM-S17.6B0.710
sentence-transformers/clip-ViT-L-14428M0.611
BAAI/BGE-VL-large428M0.467
BAAI/BGE-VL-base150M0.335

NDCG@10 (Normalized Discounted Cumulative Gain) — стандартная метрика качества поиска: она измеряет, насколько релевантные результаты оказываются выше в топ-10 выдачи. Значение 0,947 означает почти идеальное ранжирование на тестовой выборке.

Пайплайн обучения использует тот же SentenceTransformerTrainer, что и для текстовых моделей — разница только в данных.

Model size vs NDCG for VDR models
Model size vs NDCG for VDR models · Источник: Hugging Face Blog

Обучающий пайплайн построен на том же классе SentenceTransformerTrainer, что используется для текстовых моделей. Ключевое отличие — датасет содержит изображения наряду с текстом, а препроцессинг изображений берёт на себя процессор модели. Разработчик может управлять разрешением входных изображений через параметр max_pixels: выше разрешение — выше качество, но и больше потребление памяти. В качестве функции потерь применяется CachedMultipleNegativesRankingLoss в сочетании с MatryoshkaLoss — последняя позволяет обучать модель одновременно на эмбеддингах разной размерности, что даёт гибкость при развёртывании.

Библиотека поддерживает два архитектурных подхода. Первый — дообучение готовой Vision-Language Model (VLM): модель уже умеет работать с несколькими модальностями, и достаточно передать её имя в SentenceTransformer. Второй — сборка модели из отдельных специализированных энкодеров через модуль Router: например, один энкодер обрабатывает текст, другой — изображения, а Router направляет входные данные к нужному. Этот подход позволяет использовать лёгкие модели вместо тяжёлой VLM, но требует дополнительного обучения для выравнивания пространств эмбеддингов разных модальностей — для этого добавляется слой Dense-проекции.

Появление такого инструмента меняет практику построения RAG-систем (Retrieval-Augmented Generation) для работы с документами. Раньше разработчики были вынуждены либо использовать универсальные модели с посредственным качеством, либо прибегать к дорогостоящим проприетарным решениям. Теперь дообучение под конкретный домен — финансовую отчётность, медицинские записи, технические руководства — стало доступно через стандартный open-source инструментарий. Результаты эксперимента показывают, что даже небольшая модель в 2 миллиарда параметров после специализации способна обойти более крупные универсальные решения.