はじめに
R1-Onevisionは、Fancy-MLLMチームによって開発されたオープンソースのマルチモーダル大規模言語モデルです。視覚と言語の深い結合に焦点を当て、画像やテキストなどのマルチモーダル入力を処理することができ、視覚的推論、画像理解、数学的問題解決の分野で優れています。ベースは クウェン2.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
の下のプロジェクト・ディレクトリに解凍する。models
フォルダーを手動で作成する必要があります)。
5.構成環境
CUDAが正しくインストールされ、PyTorchと互換性があることを確認する:
import torch
print(torch.cuda.is_available()) # 输出 True 表示 GPU 可用
使用方法
基礎推理:画像とテキストの分析
R1-Onevisionは、Pythonスクリプトによる推論タスクの実行をサポートしています。以下は、モデルをロードし、画像とテキストを処理する例です:
- 推論スクリプトの作成::
プロジェクトのルート・ディレクトリにファイルを作成する(例えばinfer.py
)、以下のコードを入力する:
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration
import torch
from qwen_vl_utils import process_vision_info
# 加载模型和处理器
MODEL_ID = "models/R1-Onevision-7B" # 替换为模型实际路径
processor = 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()
# 输入图像和文本
messages = [
{
"role": "user",
"content": [
{"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を求めよ」)を想定すると、次のような手順で解くことができる:
- 修正
messages
この絵の中の数学の問題に答え、計算してください。 - スクリプトを実行すると、モデルは以下のような結果を返す:
图片中的题目是: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 --model_name models/R1-Onevision-7B --dataset path/to/dataset
運営プロセスの概要
- 画像解析画像のパスを用意し、スクリプトを書いて実行すれば結果が得られる。
- すうりトピックの写真をアップロードし、質問を入力すると、詳細な回答が表示されます。
- カスタム開発データセットとモデルをダウンロードし、トレーニング用のパラメータを調整します。
GPUメモリの使用量に注意してください。スムーズな動作を保証するために、少なくとも16GBのビデオメモリを推奨します。