🚀 ColQwen2.5-3b-multilingual-v1.0: Qwen2.5-VL-3B-InstructベースのColBERT戦略を用いた多言語ビジュアルリトリーバ
ColQwenは、ビジュアル言語モデル(VLMs)に基づく新しいモデルアーキテクチャとトレーニング戦略を用いて、ビジュアル特徴から効率的にドキュメントをインデックス化するモデルです。このモデルは、Qwen2.5-VL-3Bを拡張し、ColBERTスタイルのテキストと画像のマルチベクトル表現を生成します。このモデルは論文ColPali: Efficient Document Retrieval with Vision Language Modelsで紹介され、このリポジトリで最初に公開されました。
2025年2月11日現在、70億パラメータ未満のモデルでは1位、全体では2位という成績を収めています。報告されたスコアはVidore Leaderboardにあります。
このモデルは4xA100 80GBで、per_device_batch_size=128、gradient_accumulation_steps=2で5エポック学習させたベースバージョンです。

🚀 クイックスタート
ColQwenは、ビジュアル言語モデル(VLMs)に基づく新しいモデルアーキテクチャとトレーニング戦略を用いて、ビジュアル特徴から効率的にドキュメントをインデックス化するモデルです。
✨ 主な機能
- ビジュアル言語モデル(VLMs)に基づく新しいモデルアーキテクチャとトレーニング戦略を用いて、ビジュアル特徴から効率的にドキュメントをインデックス化します。
- Qwen2.5-VL-3Bを拡張し、ColBERTスタイルのテキストと画像のマルチベクトル表現を生成します。
📦 インストール
colpali-engine
がソースからインストールされているか、バージョンが0.3.1より新しいことを確認してください。transformers
のバージョンは4.45.0より新しい必要があります。
ColPali
pip install git+https://github.com/illuin-tech/colpali
または
pip install git+https://github.com/illuin-tech/colpali@colqwen2_5
Qwen2.5
Qwen2.5-VLのコードは最新のHugging face transformersに含まれています。以下のコマンドでソースからビルドすることをおすすめします。
pip install git+https://github.com/huggingface/transformers accelerate
そうしないと、以下のエラーが発生する可能性があります。
KeyError: 'qwen2_5_vl'
💻 使用例
基本的な使用法
import torch
from PIL import Image
from colpali_engine.models import ColQwen2_5, ColQwen2_5_Processor
model = ColQwen2_5.from_pretrained(
"Metric-AI/ColQwen2.5-3b-multilingual-v1.0",
torch_dtype=torch.bfloat16,
device_map="cuda:0",
).eval()
processor = ColQwen2_5_Processor.from_pretrained("Metric-AI/ColQwen2.5-3b-multilingual-v1.0")
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)
📚 ドキュメント
バージョンの特異性
このモデルは動的な画像解像度を入力として受け取り、ColPaliのようにアスペクト比を変えずにリサイズしません。最大解像度は、最大で768個の画像パッチが作成されるように設定されています。実験によると、画像パッチの数が多いほど明らかな改善が見られますが、メモリ要件が増えるというトレードオフがあります。
このバージョンはcolpali-engine==0.3.7
で学習されています。
データ
- 合成データ:
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)を使用して学習されています。言語モデルのトランスフォーマー層と、最後のランダムに初期化された投影層にalpha=128
、r=128
を設定し、paged_adamw_8bit
オプティマイザーを使用しています。
4xA100 GPUセットアップで分散データ並列(accelerate経由)で学習されています。学習率は2e-4で、1%のウォームアップステップで線形減衰します。デバイスごとのバッチサイズは128、勾配累積ステップは2、bfloat16
形式です。
制限事項
- 焦点:このモデルは主にPDF形式のドキュメントとリソースの多い言語に焦点を当てているため、他のドキュメントタイプやあまり表現されていない言語への汎化能力が制限される可能性があります。
- サポート:このモデルはColBERTの後期相互作用メカニズムに由来するマルチベクトル検索に依存しています。これは、ネイティブのマルチベクトルサポートがない一般的なベクトル検索フレームワークに適応させるためにエンジニアリングの努力が必要になる可能性があります。
📄 ライセンス
ColQwen2.5のビジュアル言語バックボーンモデル(Qwen2.5-VL)はapache2.0
ライセンスの下にあります。モデルに付属するアダプターはMITライセンスの下にあります。
引用
もしあなたがこの組織のモデルを研究で使用した場合は、以下のように元の論文を引用してください。
@misc{faysse2024colpaliefficientdocumentretrieval,
title={ColPali: Efficient Document Retrieval with Vision Language Models},
author={Manuel Faysse and Hugues Sibille and Tony Wu and Bilel Omrani and Gautier Viaud and Céline Hudelot and Pierre Colombo},
year={2024},
eprint={2407.01449},
archivePrefix={arXiv},
primaryClass={cs.IR},
url={https://arxiv.org/abs/2407.01449},
}