はじめに
VLM-R1は、Om AI Labによって開発され、GitHubでホストされているオープンソースの視覚言語モデリングプロジェクトです。DeepSeekのR1手法に基づき、このプロジェクトはQwen2.5-VLモデルに強化学習(R1)と教師あり微調整(SFT)技術を組み合わせ、視覚理解タスクにおけるモデルの安定性と汎化能力を大幅に向上させています。VLM-R1は、「赤いカップは写真のどこにあるか」といった質問に答えたり、画像中のターゲットをピンポイントで特定したりといったRECを特に得意としています。このプロジェクトでは、開発者や研究者が視覚言語タスクを探求し開発できるように、詳細なインストール・スクリプト、データセット・サポート、トレーニング・コードを提供している。2025年2月現在、このプロジェクトは2,000近くのGitHubハッシュタグを獲得しており、マルチモーダルAIへの関心の広さを示している。
デモアドレス:https://huggingface.co/spaces/omlab/VLM-R1-Referral-Expression
機能一覧
- 理解表現(REC)を指す。自然言語コマンドを解析し、画像内の特定のターゲットを見つける機能。
- 画像とテキストの共同処理画像とテキストの同時入力をサポートし、正確な分析結果を生成。
- 学習の最適化複雑な視覚課題におけるR1訓練によるモデル性能の向上。
- オープンソースのトレーニングコードモデルを簡単にカスタマイズできるように、完全なトレーニングスクリプトと設定ファイルが提供されています。
- データセット・サポート内蔵のCOCOおよびRefCOCOデータセットのダウンロードと処理機能により、開発プロセスが簡素化されます。
- 高性能推論サポートフラッシュ・アテンションやその他のテクノロジーに対応し、コンピューティング効率を向上。
ヘルプの使用
設置プロセス
VLM-R1はPythonベースのプロジェクトであり、実行には一定の環境設定が必要です。ここでは、ユーザーがすぐに使い始められるように、インストールと使用方法の詳細な手順を説明します。
1.環境準備
- Anaconda のインストール: システムの互換性を確保するために、Anaconda を使用して Python 環境を管理することをお勧めします。ダウンロード:Anaconda公式サイト。インストールが完了したら、ターミナルを開く。
- 仮想環境の構築ターミナルで以下のコマンドを入力し、以下の名前のファイルを作成する。
vlm-r1
Python 3.10 環境:conda create -n vlm-r1 python=3.10
- 活性化環境作成した環境をアクティブにします:
コンダ・アクティベートVLM-R1
2.プロジェクトの依存関係をインストールする
- クローンプロジェクトVLM-R1のコード・リポジトリをローカルにダウンロードする。ターミナルを開いて
git clone https://github.com/om-ai-lab/VLM-R1.git cd VLM-R1
- インストール・スクリプトの実行このプロジェクトは
setup.sh
依存関係の自動インストール用スクリプト。ターミナルで実行してください:バッシュ setup.sh
このスクリプトはPyTorchやTransformersなどのコアライブラリをインストールし、環境が整っていることを確認します。
3.データの準備
- COCOデータセットをダウンロードVLM-R1はCOCO Train2014画像データセットを用いて学習されました。以下のコマンドを実行してダウンロードし、解凍してください:
wget http://images.cocodataset.org/train2014/train2014.zip train2014.zip を解凍 -d .
解凍パスをメモしておく
これは、その後のコンフィギュレーションで必要となる。
- RefCOCOラベリングファイルのダウンロードRefCOCOデータセットは、表現タスクを参照するために使用されます。ダウンロードのリンクはプロジェクトのドキュメントにあります。
4.トレーニングモデル
- トレーニングパラメータの設定アクセス
src/open-r1-multimodal
ディレクトリで、トレーニングスクリプトのパラメータを編集します。例cd src/open-r1-multimodal
修正
grpo_rec.py
またはコマンド実行時にパラメータを指定する。以下はコマンドの例である:torchrun --nproc_per_node=8 --nnodes=1 --node_rank=0 --master_addr="127.0.0.1" --master_port="12346" src/open_r1/grpo_rec.py(英語) --deepspeed local_scripts/zero3.json \ --output_dir output/my_model ---モデル名またはパス Qwen/Qwen2.5-VL-3B-Instruct --データセット名 data_config/rec.yaml --image_root ¦画像のルート ---最大プロンプト長 1024 --num_generations 8 --per_device_train_batch_size 1 ¦デバイスごとのバッチ数 --gradient_accumulation_steps 2 ୧-͈ᴗ-͈ --logging_steps 1 ---bf16 ---torch_dtype bfloat \ --num_train_epochs 2 \ ---save_steps 100
- パラメータの説明
--nproc_per_node
GPUの数はハードウェアに合わせて調整します。--image_root
COCOデータセットのパスに置き換えてください。--output_dir
モデルの保存パス。
- パラメータの説明
5.機能動作フロー
理解表現(REC)を指す。
- テストスクリプトの実行トレーニングが完了したら、提供されたテストスクリプトを使用してモデルの有効性を検証します。入力
src/eval
カタログcd src/eval python test_rec_r1.py --model_path --image_root --annotation_path <refcoco_annotation
- 入力例写真をアップロードして、質問を入力してください。例えば、「写真の青い車はどこですか?.モデルはターゲットとなる場所の座標または説明を返します。
画像とテキストの分析
- 入場の準備画像ファイルと問題文は指定したディレクトリに置くか、スクリプト内で直接パスを指定する。
- 走り推理上記のテストスクリプトを使用して、モデルは画像コンテンツの分析結果を出力します。
カスタマイズ・トレーニング
- データセットを修正する独自のデータセットを使いたい場合は、以下のように編集してください。
data_config/rec.yaml
画像パスとラベル付きファイルを追加します。 - ハイパーパラメータの調整義務化のニーズに合わせて変更
grpo_rec.py
の学習率、バッチサイズなどのパラメータを設定する。
6.注意事項
- ハードウェア要件リソースが限られている場合は、最低8GBのRAMを搭載したGPUを使用することをお勧めします。
世代数
パラメータを使用することで、メモリフットプリントを減らすことができる。 - デバッグモードトレーニング中に設定可能
export DEBUG_MODE="true"
詳細なログを見る - 地域支援問題が発生したら、GitHubのIssuesページで質問してください。Om AI Labチームとコミュニティがお手伝いします。
VLM-R1は、上記の手順に沿ってインストールすることで、視覚タスクの研究や実世界でのアプリケーションの開発にかかわらず、すぐに使い始めることができ、その強力な機能を活用することができます。