Традиционные модели компьютерного зрения обычно фокусируются на имитации человеческого визуального восприятия. jina-embeddings-v4 использует другой подход: он объединяет обработку изображений и текста, чтобы понять, как люди читают и интерпретируют информацию, представленную визуально. В отличие от программ оптического распознавания символов (OCR), которые просто оцифровывают текст, он фактически анализирует сложные визуальные материалы, такие как инфографика, графики, диаграммы и таблицы — документы, в которых и текст, и визуальные элементы несут семантическое значение. Мы называем их "визуально богатыми документами".

Если бы мы использовали только OCR и модели текстовых 向量模型, мы бы упустили важную информацию. Если бы мы использовали обычные модели 向量模型, обученные на парах "изображение-подпись", мы бы не смогли извлечь семантику текста. А в случае с такими вещами, как таблицы, мы должны знать, что означает текст, *и* обрабатывать пространственные отношения между текстовыми элементами, чтобы правильно их обработать. Мы должны обрабатывать их визуально-ориентированным образом, поэтому это и называется *поиском визуальных документов*.

Но нужно видеть вещи, чтобы понимать их, и для моделей 向量模型 это ничем не отличается. Качество изображения имеет значение.

Различия в качестве изображения могут возникать из многих источников: фотографии не в фокусе, плохие условия освещения, движение вызывает размытие, а алгоритмы сжатия с потерями уничтожают детали. Но визуально богатые документы обычно "рождаются" цифровыми. Они состоят из таких вещей, как скриншоты, слайды презентаций и глянцевые PDF-файлы — данные, которые были преобразованы в изображения каким-либо процессом представления или публикации. Иногда это сканы реальных бумажных страниц, но если они сделаны компетентно, эти изображения не страдают от тех проблем, которые распространены при съемке реальных сцен.

Для визуально богатых документов основной проблемой качества входных данных является разрешение изображения. Слишком маленькое, и информация, необходимая для поиска, теряется. Но слишком большое, и мы заваливаем модель ложными деталями, которые подрывают точную обработку. Правильное определение размера входных данных для jina-embeddings-v4 сэкономит вам деньги и улучшит результаты поиска.
В этой статье рассматривается, как jina-embeddings-v4 обрабатывает изображения и как разрешение изображения влияет на его способность извлекать визуально богатые документы. Мы предоставили код в репозитории JinaVDR на Hugging Face, чтобы воспроизвести наши результаты или протестировать свои собственные данные, если вы хотите применить идеи из этой статьи самостоятельно.
tagМодели визуального языка
jina-embeddings-v4 — это *модель визуального языка* (VLM), которая расширяет VLM Qwen2.5-VL-3B-Instruct. Этот подход к внедрению изображений отличается от одномодальных моделей изображений или текста и моделей в стиле CLIP, таких как jina-clip-v2.
Рисунок 5 представляет собой схему архитектуры модели jina-embeddings-v4. Базовая модель аналогична обычной модели 向量模型 на основе трансформера, за исключением того, что она поддерживает два режима вывода: одно-векторное (плотное векторное) внедрение, полученное путем усреднения последнего слоя декодера, и много-векторный (позднее взаимодействие) вывод, полученный проекционным слоем, который имеет тот же размер, что и входной.
Для текстов его ввод такой же, как и для обычных моделей текстовых 向量模型: тексты токенизируются, а 词元 заменяются векторами из таблицы поиска. Эти векторы 词元 вместе служат в качестве входных данных для модели.
Инновация VLM заключается в их обработке изображений: обычная модель 向量模型 изображений подключена к модели 向量模型 текста, но вместо создания внедрения изображения путем усреднения ее последний слой становится входом для модели 向量模型 текста, как если бы это была просто последовательность векторов 词元.

Это означает, что большие изображения имеют те же проблемы для моделей 向量模型, что и длинные тексты. Более длинные входные данные увеличивают вычислительные затраты и время кодирования и часто производят неинформативные внедрения. У маленьких изображений противоположная проблема: если слишком много информации упаковано в один патч, она ослабляется в процессе внедрения и теряется в одно-векторных внедрениях, а для много-векторных внедрений это снижает силу совпадений. Существует компромисс между объемом информации, предоставляемой модели, и ее способностью точно извлекать релевантную информацию.
Но тексты нельзя изменять в размере; изображения можно.
tagПредварительная обработка изображений в jina-embeddings-v4
Когда вы отправляете изображение в jina-embeddings-v4, оно разбивается на патчи размером 28x28 пикселей. Это означает, что количество патчей примерно пропорционально размеру изображения. Если вы используете API Jina, максимальный поддерживаемый размер составляет 602 112 пикселей, но это параметр, который можно установить пользователем в коде модели, если вы его загрузите.
Архитектура VLM означает, что количество патчей изображения 28x28, которые может поддерживать модель, равно количеству 词元 текста, которые она может поддерживать. Это накладывает абсолютную верхнюю границу на размер изображения примерно в 20 мегапикселей.

