Allgemeine Einführung
R1-Onevision ist ein quelloffenes multimodales Sprachmodell, das vom Fancy-MLLM-Team entwickelt wurde. Es konzentriert sich auf die tiefgreifende Kombination von Sehen und Sprache und ist in der Lage, multimodale Eingaben wie Bilder und Text zu verarbeiten und sich in den Bereichen visuelles Denken, Bildverständnis und mathematisches Problemlösen auszuzeichnen. Auf der Grundlage von Qwen2.5-VL Modelloptimierung übertrifft R1-Onevision vergleichbare Modelle wie Qwen2.5-VL-7B in mehreren Benchmarks und fordert sogar die Fähigkeiten von GPT-4V heraus. Das Projekt wird auf GitHub gehostet und stellt Modellgewichte, Datensätze und Code zur Verfügung, die für Entwickler, Forscher für akademische Untersuchungen oder praktische Anwendungen geeignet sind.2025 Seit seiner Veröffentlichung am 24. Februar hat es viel Aufmerksamkeit erregt und besonders bei Visual-Reasoning-Aufgaben gut abgeschnitten.
Funktionsliste
- multimodale InferenzUnterstützung komplexer Denkaufgaben, die Bilder und Text kombinieren, wie z.B. mathematische Problemlösungen und wissenschaftliche Problemanalysen.
- grafisches VerständnisDie Fähigkeit, den Inhalt eines Bildes zu analysieren und eine detaillierte Beschreibung zu erstellen oder relevante Fragen zu beantworten.
- Unterstützung von DatensätzenBietet R1-Onevision-Datensätze, die Daten aus mehreren Bereichen enthalten, wie z. B. natürliche Szenen, OCR, Diagramme und mehr.
- ModellschulungUnterstützt die überwachte Feinabstimmung des gesamten Modells (SFT) unter Verwendung des Open-Source-Rahmens LLama-Factory.
- Bewertung von HöchstleistungenZeigen Sie in Tests wie Mathvision, Mathverse usw. ein besseres logisches Denken als Ihre Mitschüler.
- Open-Source-RessourceBereitstellung von Modellgewichten und Codes zur Erleichterung der Sekundärentwicklung oder Forschung.
Hilfe verwenden
Einbauverfahren
R1-Onevision ist ein GitHub-basiertes Open-Source-Projekt, das eine bestimmte Programmiergrundlage und Umgebungskonfiguration erfordert. Im Folgenden finden Sie eine detaillierte Anleitung zur Installation und Verwendung:
1. die Vorbereitung der Umwelt
- BetriebssystemLinux (z.B. Ubuntu) oder Windows (mit WSL) wird empfohlen.
- Hardware-VoraussetzungEin NVIDIA-Grafikprozessor (mindestens 16 GB Videospeicher, z. B. A100 oder RTX 3090) wird zur Unterstützung von Modellinferenz und Training empfohlen.
- Software-abhängig::
- Python 3.8 oder höher.
- PyTorch (wir empfehlen die Installation der GPU-Version, siehe die PyTorch-Website).
- Git (zum Klonen von Code-Repositorien).
2. das Klonen von Lagern
Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um den R1-Onevision-Projektcode zu erhalten:
git clone https://github.com/Fancy-MLLM/R1-Onevision.git
cd R1-Onevision
3. die Installation von Abhängigkeiten
Das Projekt stützt sich auf mehrere Python-Bibliotheken, die mit den folgenden Befehlen installiert werden können:
pip install -r requirements.txt
Wenn Sie die Argumentation beschleunigen möchten, empfehlen wir die Installation von Flash Attention:
pip install flash-attn --no-build-isolation
4 Herunterladen von Modellgewichten
R1-Onevision bietet vortrainierte Modelle, die von Hugging Face heruntergeladen werden können:
- Besuchen Sie die Seite des Modells Hugging Face.
- Laden Sie die Modelldatei herunter (z. B.
R1-Onevision-7B
) und entpacken Sie es in das Projektverzeichnis unter demmodels
Ordner (muss manuell erstellt werden).
5. die Konfigurationsumgebung
Vergewissern Sie sich, dass CUDA ordnungsgemäß installiert und mit PyTorch kompatibel ist, was durch Ausführen des folgenden Codes überprüft werden kann:
import torch
print(torch.cuda.is_available()) # 输出 True 表示 GPU 可用
Verwendung
Basic Reasoning: Bild- und Textanalyse
R1-Onevision unterstützt die Ausführung von Inferenzaufgaben über Python-Skripte. Nachfolgend ein Beispiel für das Laden eines Modells und die Verarbeitung eines Bildes und Textes:
- Schreiben von Argumentationsskripten::
Erstellen Sie eine Datei im Stammverzeichnis des Projekts (z. B.infer.py
), geben Sie den folgenden Code ein:
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)
- Laufende Skripte::
python infer.py
Das Skript wird eine Bildbeschreibung und eine Antwort ausgeben. Wenn zum Beispiel zwei Personen auf dem Bild zu sehen sind, könnte das Modell zurückgeben: "Das Bild zeigt eine Parkszene mit zwei Personen, die auf einer Bank sitzen".
Merkmal: Mathe-Reasoning
R1-Onevision zeichnet sich durch mathematisches, visuelles Denken aus. Ausgehend von einem Bild, das ein mathematisches Problem enthält (z. B. "2x + 3 = 7, finde x"), können die folgenden Schritte befolgt werden:
- Änderungen
messages
Der Text lautet: "Beantworten Sie bitte die Mathefrage in diesem Bild und geben Sie die Berechnungen an." - Führen Sie das Skript aus, und das Modell wird ähnliche Ergebnisse wie die folgenden liefern:
图片中的题目是:2x + 3 = 7
解题过程:
1. 两边同时减去 3:2x + 3 - 3 = 7 - 3
2. 简化得:2x = 4
3. 两边同时除以 2:2x / 2 = 4 / 2
4. 得出:x = 2
最终答案:x = 2
Verwendung des Datensatzes
R1-Onevision stellt spezielle Datensätze zur Verfügung, die zur Feinabstimmung oder zum Testen von Modellen verwendet werden können:
- Download des Datensatzes: Hugging Face dataset page.
- Die Daten enthalten Bild- und Textpaare, die nach dem Entpacken direkt zum Training oder zur Validierung verwendet werden können.
Feinabstimmung der Modelle
Wenn ein benutzerdefiniertes Modell benötigt wird, kann eine überwachte Feinabstimmung mit Hilfe der LLama-Factory durchgeführt werden:
- LLama-Factory installieren:
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -r requirements.txt
- Konfigurieren Sie die Trainingsparameter (siehe Projektdokumentation) und führen Sie das Programm aus:
python train.py --model_name models/R1-Onevision-7B --dataset path/to/dataset
Zusammenfassung des Betriebsablaufs
- Bildanalyse: Bereiten Sie den Bildpfad vor, schreiben Sie das Skript und führen Sie es aus, um das Ergebnis zu erhalten.
- mathematische Argumentation: Laden Sie ein Bild des Themas hoch, geben Sie eine Frage ein und sehen Sie sich die ausführliche Antwort an.
- Kundenspezifische EntwicklungLaden Sie den Datensatz und das Modell herunter und passen Sie die Parameter für das Training an.
Achten Sie auf die Nutzung des GPU-Speichers. Es werden mindestens 16 GB Videospeicher empfohlen, um einen reibungslosen Betrieb zu gewährleisten.