🚀 ColQwenStella-2b-多語言版:基於Qwen2視覺模型和stella_en_1.5B_v5模型組合的多語言視覺檢索器
ColQwenStella-2b-多語言版模型結合了Qwen2模型的視覺組件和stella_en_1.5B_v5作為嵌入模型。它在Vidore基準測試中表現出色,在參數不超過20億的模型中排名第1,總體排名第8。該模型按照特定的訓練方法進行訓練,為視覺文檔檢索任務提供了強大的支持。
🚀 快速開始
ColQwenStella-2b-多語言版在Vidore基準測試(截至2025年2月11日)中,參數不超過20億的模型裡排名第1,總體排名第8。在Vidore排行榜上報告的分數對應於檢查點1800。這是在4xA100 80GB上訓練的基礎版本,每個設備的批量大小為128,訓練了5個週期。
✨ 主要特性
- 架構創新:將Qwen2模型的視覺組件與stella_en_1.5B_v5作為嵌入模型相結合。
- 多語言支持:支持英語、法語、西班牙語、意大利語和德語等多種語言。
- 優秀性能:在Vidore基準測試中取得了優異的成績。
📦 安裝指南
pip install transformers>=4.46.3
💻 使用示例
基礎用法
import torch
from PIL import Image
from transformers import AutoModel, AutoProcessor
model = AutoModel.from_pretrained(
"Metric-AI/ColQwenStella-2b-multilingual",
torch_dtype=torch.bfloat16,
device_map="cuda:0",
trust_remote_code=True
).eval()
processor = AutoProcessor.from_pretrained("Metric-AI/ColQwenStella-2b-multilingual", trust_remote_code=True)
images = [
Image.new("RGB", (32, 32), color="white"),
Image.new("RGB", (16, 16), color="black"),
]
queries = [
"Is attention really all you need?",
"What is the amount of bananas farmed in Salvador?",
]
batch_images = processor.process_images(images).to(model.device)
batch_queries = processor.process_queries(queries).to(model.device)
with torch.no_grad():
image_embeddings = model(**batch_images)
query_embeddings = model(**batch_queries)
scores = processor.score_multi_vector(query_embeddings, image_embeddings)
📚 詳細文檔
數據
- 合成數據:從
openbmb/VisRAG-Ret-Train-Synthetic-data
數據集中選擇並預處理。
- 領域內VQA數據集:來自
openbmb/VisRAG-Ret-Train-In-domain-data
。
- Docmatix數據集:從
Metric-AI/rag_docmatix_100k
數據集中提取。
- Colpali數據集:取自
vidore/colpali_train_set
。
- 多語言數據集:取自
llamaindex/vdr-multilingual-train
。
模型訓練
參數
我們使用低秩適配器(LoRA)訓練模型,在語言模型的Transformer層、vison_model.merger
的mlp
層以及最終隨機初始化的投影層上設置alpha=128
和r=128
,並使用adamw
優化器。我們在4xA100 GPU設置上進行訓練,採用分佈式數據並行(通過accelerate),學習率為5e-4,採用餘弦衰減,有100個熱身步驟,每個設備的批量大小為128,使用bfloat16
格式。
📄 許可證
模型附帶的適配器遵循MIT許可證。
開發信息