tagЭксперименты с разрешением изображений
Мы оценили различные разрешения изображений, используя jina-embeddings-v4 с наборами ViDoRe v1 и v2, а также часть набора тестов JinaVDR, рассматривая как одно-, так и многовекторные выходы. Настройка параметра max_pixels модели в диапазоне значений до 19 267 584 пикселей (то есть 5376x3584) позволяет получать 向量模型 из изображений с разным разрешением. Если изображение уже меньше значения max_pixels, оно не изменяется.
tagViDoRe v1
В таблице 1 представлены результаты поиска с использованием одно-векторных (плотных векторных) 向量模型 для пяти разрешений на отдельных тестах ViDoRe v1 (средний балл nDCG@5). Мы сообщаем значения только до 9 633 792 пикселей, потому что в ViDoRe v1 нет изображений большего размера.

| Набор тестовых данных | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px |
|---|---|---|---|---|---|---|
| Максимальный размер вектора в 词元 | 384 | 768 | 1,536 | 3,072 | 6,144 | 12,288 |
arxivqa_test_subsampled |
0.83487 | 0.84529 | 0.84537 | 0.83785 | 0.83439 | 0.83469 |
docvqa_test_subsampled |
0.47366 | 0.50715 | 0.52421 | 0.51075 | 0.50287 | 0.50258 |
infovqa_test_subsampled |
0.84404 | 0.87510 | 0.87890 | 0.87978 | 0.87672 | 0.87710 |
shiftproject_test |
0.77524 | 0.81494 | 0.83988 | 0.84427 | 0.84127 | 0.84196 |
syntheticDocQA_artificial_intelligence_test |
0.93809 | 0.96786 | 0.96655 | 0.97155 | 0.97024 | 0.97024 |
syntheticDocQA_energy_test |
0.86865 | 0.89540 | 0.89847 | 0.91172 | 0.91286 | 0.91286 |
syntheticDocQA_government_reports_test |
0.91708 | 0.93417 | 0.93865 | 0.92309 | 0.91609 | 0.91609 |
syntheticDocQA_healthcare_industry_test |
0.93865 | 0.96428 | 0.96024 | 0.96542 | 0.95417 | 0.95286 |
tabfquad_test_subsampled |
0.94298 | 0.94853 | 0.94502 | 0.94505 | 0.94505 | 0.94612 |
tatdqa_test |
0.58622 | 0.64832 | 0.65867 | 0.65985 | 0.65395 | 0.65498 |
| СРЕДНЕЕ | 0.81195 | 0.84010 | 0.84560 | 0.84493 | 0.84076 | 0.84095 |
В таблице 1 видно, что самое высокое разрешение далеко не лучшее. 9,6 мегапикселей показали результаты ниже, чем лучшее разрешение в тестах, за исключением одного, где не было изображений больше 4,8 мегапикселей, где оно получило тот же балл, потому что не было изменения размера. Лучшим в среднем был 1,2 мегапикселя, а разрешением с наибольшим количеством лучших баллов в различных тестах было 2,4 мегапикселя.
Если бы мы взяли лучший балл в каждом тесте и усреднили их, мы бы получили 0,84905. Это всего на 0,345% лучше, чем балл для 1,2 мегапикселя.
Использование многовекторных 向量模型, как показано в таблице 2, значительно повышает наши баллы поиска. Многовекторное сопоставление обычно работает лучше, чем одно-векторное. Однако производительность различных разрешений примерно одинакова.
| Набор тестовых данных | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px |
|---|---|---|---|---|---|---|
| Максимальный размер вектора в 词元 | 384 | 768 | 1,536 | 3,072 | 6,144 | 12,288 |
arxivqa_test_subsampled |
0.87456 | 0.88881 | 0.88736 | 0.88531 | 0.88899 | 0.89052 |
docvqa_test_subsampled |
0.55344 | 0.61284 | 0.61123 | 0.59941 | 0.59087 | 0.59229 |
infovqa_test_subsampled |
0.88777 | 0.92646 | 0.93376 | 0.94007 | 0.93459 | 0.93533 |
shiftproject_test |
0.86224 | 0.90563 | 0.93547 | 0.92847 | 0.92240 | 0.92240 |
syntheticDocQA_artificial_intelligence_test |
0.99631 | 0.99131 | 0.99500 | 0.99262 | 0.99262 | 0.99262 |
syntheticDocQA_energy_test |
0.95216 | 0.96524 | 0.96524 | 0.96893 | 0.96762 | 0.96762 |
syntheticDocQA_government_reports_test |
0.95934 | 0.97085 | 0.97524 | 0.98024 | 0.96655 | 0.96655 |
syntheticDocQA_healthcare_industry_test |
0.97893 | 0.97893 | 0.99631 | 0.98524 | 0.98393 | 0.98393 |
tabfquad_test_subsampled |
0.95386 | 0.95732 | 0.95611 | 0.95379 | 0.95379 | 0.95379 |
tatdqa_test |
0.70547 | 0.78534 | 0.79516 | 0.80422 | 0.80552 | 0.80727 |
| СРЕДНЕЕ | 0.87241 | 0.89827 | 0.90509 | 0.90383 | 0.90069 | 0.90123 |
Как и в случае с одно-векторными 向量模型, разрешение 1,2 мегапикселя имеет самый высокий средний балл, а 2,4 мегапикселя - это разрешение с наилучшими баллами для наибольшего числа отдельных наборов данных. Среднее значение лучших баллов по всем тестам составляет 0,90853, а средний балл для разрешения 1,2 мегапикселя на 0,344% ниже, почти точно так же, как и для одно-векторного случая.
tagViDoRe v2
ViDoRe v2 использует гораздо более детализированные и красочные изображения, чем ViDoRe v1, что позволяет предположить, что оптимальное разрешение, вероятно, будет выше.

