Представьте, что вы разрабатываете систему поиска спортивных новостей. Пользователь ищет "теннисисты празднуют победу в чемпионате", и вам нужно найти наиболее релевантные статьи из вашей базы данных. Каждая статья содержит как текстовую подпись, так и изображение — типичный пример современного освещения спортивных событий.
Вашей системе необходимо принять текстовый запрос и вернуть ранжированный список наиболее релевантных мультимодальных документов из вашего корпуса. Звучит просто, но есть фундаментальная проблема, которая ломает все очевидные подходы.
Вот что происходит, когда вы пытаетесь ранжировать эти документы. Ваша модель для создания векторных представлений (Embedding) , скажем, jina-clip-v2, выдает оценки сходства следующим образом:
| Статья | Тип контента | Описание | Оценка сходства |
|---|---|---|---|
| A | Текст | Новак Джокович выигрывает финал Открытого чемпионата Австралии в трех сетах | 0.72 |
| A | Изображение | [фотография игрока, держащего трофей и улыбающегося] | 0.31 |
| B | Текст | Погодные задержки влияют на расписание турнира на открытом воздухе | 0.23 |
| B | Изображение | [фотография прыгающих и празднующих теннисистов] | 0.54 |
Какая статья более релевантна? Статья A имеет высокую оценку текста, но низкую оценку изображения. Статья B имеет низкую оценку текста, но более высокую оценку изображения. Фундаментальная проблема заключается в том, что нельзя сравнивать 0.72 (текст) с 0.54 (изображение), потому что эти оценки сходства существуют в совершенно разных масштабах.
tagКогда тривиальные решения терпят неудачу

Из-за разрыва модальности в jina-clip-v2 или почти в каждой другой модели, подобной CLIP, любой очевидный подход, который вы можете попробовать, не работает. Если вы просто используете более высокую оценку, вы столкнетесь с тем, что текстовые оценки кластеризуются около 0.2-0.8, а оценки изображений кластеризуются около 0.4-0.6. Это означает, что посредственное текстовое совпадение (0.6) всегда будет превосходить отличное совпадение изображения (0.5).
Усреднение оценок тоже не помогает. Вычисление (0.7 + 0.3)/2 = 0.5 дает вам число, но что оно на самом деле означает? Вы усредняете принципиально бессмысленные величины. Точно так же любая фиксированная схема взвешивания является произвольной — иногда текст имеет большее значение, иногда изображения, и это полностью зависит от конкретного запроса и документа.
Даже предварительная нормализация оценок не решает основную проблему. Вы все еще пытаетесь объединить принципиально разные меры сходства, которые отражают разные аспекты релевантности.
tagЧто происходит на самом деле

Чтобы лучше понять, с чем мы работаем, вот пример документа из набора данных EDIS, показывающий изображение (матч немецкого футбола) и подпись (One More Field Where the Content Trails Germany).

В целом, jina-clip-v2 показывает гораздо более высокие показатели сходства при сравнении запроса с текстом, чем запроса с изображением в наборе данных EDIS, отчасти из-за того, как была обучена модель, и отчасти из-за самого набора данных:

Поэтому кажется логичным извлекать документ на основе его текста, а не изображения. И, как мы видим на графике ниже, мы получаем гораздо лучшие результаты, сравнивая текстовый запрос ... for undocumented immigrants helping to establish legal status in the United States с текстовым содержанием корпуса. Фактически, поиск по изображению вообще не позволяет получить документ с истинными данными (выделен желтым):

top_k of 3.Но не обманывайтесь. Несмотря на то, что запрос к тексту показывает более высокие оценки сходства, оценки сходства запроса к тексту и запроса к изображению не сопоставимы. Мы можем увидеть это, взглянув на recall@10, когда мы используем jina-clip-v2 для извлечения 32 документов из набора данных EDIS. Очевидно, что recall выше при запросе к изображению:
| Recall@10 | |
|---|---|
| Запрос к тексту | 14.55 |
| Запрос к изображению | 22.38 |
Мы можем увидеть это ниже: Если мы используем запрос из набора данных, Ear ear An elephant is decorated with Bhartiya Janta Party symbols near the BJP headquarters in New Delhi., мы можем извлечь документ с истинными данными только по его изображению. Поиск по его текстовому содержанию не возвращает никаких совпадений:

