Jina 第4版:多模態向量檢索,統一適配,挑戰3大任務
一、模型架構
- jina-embeddings-v4 的架構基于 Qwen2.5-VL 模型,并進行了擴展以支持單向量和多向量輸出。
- 對于文本輸入,模型采用標準的基于 Transformer 的處理方式,將文本分詞后轉換為向量序列,然后輸入到大型語言模型(LLM)中。
- 對于圖像輸入,首先通過一個離散的圖像模型將圖像轉換為多向量結果,類似于文本中的“圖像標記”,然后將這些“圖像標記”傳遞給 LLM,使其能夠像處理文本標記一樣處理圖像信息。
- 一共Lora微調了三個任務,每個 LoRA 適配器僅包含 60M 參數:
a.非對稱查詢 - 文檔檢索:通過為查詢和文檔分配不同的編碼方式來提高檢索性能,這對于處理結構與文檔不同的查詢(如短查詢、問題等)非常有效。
b.語義相似性和對稱檢索:用于尋找相似內容,適用于語義文本相似性任務
c.代碼檢索:專門針對自然語言到代碼的檢索、代碼到代碼的相似性搜索以及技術問答任務進行了優化。
- 提供了兩種輸出選項:傳統的單向量嵌入和 ColBERT 風格的多向量嵌入。
- 單向量嵌入具有 2048 維,但可以通過截斷減少到 128 維,且精度損失極小。這是通過 Matryoshka 表示學習實現的,使得單向量嵌入的標量值按語義重要性排序。
- 多向量嵌入則是對輸入標記(包括“圖像標記”)進行分析后得到的未池化結果,每個標記對應一個 128 維的輸出向量。這種多向量輸出方式在處理復雜文檔時能夠更好地保留語義信息,尤其是在涉及視覺豐富內容的場景中。
二、訓練與推理
2.1 對比學習訓練
- 在對比學習訓練階段,模型首先對文本對和文本 - 圖像對進行編碼,生成單向量和多向量嵌入。
- 然后,通過 InfoNCE 損失函數計算這些嵌入之間的相似性,并根據相似性對模型進行優化。
- 具體來說,模型將輸入對分為相關和不相關兩類,目標是使相關對的嵌入在語義空間中更接近,而不相關對的嵌入則更遠離。
- 通過這種方式,模型能夠學習到不同模態數據之間的語義關系,從而在統一的語義空間中實現對不同模態數據的語義理解。
2.2 任務特化訓練
- 在任務特化訓練階段,模型將第一階段訓練得到的 LoRA 適配器復制三份,并針對不同的任務進行特定訓練。
- 對于非對稱檢索任務,模型使用包含正負樣本的三元組數據進行訓練,通過擴展的 InfoNCE 損失函數(LNCE+)來優化模型的非對稱檢索性能。
- 對于語義相似性任務,模型使用具有已知語義相似性值的數據對進行訓練,通過 CoSENT 損失函數來優化模型的對稱檢索性能。
- 而對于代碼檢索任務,模型則使用代碼相關的數據集進行訓練,通過 InfoNCE 損失函數來優化模型的代碼檢索性能。
- 通過這種任務特化訓練,模型能夠在不同的應用任務中實現性能的顯著提升。
2.3 推理
- 在推理階段,用戶可以根據具體的應用需求選擇不同的 LoRA 適配器。
- 對于文本和圖像輸入,模型分別生成單向量或多向量嵌入,然后根據選擇的適配器對嵌入進行微調。
- 最后,通過計算目標嵌入與候選嵌入之間的相似性,模型可以快速準確地找到與目標內容相關的其他內容。
- 這種推理方式不僅能夠充分利用模型的多模態處理能力,還能夠根據不同的任務需求實現性能的優化。
https://huggingface.co/datasets/warshakhan/donut_vqa_ISynHMP https://huggingface.co/datasets/jlli/JDocQA-nonbinary https://huggingface.co/datasets/jlli/HungarianDocQA-OCR
??https://github.com/laituan245/StackExchangeQA??
??https://huggingface.co/datasets/mteb/arguana??
本文轉載自??CourseAI??,作者:CourseAI
已于2025-7-2 11:54:00修改
贊
收藏
回復
分享
微博
QQ
微信
舉報

回復
相關推薦