はじめに
Qwen2.5-VLは、アリババクラウドのQwenチームによって開発されたオープンソースのマルチモーダルビッグモデルです。Qwen2.5言語モデルをベースに開発されたQwen2-VLのアップグレード版で、テキスト、画像、動画、文書を同時に処理できる。公式には、文書解析、動画理解、インテリジェント・エージェント機能が大幅に改善され、3B、7B、32B、72Bの4つのパラメータ・スケールをサポートし、パーソナル・コンピューターからサーバーまで様々なニーズに対応する。qwen2.5-VLは、いくつかのテストにおいて、クローズドソースモデルを凌駕する指標を示すなど、高い性能を発揮しており、開発者が文書抽出ツール、ビデオ解析ツール、デバイス操作アシスタントなどのインテリジェントツールを構築するのに適している。
機能一覧
- 画像内のオブジェクト、テキスト、レイアウトを認識し、自然なシーンと多言語をサポートします。
- 非常に長いビデオ(1時間以上)や秒単位のイベントクリップを理解する。
- 複雑な文書を解析し、手書きのテキスト、表、グラフ、化学式を抽出します。
- インテリジェント・エージェントのタスクを実行するために、視覚的およびテキスト的なコマンドによってコンピュータや携帯電話を制御する。
- 座標や属性情報などの構造化データをJSON形式で出力する。
- ビデオ処理効率を最適化するため、ダイナミック解像度とフレームレートの調整をサポート。
ヘルプの使用
設置プロセス
Qwen2.5-VL をローカルで動作させるには、ソフトウェア環境を準備する必要があります。以下はその詳細な手順です:
- 基本環境の点検
Python 3.8+とGitが必要です。ターミナルで以下のコマンドを入力して確認してください:
python --version
git --version
インストールされていない場合は、PythonとGitのウェブサイトからダウンロードできる。
- ダウンロードコード
ターミナルで以下のコマンドを実行し、GitHubリポジトリをクローンする:
git clone https://github.com/QwenLM/Qwen2.5-VL.git
cd Qwen2.5-VL
- 依存関係のインストール
プロジェクトには特定のPythonライブラリーが必要で、以下のコマンドを実行してインストールする:
pip install git+https://github.com/huggingface/transformers@f3f6c86582611976e72be054675e2bf0abb5f775
pip install accelerate
pip install qwen-vl-utils[decord]
pip install 'vllm>0.7.2'
GPUを持っている場合は、CUDAをサポートしたPyTorchをインストールしてください:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
注釈decord
ビデオのロードを高速化するために、Linux以外のユーザーは、以下のサイトからビデオをダウンロードすることができます。 decord GitHub ソースコードのインストール。
- プライミングモデル
バージョン7Bなどのモデルをダウンロードして実行する:
vllm serve Qwen/Qwen2.5-VL-7B-Instruct --port 8000 --host 0.0.0.0 --dtype bfloat16
モデルはHugging Faceから自動的にダウンロードされ、ローカルサービスが開始される。
主な機能の使い方
インストール後、Qwen2.5-VL はコードまたはウェブインタフェースから操作できます。
画像認識
モデルに写真を描かせたい?新しい image_test.py
次のコードを入力してください:
from transformers import Qwen2VLForConditionalGeneration, AutoProcessor
from qwen_vl_utils import process_vision_info
from PIL import Image
model = Qwen2VLForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct", torch_dtype="auto", device_map="auto")
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct")
messages = [{"role": "user", "content": [{"type": "image", "image": "图片路径或URL"}, {"type": "text", "text": "描述这张图片"}]}]
text = processor.apply_chat_template(messages, tokenize=False)
inputs = processor(text=[text], images=[Image.open("图片路径或URL")], padding=True, return_tensors="pt").to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128)
output = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output)
例えば、"この写真は窓辺に座っている猫です"。
ビデオ理解
ビデオを分析するためにローカルファイルを準備する必要がある(例 video.mp4
).以下のコードを使用する:
messages = [{"role": "user", "content": [{"type": "video", "video": "video.mp4"}, {"type": "text", "text": "总结视频内容"}]}]
text = processor.apply_chat_template(messages, tokenize=False)
inputs = processor(text=[text], videos=[processor.process_video("video.mp4")], padding=True, return_tensors="pt").to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128)
output = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output)
ビデオは出場者がピザを作る料理コンテストを映している。
文書解像度
PDFまたは画像をアップロードし、画像認識と同様のコードを使用し、プロンプトを「テーブルデータを抽出」に変更すると、モデルは次のような構造化された結果を返す:
[{"列1": "值1", "列2": "值2"}]
インテリジェント・エージェント
デバイスを制御したいですか?使用方法 cookbooks/computer_use.ipynb
例実行後、"Open Notepad and type 'Hello'"とタイプすると、モデルは操作をシミュレートし、結果を返します。
ウェブ・インターフェースの使用
うごきだす web_demo_mm.py
ウェブインターフェースを起動する:
python web_demo_mm.py
ブラウザアクセス http://127.0.0.1:7860
ファイルをアップロードするか、コマンドを入力するか迷った場合は、モデルが直接処理する。
パフォーマンスを最適化する
- フラッシュ・アテンション 2加速推理、設置後に使用:
pip install -U flash-attn --no-build-isolation python web_demo_mm.py --flash-attn2
- 解像度調整設定
min_pixels
歌で応えるmax_pixels
画像サイズを256~1280の範囲でコントロールし、スピードとメモリのバランスをとる。
アプリケーションシナリオ
- 学術研究
学生が論文の画像をアップロードすると、モデルが数式とデータを抽出し、分析を生成する。 - ビデオクリップ
制作者が長いビデオを入力すると、モデルが主要なクリップを抽出して要約を生成する。 - エンタープライズ・ドキュメント管理
従業員が契約書のスキャン・コピーをアップロードすると、モデルが条項を抽出し、フォームを出力する。 - インテリジェントアシスタント
ユーザーは写真と音声コマンドを使って、モデルに携帯電話でフライト情報を調べさせる。
品質保証
- 対応言語は?
中国語、英語、多言語(フランス語、ドイツ語など)をサポートし、多言語テキストや手書きコンテンツを認識します。 - ハードウェアの要件は?
3Bモデルには8GB、7Bには16GBのビデオメモリーが必要で、32Bと72Bには24GB以上のビデオメモリーを搭載したプロ用デバイスが推奨される。 - 超長い動画をどう扱うか?
モデルはダイナミックなフレームレートでサンプリングされ、何時間ものビデオを理解し、第2レベルのイベントをピンポイントで特定することができる。