Мы протестировали многовекторные 向量模型 от jina-embeddings-v4 на наборе тестов ViDoRe v2, результаты представлены в таблице 3. Результаты одно-векторных 向量模型 аналогичны, но с более низкими баллами, поэтому мы опускаем их здесь.
| Набор тестовых данных | 150,528 px | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px |
|---|---|---|---|---|---|---|---|
| Максимальный размер вектора в 词元 | 192 | 384 | 768 | 1,536 | 3,072 | 6,144 | 12,288 |
esg_reports_v2 |
0.40444 | 0.54013 | 0.52005 | 0.51916 | 0.49953 | 0.52664 | 0.51442 |
biomedical_lectures_v2 |
0.58760 | 0.60479 | 0.6184 | 0.60748 | 0.60748 | 0.60748 | 0.60748 |
economics_reports_v2 |
0.47666 | 0.50399 | 0.54216 | 0.54998 | 0.54998 | 0.54998 | 0.54998 |
esg_reports_human_labeled_v2 |
0.42171 | 0.56940 | 0.61227 | 0.57307 | 0.61108 | 0.63858 | 0.64921 |
| СРЕДНЕЕ | 0.47260 | 0.55458 | 0.57322 | 0.56242 | 0.56702 | 0.58067 | 0.58027 |
В этом случае лучшим в среднем является разрешение 4,8 мегапикселя, при этом средняя производительность при 9,6 мегапикселях практически идентична. Тем не менее, для трех из четырех тестов самое высокое разрешение показало результаты хуже, чем более низкие разрешения, за исключением одного теста, где не было изображений больше 4,8 мегапикселей.
tagТесты с высоким разрешением
ViDoRe v1 и ViDoRe v2 состоят из изображений с аналогичным исходным разрешением, поэтому мы взяли два теста из набора JinaVDR, которые содержат изображения с очень высоким разрешением, которые трудно обрабатывать, и выполнили тот же тест с многовекторными 向量模型 с ними.
Один из них - тест europeana-de-news, который содержит сканы немецких газет с высоким разрешением с 17 по 20 века; другой - тест wikimedia-commons-maps, который содержит сканы печатных карт с очень высоким разрешением, в основном из доцифровой эпохи.