top_k of 3.Итак, если оценки сходства подразумевают, что мы должны извлекать документы из их текста, а полнота извлечения (recall) подразумевает, что мы должны извлекать их из их изображений, что же нам выбрать? Разумеется, рисунки 3 и 4 не показывают явного победителя. Какая модальность действительно представляет наиболее близкое соответствие между нашим запросом и документом, который мы ищем? И если мы хотим объединить кандидатов как из поиска по тексту запроса, так и из поиска по изображению, как мы можем осмысленно выбрать лучшие соответствия, если мы даже не можем сравнить оценки? Очевидно, что просто использовать jina-clip-v2 не получится. Нам нужно добавить еще одну модель в этот микс.
tagПростая двухэтапная конвейерная обработка
В апреле 2025 года мы выпустили jina-reranker-m0, многоязычный мультимодальный 重排器 (Reranker) для извлечения визуальных документов. Ниже мы видим его более узкий модальный разрыв, где jina-reranker-m0 показывает сопоставимые оценки сходства между запросом и текстом, а также между запросом и изображением, в отличие от гораздо большего разрыва, показанного jina-clip-v2:

Имея это в виду, мы можем использовать jina-reranker-m0 для второго прохода в цепочке извлечения, после того как первоначальные результаты будут извлечены из jina-clip-v2:
Этап 1: Извлечение кандидатов из обеих модальностей
- Используйте jina-clip-v2, чтобы получить 16 документов с помощью текстового поиска + 16 с помощью поиска по изображению
- Примите, что мы пока не можем сравнивать оценки
Этап 2: Унифицированное переранжирование
- Подайте каждую пару (запрос + полный документ) в jina-reranker-m0
- 重排器 (Reranker) обрабатывает как текст, так и изображение вместе
- Вывод: единая оценка релевантности по унифицированной шкале

Мы расширили эксперименты из таблицы 1, теперь используя jina-clip-v2 для извлечения документов из корпуса, а затем jina-reranker-m0 для их переранжирования:
- Извлеките 32 документа с помощью запроса к тексту, затем переранжируйте на основе оценки запроса к тексту.
- Извлеките 32 документа с помощью запроса к изображению, затем переранжируйте на основе оценки запроса к изображению.
- Извлеките 16 документов с помощью запроса к тексту и 16 с помощью запроса к изображению. Переранжируйте на основе оценки запроса к тексту или запроса к изображению, в зависимости от модальности запроса.
- Извлеките 16 документов с помощью запроса к тексту и 16 с помощью запроса к изображению. Переранжируйте на основе усредненных оценок запроса к тексту и запроса к изображению для каждого документа, получив итоговую оценку (запрос к тексту + запрос к изображению)/2.
| Experiment | Description | Recall@10 - with jina-clip-v2 | Recall@10 - with jina-reranker-m0 |
|---|---|---|---|
| 1 | 32 docs: query-to-text | 14.55 | 17.42 |
| 2 | 32 docs: query-to-image | 22.38 | 28.94 |
| 3 | 16 docs: query-to-text 16 docs: query-to-image |
14.55 | 33.81 |
| 4 | 16 docs: query-to-text 16 docs: query-to-image Combined average reranker scores |
14.55 | 36.24 |
Как мы видим, выполняя второй проход с помощью jina-reranker-m0, полнота извлечения (recall) увеличивается по всем направлениям, независимо от модальности. Однако, мы видим наибольшее увеличение, когда объединяем как текстовое, так и графическое содержимое из извлеченных документов, достигая полноты извлечения (recall)@10 в 36,24. Визуальный пример показывает, что jina-reranker-m0 последовательно ранжирует документ, соответствующий истине, первым, независимо от того, ищется ли текст или изображение:

top_k из 1 результата для каждой методологии переранжирования (четыре столбца справа), показывающий, что объединение оценок сходства изображений и текста последовательно ранжирует документ, соответствующий истине, первым.top_k из 3 для различных методов извлечения, в целях экономии места на рисунке 7 показан только top_k из 1 для каждого запроса.tagВыводы
Этот простой двухэтапный подход обеспечивает улучшение полноты извлечения (recall) на 62%, поскольку система, наконец, использует то, что люди делают естественным образом: учитывает то, что мы читаем, и то, что мы видим, чтобы определить релевантность. Этот урок выходит за рамки поиска: при работе с мультимодальными системами искусственного интеллекта однопроходные подходы, которые рассматривают модальности по отдельности, всегда будут сталкиваться с этой стеной несовместимости оценок. Двухэтапные архитектуры, которые извлекают в широком смысле, а затем интеллектуально ранжируют, становятся необходимыми. Попробуйте jina-reranker-m0 через наш API или на AWS, GCP и Azure.








