🚀 Qwen2.5-VL-3B-Instruct-Geo
Qwen2.5-VLは、画像や動画の理解、構造化出力など、多様な視覚言語タスクに対応したモデルです。
🚀 クイックスタート
Qwen2.5-VLのコードは最新のHugging face transformersに含まれています。以下のコマンドでソースからビルドすることをお勧めします。
pip install git+https://github.com/huggingface/transformers accelerate
そうしないと、以下のエラーが発生する可能性があります。
KeyError: 'qwen2_5_vl'
様々なタイプの視覚入力をより便利に扱うためのツールキットも提供しています。これにはbase64、URL、画像と動画のインターリーブが含まれます。以下のコマンドでインストールできます。
pip install qwen-vl-utils[decord]==0.0.8
Linuxを使用していない場合は、PyPIからdecord
をインストールできない可能性があります。その場合は、pip install qwen-vl-utils
を使用すると、動画処理にtorchvisionが使用されます。ただし、ソースからdecordをインストールすることで、動画読み込み時にdecordを使用できます。
🤗 Transformersを使用したチャット
これは教師付きFTモデルです。以下のように使用できます。
from transformers import AutoTokenizer, AutoProcessor, AutoModelForImageTextToText
from qwen_vl_utils import process_vision_info
from peft import PeftModel
model = AutoModelForImageTextToText.from_pretrained(
"kxxinDave/Qwen2.5-VL-instruct-3B-Geo",
device_map='auto',
torch_dtype=torch.bfloat16
)
processor = AutoProcessor.from_pretrained("kxxinDave/Qwen2.5-VL-instruct-3B-Geo")
messages = [
{
"role": "user",
"content": [
{
"type": "image",
"image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg",
},
{"type": "text", "text": "Describe this image."},
],
}
]
text = processor.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
text=[text],
images=image_inputs,
videos=video_inputs,
padding=True,
return_tensors="pt",
)
inputs = inputs.to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128)
generated_ids_trimmed = [
out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)
✨ 主な機能
Qwen2-VLがリリースされてから過去5か月間、多くの開発者がQwen2-VLのビジョン言語モデルをベースに新しいモデルを構築し、貴重なフィードバックを提供してくれました。この間、私たちはより有用なビジョン言語モデルの構築に注力してきました。今日、私たちはQwenファミリーの最新メンバーであるQwen2.5-VLを紹介することを嬉しく思います。
主な強化点:
-
視覚的な理解能力: Qwen2.5-VLは、花や鳥、魚、昆虫などの一般的な物体の認識に精通しているだけでなく、画像内のテキスト、チャート、アイコン、グラフィック、レイアウトを分析する能力も高いです。
-
能動的な対応能力: Qwen2.5-VLは、推論し、ツールを動的に操作できる視覚エージェントとして直接機能し、コンピューターや携帯電話の使用が可能です。
-
長い動画の理解とイベントの捕捉: Qwen2.5-VLは1時間以上の動画を理解でき、今回は関連する動画セグメントを特定することでイベントを捕捉する新しい機能を備えています。
-
様々な形式での視覚的な位置特定能力: Qwen2.5-VLは、バウンディングボックスや点を生成することで画像内の物体を正確に位置特定でき、座標と属性の安定したJSON出力を提供できます。
-
構造化出力の生成能力: 請求書、フォーム、表などのスキャンデータに対して、Qwen2.5-VLはその内容の構造化出力をサポートし、金融や商取引などの用途に役立ちます。
モデルアーキテクチャの更新:
- 動画理解のための動的解像度とフレームレートのトレーニング:
動的解像度を時間次元に拡張し、動的FPSサンプリングを採用することで、モデルが様々なサンプリングレートで動画を理解できるようにしました。それに応じて、時間次元のmRoPEをIDと絶対時間のアライメントで更新し、モデルが時間的なシーケンスと速度を学習し、最終的に特定の瞬間を特定する能力を獲得できるようにしました。
- 効率的なビジョンエンコーダの最適化:
ViTにウィンドウアテンションを戦略的に実装することで、トレーニングと推論の速度を向上させました。ViTアーキテクチャは、SwiGLUとRMSNormでさらに最適化され、Qwen2.5 LLMの構造に合わせられました。
私たちは、30億、70億、720億のパラメータを持つ3つのモデルを用意しています。このリポジトリには、命令調整された3BのQwen2.5-VLモデルが含まれています。詳細については、ブログとGitHubをご覧ください。
📄 ライセンス
このプロジェクトは、Apache-2.0ライセンスの下で公開されています。
📚 ドキュメント
引用
もし私たちの成果が役に立った場合は、ぜひ引用してください。
@misc{qwen2.5-VL,
title = {Qwen2.5-VL},
url = {https://qwenlm.github.io/blog/qwen2.5-vl/},
author = {Qwen Team},
month = {January},
year = {2025}
}
@article{Qwen2VL,
title={Qwen2-VL: Enhancing Vision-Language Model's Perception of the World at Any Resolution},
author={Wang, Peng and Bai, Shuai and Tan, Sinan and Wang, Shijie and Fan, Zhihao and Bai, Jinze and Chen, Keqin and Liu, Xuejing and Wang, Jialin and Ge, Wenbin and Fan, Yang and Dang, Kai and Du, Mengfei and Ren, Xuancheng and Men, Rui and Liu, Dayiheng and Zhou, Chang and Zhou, Jingren and Lin, Junyang},
journal={arXiv preprint arXiv:2409.12191},
year={2024}
}
@article{Qwen-VL,
title={Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond},
author={Bai, Jinze and Bai, Shuai and Yang, Shusheng and Wang, Shijie and Tan, Sinan and Wang, Peng and Lin, Junyang and Zhou, Chang and Zhou, Jingren},
journal={arXiv preprint arXiv:2308.12966},
year={2023}
}