wikimedia-commons-maps. (Справа) Первая страница газеты Hamburger Nachrichten, датированная 26 апреля 1819 года и включенная в europeana-de-news, отсканированная с разрешением 4324x4738 пикселей.Как видно из Таблицы 4, результаты очень неоднозначны.
| Эталонный набор данных | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px | 19,267,584 px |
|---|---|---|---|---|---|---|---|
| Максимальный размер вектора модели в токенах | 384 | 768 | 1,536 | 3,072 | 6,144 | 12,288 | 24,576 |
europeana-de-news |
0.46319 | 0.59457 | 0.66802 | 0.66550 | 0.66407 | 0.63948 | 0.65208 |
wikimedia-commons-maps |
0.23671 | 0.34421 | 0.42835 | 0.52268 | 0.53464 | 0.53464 | 0.53588 |
| СРЕДНЕЕ | 0.34995 | 0.46939 | 0.54819 | 0.59409 | 0.59936 | 0.58706 | 0.59398 |
Очевидно, что газетным данным не требуется такое же разрешение, как картографическим данным. Вероятно, это связано с тем, что текст на картах очень мал по сравнению с общим размером изображения, и для успешного поиска необходимо, чтобы он был читаемым. Когда сканы газет имеют размер больше оптимального, производительность колеблется и снижается.
Среднее значение является неоптимальным для обоих, что говорит о том, что не существует единого правильного разрешения для решения проблемы. Именно это открытие мотивировало нас на дальнейшие действия.
tagМногоразрешенные векторные модели
VLM-архитектура jina-embeddings-v4 обрабатывает отдельные фрагменты изображений так же, как и текстовые токены, поэтому нам легко дополнить фрагменты высокого разрешения фрагментами низкого разрешения. Это просто означает больше входных данных, пока мы остаемся в пределах максимума, который поддерживает модель. Если более низкое разрешение дает лучшую семантику, чем высокое разрешение, мы можем просто включить их и не беспокоиться о том, какое разрешение является оптимальным.
Чтобы проверить эту гипотезу, мы рассмотрели три комбинации разрешений:
| Микс 1 | Микс 2 | Микс 3 | |
|---|---|---|---|
| Максимальное количество токенов | 2,880 | 5,234 | 12,096 |
| Разрешения | 150,528 px<br>301,056 px<br>602,112 px<br>1,204,224 px | 50,000 px<br>90,000 px<br>160,000 px<br>250,000 px<br>360,000 px<br>490,000 px<br>602,112 px<br>900,000 px<br>1,204,224 px | 150,528 px<br>301,056 px<br>602,112 px<br>1,204,224 px<br>2,408,448 px<br>4,816,896 px |
Это означает, что когда мы тестировали Микс 1, мы изменили размер каждого изображения до четырех различных разрешений — 150,528 px, 301,056 px, 602,112 px, 1,204,224 px — и обработали каждое из них индивидуально в многовекторные модели, затем объединили результаты перед выполнением сопоставления запросов. То же самое для Микс 2 и Микс 3, но с разными разрешениями. Мы попробовали все три комбинации на эталонных тестах ViDoRe v2, которые суммированы в Таблице 6.
| Эталонный набор данных | Лучшее единичное разрешение | Микс 1 | Микс 2 | Микс 3 |
|---|---|---|---|---|
| Максимальный размер вектора модели в токенах | — | 2,880 | 5,234 | 12,096 |
esg_reports_v2 |
0.54013 | 0.58354 | 0.59252 | 0.56567 |
biomedical_lectures_v2 |
0.61840 | 0.61678 | 0.61714 | 0.61638 |
economics_reports_v2 |
0.54998 | 0.54997 | 0.55534 | 0.55049 |
esg_reports_human_labeled_v2 |
0.64921 | 0.67726 | 0.68057 | 0.66734 |
| СРЕДНЕЕ | 0.58943 | 0.60689 | 0.61139 | 0.59997 |
Для всех эталонных тестов ViDoRe v2 Микс 2 превосходит Микс 1 и 3, что говорит о том, что большее количество различных разрешений дает лучшие результаты, чем добавление более высоких разрешений. В двух из четырех эталонных тестов все смеси разрешений превосходят лучшее единичное разрешение, а для оставшихся двух только Микс 1 показывает результаты хуже, и то ненамного.
Эти результаты показывают, что, хотя не существует единого лучшего сочетания разрешений для всех данных, определение хорошего сочетания разрешений является правильным направлением для поиска оптимального решения.
tagЗаключение
Разрешение изображения имеет большое значение для jina-embeddings-v4 при обработке визуально богатых материалов. Одна из ключевых проблем заключается в том, что текст должен быть достаточно большим, чтобы его можно было прочитать. То, что не можете прочитать вы, не может прочитать и ИИ, а если текст имеет значение, то его необходимо прочитать.
Но слишком высокое разрешение затрудняет для модели векторных представлений сборку фрагментов изображения в единое целое. Это также дорого: более высокое разрешение означает больше обработки и, для многовекторных представлений, больше места для хранения и более медленное сопоставление.
Использование нескольких разрешений и применение поздней оценки в стиле взаимодействия ко всем выходным данным вместе — хороший способ обработки визуально богатых изображений с различными размерами. Но это увеличивает затраты на обработку и хранение, а также замедляет поиск так же, как и очень большие разрешения.
Мы ищем способы, как операционализировать это понимание для улучшения нейронного поиска. Мы постоянно пытаемся разнообразить наши данные обучения и тестирования, чтобы проверить наши модели на наличие недостатков и разработать способы их улучшения. Мы изучаем влияние разрешения и методов с несколькими разрешениями, подобных описанным здесь, на различные типы материалов.
Мы также проводим эксперименты, чтобы увидеть, смягчают ли методы с несколькими разрешениями, подобные описанным здесь, эффект шума на изображениях и приводят ли к более надежному поиску.
Кроме того, возможно, можно будет автоматически определять оптимальное разрешение для каждого изображения заранее. Если мы сможем надежно определять лучшее разрешение, это устранит еще один параметр для пользователей, улучшив при этом общие результаты, что сделает векторные представления более доступными и удобными в использовании.









