AI Personal Learning
und praktische Anleitung
豆包Marscode1

Qwen2.5-VL: Ein quelloffenes multimodales Großmodell für die Analyse von Bild- und Videodokumenten

Allgemeine Einführung

Qwen2.5-VL ist ein quelloffenes multimodales Big Model, das vom Qwen-Team in der Alibaba Cloud entwickelt wurde. Es kann gleichzeitig Texte, Bilder, Videos und Dokumente verarbeiten und ist eine aktualisierte Version von Qwen2-VL, die auf dem Qwen2.5-Sprachmodell aufbaut. Offiziell wurden die Funktionen für das Parsen von Dokumenten, das Verstehen von Videos und intelligente Agenten stark verbessert, und es werden vier Parameterskalen (3B, 7B, 32B und 72B) unterstützt, um einer Vielzahl von Anforderungen gerecht zu werden, von Personalcomputern bis zu Servern. Das Projekt wird auf GitHub unter der Apache-2.0-Lizenz gehostet und ist kostenlos und quelloffen. qwen2.5-VL schneidet in mehreren Tests gut ab, wobei einige Metriken das Closed-Source-Modell übertreffen, so dass es sich für Entwickler eignet, um intelligente Tools wie einen Dokumentenextraktor, einen Videoanalysator oder einen Assistenten für die Gerätebedienung zu entwickeln.

Qwen2.5-VL:支持图像视频文档解析的开源多模态大模型-1


 

Funktionsliste

  • Erkennen von Objekten, Text und Layouts in Bildern, mit Unterstützung für natürliche Szenen und mehrere Sprachen.
  • Verstehen Sie sehr lange Videos (über eine Stunde) und finden Sie sekundengenaue Ereignisclips.
  • Analysiert komplexe Dokumente und extrahiert handschriftlichen Text, Tabellen, Diagramme und chemische Formeln.
  • Steuerung eines Computers oder Mobiltelefons durch visuelle und textuelle Befehle zur Ausführung von Aufgaben eines intelligenten Agenten.
  • Gibt strukturierte Daten, wie Koordinaten oder Attributinformationen im JSON-Format aus.
  • Unterstützt dynamische Auflösungs- und Bildratenanpassung zur Optimierung der Effizienz der Videoverarbeitung.

 

Hilfe verwenden

Einbauverfahren

Um Qwen2.5-VL lokal auszuführen, müssen Sie die Softwareumgebung vorbereiten. Im Folgenden werden die einzelnen Schritte beschrieben:

  1. Inspektion der grundlegenden Umgebung
    Python 3.8+ und Git sind erforderlich. Überprüfen Sie das Terminal durch Eingabe des folgenden Befehls:
python --version
git --version

Wenn Sie es nicht installiert haben, können Sie es von den Python- und Git-Webseiten herunterladen.

  1. Code herunterladen
    Führen Sie den folgenden Befehl in einem Terminal aus, um Ihr GitHub-Repository zu klonen:
git clone https://github.com/QwenLM/Qwen2.5-VL.git
cd Qwen2.5-VL
  1. Installation von Abhängigkeiten
    Das Projekt benötigt bestimmte Python-Bibliotheken, die mit folgendem Befehl installiert werden:
pip install git+https://github.com/huggingface/transformers@f3f6c86582611976e72be054675e2bf0abb5f775
pip install accelerate
pip install qwen-vl-utils[decord]
pip install 'vllm>0.7.2'

Wenn Sie eine GPU haben, installieren Sie PyTorch mit CUDA-Unterstützung:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

Anmerkungen:decord Um das Laden des Videos zu beschleunigen, können Nicht-Linux-Benutzer das Video von der decord GitHub Installation des Quellcodes.

  1. Grundierungsmodell
    Laden Sie das Modell herunter und führen Sie es aus, z. B. die Version 7B:
vllm serve Qwen/Qwen2.5-VL-7B-Instruct --port 8000 --host 0.0.0.0 --dtype bfloat16

Die Modelle werden automatisch von Hugging Face heruntergeladen und die lokalen Dienste werden gestartet.

