はじめに
R1-Onevisionは、Fancy-MLLMチームによって開発されたオープンソースのマルチモーダル大規模言語モデルです。視覚と言語の深い組み合わせに焦点を当てており、画像やテキストなどのマルチモーダル入力を扱うことができ、視覚的推論、画像理解、数学的問題解決の分野で優れています。Qwen2.5-VLモデルに基づいて最適化されたR1-Onevisionは、いくつかのベンチマークでQwen2.5-VL-7Bなどの類似モデルを上回り、GPT-4Vの能力にも挑戦しています。このプロジェクトはGitHubでホストされており、開発者、学術的な探求や実用的なアプリケーションのための研究者に適したモデルの重み、データセット、コードを提供しています。2025年2月24日にリリースされて以来、多くの注目を集めており、特に視覚的な推論タスクで良好な結果を出しています。
機能一覧
- 多峰推論数学的な問題解決や科学的な問題分析など、画像とテキストを組み合わせた複雑な推論タスクをサポートします。
- 図形理解画像の内容を分析し、詳細な説明を生成したり、関連する質問に答えたりする能力。
- データセット・サポートR1-Onevisionデータセットは、自然風景、OCR、チャートなどのマルチドメインデータを含んでいます。
- モデルトレーニングオープンソースのLLama-Factoryフレームワークを使用したフルモデル教師付き微調整(SFT)をサポートします。
- 高いパフォーマンス評価MathvisionやMathverseなどのテストで、同級生よりも優れた推論力を示す。
- オープンソースリソース二次開発や研究を容易にするため、モデルウェイトとコードを提供する。
ヘルプの使用
設置プロセス
R1-OnevisionはGitHubベースのオープンソースプロジェクトで、実行には一定のプログラミング基盤と環境設定が必要です。以下は詳しいインストールと使用ガイドです:
1.環境準備
- オペレーティングシステムLinux(Ubuntuなど)またはWindows(WSL付き)を推奨します。
- ハードウェア要件モデルの推論とトレーニングをサポートするために、NVIDIA GPU(A100またはRTX 3090など、少なくとも16GBのビデオメモリ)を推奨します。
- ソフトウェア依存::
- Python 3.8以降。
- PyTorch(GPUバージョンをインストールすることをお勧めします。)
- Git (コードリポジトリの複製)。
2.倉庫のクローン化
ターミナルを開き、以下のコマンドを実行してR1-Onevisionプロジェクトコードを取得する:
git clone https://github.com/Fancy-MLLM/R1-Onevision.git
cd R1-Onevision
3.依存関係のインストール
このプロジェクトはいくつかのPythonライブラリに依存しており、以下のコマンドでインストールできる:
pip install -r requirements.txt
推論のスピードアップが必要な場合は、フラッシュ・アテンションをインストールすることをお勧めします:
pip install flash-attn --no-build-isolationをインストールする。
4.モデルの重みをダウンロードする
R1-Onevisionは、Hugging Faceからダウンロードできる事前学習済みモデルを提供しています:
- ハギング・フェイスのモデル・ページをご覧ください。
- モデルファイルをダウンロードする(例
R1-Onevision-7B
の下のプロジェクト・ディレクトリに解凍する。モデル
フォルダーを手動で作成する必要があります)。
5.構成環境
CUDAが正しくインストールされ、PyTorchと互換性があることを確認する:
インポート torch
print(torch.cuda.is_available()) #出力 TrueはGPUが利用可能であることを意味します。
使用方法
基礎推理:画像とテキストの分析
R1-Onevisionは、Pythonスクリプトによる推論タスクの実行をサポートしています。以下は、モデルをロードし、画像とテキストを処理する例です:
- 推論スクリプトの作成::
プロジェクトのルート・ディレクトリにファイルを作成する(例えばinfer.py
)、以下のコードを入力する:
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration
インポートトーチ
from qwen_vl_utils import process_vision_info
# モデルとプロセッサをロードする
MODEL_ID = "models/R1-Onevision-7B" # モデルの実際のパスに置き換える
プロセッサ = AutoProcessor.from_pretrained(MODEL_ID, trust_remote_code=True)
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(
MODEL_ID, trust_remote_code=True, torch_dtype=torch.bfloat16
).to("cuda").eval()
# 入力画像とテキスト
メッセージ = [
{
"role": "user"、
「コンテンツ": [
{ "type": "image", "image": "path/to/your/image.jpg"}, # ローカルの画像パスに置き換える。
{"type": "text", "text": "この画像が何についての画像か説明してください。}
]
}
]
# 入力処理
inputs = processor(messages, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=512)
response = processor.decode(outputs[0], skip_special_tokens=True)
print(response)
- スクリプトの実行::
python infer.py
スクリプトは画像の説明と応答を出力する。たとえば、画像に2人の人物が写っている場合、モデルは "The image shows a park scene with two people sitting on a bench" と返すかもしれない。
特集:数学推理
R1-Onevisionは数学的な視覚的推論に優れている。数学的問題を含む絵(例えば「2x + 3 = 7, xを求めよ」)を想定すると、次のような手順で解くことができる:
- 修正
メッセージ
この絵の中の数学の問題に答え、計算してください。 - スクリプトを実行すると、モデルは以下のような結果を返す:
写真の問題は: 2x + 3 = 7
解答プロセス
1. 両辺から3を引く: 2x + 3 - 3 = 7 - 3
2. 単純化する: 2x = 4
3. 両辺を2で割る: 2x / 2 = 4 / 2
4. そしてこうなる: x = 2
最終的な答え: x = 2
データセットの使用
R1-Onevisionは、モデルの微調整やテストに使用できる専用のデータセットを提供する:
- データセットのダウンロード: Hugging Face dataset page.
- このデータには画像とテキストのペアが含まれており、解凍後にそのままトレーニングや検証に使用することができる。
モデリングの微調整
カスタムモデルが必要な場合は、LLama-Factoryを使って教師ありの微調整を行うことができます:
- LLama-Factoryをインストールします:
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -r requirements.txt
- トレーニングパラメータを設定し(プロジェクトのドキュメントを参照)、実行する:
python train.py -モデル名 models/R1-Onevision-7B -データセット path/to/dataset
運営プロセスの概要
- 画像解析画像のパスを用意し、スクリプトを書いて実行すれば結果が得られる。
- すうりトピックの写真をアップロードし、質問を入力すると、詳細な回答が表示されます。
- カスタム開発データセットとモデルをダウンロードし、トレーニング用のパラメータを調整します。
GPUメモリの使用量に注意してください。スムーズな動作を保証するために、少なくとも16GBのビデオメモリを推奨します。