假設您正在建立一個體育新聞搜尋系統。使用者搜尋「網球選手慶祝冠軍勝利」,而您需要從資料庫中找到最相關的文章。每篇文章都包含文字說明和圖片——這是現代體育報導的典型特徵。
您的系統需要接收一個文字查詢 (text query),並從您的語料庫中返回一個排序過的、最相關的多模態文檔 (ranked list of the most relevant multimodal documents)列表。聽起來很簡單,但這裡存在一個根本性的問題,它打破了所有顯而易見的方法。
以下是您嘗試對這些文檔進行排序時會發生的情況。您的 向量模型 (Embeddings) 比如說 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 的模型中存在模態差距 (modality gap),您可能嘗試的任何顯而易見的方法都行不通。如果您僅使用較高的分數,您會遇到文字分數聚集在 0.2-0.8 之間,而圖片分數聚集在 0.4-0.6 之間的事實。這意味著平庸的文字匹配(0.6)總是會勝過優秀的圖片匹配(0.5)。
平均分數也無濟於事。計算 (0.7 + 0.3)/2 = 0.5 給你一個數字,但它實際上意味著什麼?您正在平均一些根本沒有意義的量。同樣,任何固定的加權方案都是任意的——有時文字更重要,有時圖片更重要,這完全取決於具體的查詢 (Prompt) 和文檔。
即使首先對分數進行歸一化也無法解決核心問題。您仍然試圖組合根本不同的相似性度量,這些度量捕捉了相關性的不同方面。
tag實際發生了什麼

為了更好地了解我們正在處理的問題,這裡有一個來自 EDIS 數據集的文檔範例,展示了圖片(一場德國足球比賽)和標題(One More Field Where the Content Trails Germany)。

總體而言,jina-clip-v2 在比較查詢 (Prompt) 到文字時顯示出比查詢 (Prompt) 到圖片更高的相似度,部分原因是模型的訓練方式,部分原因是數據集本身:

因此,根據文檔的文字而不是圖片來檢索文檔似乎是合乎邏輯的。而且,正如我們在下面的圖形中看到的那樣,當我們將文字查詢 (Prompt) ... for undocumented immigrants helping to establish legal status in the United States 與語料庫的文字內容進行比較時,我們獲得了更好的結果。事實上,按圖片搜尋根本無法檢索到真實文檔(黃色突出顯示):

top_k 為 3 時,只能通過 jina-clip-v2 的查詢 (Prompt) 到文字檢索來檢索真實文檔(黃色邊框突出顯示)的範例。但不要被愚弄了。儘管查詢 (Prompt) 到文字顯示出更高的相似度分數,但查詢 (Prompt) 到文字和查詢 (Prompt) 到圖片的相似度分數並不具有可比性。當我們使用 jina-clip-v2 從 EDIS 數據集中檢索 32 個文檔時,我們可以通過查看 recall@10 來看到這一點。顯然,通過查詢 (Prompt) 到圖片,召回率更高:
| Recall@10 | |
|---|---|
| Query-to-text | 14.55 |
| Query-to-image | 22.38 |
我們可以在下面看到:如果我們使用來自數據集的查詢 (Prompt):Ear ear An elephant is decorated with Bhartiya Janta Party symbols near the BJP headquarters in New Delhi.,我們只能通過其圖片內容來檢索真實文檔。通過其文字內容進行搜尋不會返回任何匹配項:

top_k 為 3 時,只能通過 jina-clip-v2 的查詢 (Prompt) 到圖片檢索來檢索真實文檔(黃色邊框突出顯示)的範例。所以,如果相似度分數表示我們應該從文字中檢索文件,而召回率表示我們應該從圖像中檢索文件,我們應該選擇哪個?當然,圖 3 和圖 4 表明沒有明顯的勝出者。哪種模態真正呈現了我們的查詢和我們正在尋找的文件之間最接近的匹配?如果我們想要合併來自文字查詢和圖像查詢檢索的候選結果,如果我們甚至無法比較分數,我們該如何有意義地選擇最佳匹配?顯然,僅僅使用 jina-clip-v2 是不行的。我們需要投入另一個模型來解決這個問題。
tag一個簡單的兩階段流程
在 2025 年 4 月,我們發布了 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 執行第二輪處理,召回率全面提高,而當我們結合來自檢索文件的文字和圖像內容時,我們看到了最大的增長,達到了 36.24 的召回率 @10。一個視覺範例顯示,無論搜索文字還是圖像內容,jina-reranker-m0 始終將真實文件排在第一位:

top_k 為 1 的結果(右側四列),顯示結合圖像和文字相似度分數始終將真實文件排在第一位。top_k 為 3,但由於空間原因,圖 7 僅顯示每個查詢的 top_k 為 1。tag結論
這種簡單的兩階段方法使召回率提高了 62%,因為該系統最終利用了人類自然的做法:同時考慮我們閱讀的內容和我們看到的內容來確定相關性。這個教訓不僅限於搜索:在處理多模態 AI 系統時,將模態分開處理的單階段方法始終會遇到這種評分不相容的問題。廣泛檢索然後智能排序的兩階段架構正變得至關重要。通過我們的 API 或在 AWS、GCP 和 Azure 上試用 jina-reranker-m0。