Verwendung der wichtigsten Funktionen

Nach der Installation kann Qwen2.5-VL über den Code oder das Webinterface bedient werden.

Bilderkennung

Soll das Modell das Bild beschreiben? Erstellen Sie eine neue image_test.pygeben Sie den folgenden Code ein:

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)

Bei der Ausführung gibt das Modell eine Beschreibung aus, z. B. "Das Bild zeigt eine Katze, die auf einer Fensterbank sitzt".

Video-Verständnis

Lokale Dateien müssen für die Analyse des Videos vorbereitet werden (z. B. video.mp4). Verwenden Sie den folgenden Code:

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)

Die Ausgabe könnte lauten: "Das Video zeigt einen Kochwettbewerb, bei dem die Teilnehmer Pizzen backen.

Dokumentenauflösung

Laden Sie eine PDF-Datei oder ein Bild hoch, verwenden Sie einen Code, der der Bilderkennung ähnelt, ändern Sie die Eingabeaufforderung in "Tabellendaten extrahieren", und das Modell wird strukturierte Ergebnisse liefern, z. B:

[{"列1": "值1", "列2": "值2"}]

Intelligente Agenten

Möchten Sie ein Gerät steuern? Verwenden Sie cookbooks/computer_use.ipynb Beispiel. Nachdem Sie es ausgeführt haben, geben Sie ein: "Öffnen Sie Notepad und geben Sie 'Hallo' ein", und das Modell wird den Vorgang simulieren und das Ergebnis zurückgeben.

Nutzung der Webschnittstelle

in Bewegung sein web_demo_mm.py Starten Sie das Webinterface:

python web_demo_mm.py

Browser-Zugang http://127.0.0.1:7860Wenn Sie sich nicht sicher sind, ob Sie eine Datei hochladen oder einen Befehl eingeben sollen, wird das Modell diesen direkt verarbeiten.

Leistung optimieren

  • Blitzlicht Aufmerksamkeit 2Beschleunigte Argumentation, wird nach der Installation verwendet:
    pip install -U flash-attn --no-build-isolation
    python web_demo_mm.py --flash-attn2
    
  • Auflösung Anpassung: Einstellungen min_pixels im Gesang antworten max_pixels Steuern Sie die Bildgröße, z. B. im Bereich 256-1280, um ein Gleichgewicht zwischen Geschwindigkeit und Speicherplatz zu erreichen.

 

Anwendungsszenario

  1. akademische Forschung
    Die Schüler laden Bilder ihrer Arbeiten hoch, und das Modell extrahiert Formeln und Daten, um eine Analyse zu erstellen.
  2. Videoclip
    Der Ersteller gibt ein langes Video ein und das Modell extrahiert die wichtigsten Clips, um eine Zusammenfassung zu erstellen.
  3. Verwaltung von Unternehmensdokumenten
    Der Arbeitnehmer lädt eine gescannte Kopie des Vertrags hoch, das Modell extrahiert die Klauseln und gibt das Formular aus.
  4. intelligenter Assistent
    Der Benutzer verwendet Bilder und Sprachbefehle, um das Modell dazu zu bringen, Fluginformationen auf seinem Mobiltelefon nachzuschlagen.

 

QA

  1. Welche Sprachen werden unterstützt?
    Unterstützt Chinesisch, Englisch und mehrere Sprachen (z. B. Französisch, Deutsch), erkennt mehrsprachigen Text und handschriftliche Inhalte.
  2. Welche Hardware-Anforderungen gibt es?
    Für das Modell 3B sind 8 GB Videospeicher erforderlich, für 7B 16 GB und für 32B und 72B werden professionelle Geräte mit 24 GB und mehr Videospeicher empfohlen.
  3. Wie geht man mit überlangen Videos um?
    Die Modelle werden mit dynamischen Bildraten abgetastet und sind in der Lage, stundenlanges Videomaterial zu verstehen und Ereignisse der zweiten Ebene zu erkennen.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Qwen2.5-VL: Ein quelloffenes multimodales Großmodell für die Analyse von Bild- und Videodokumenten
de_DEDeutsch