Allgemeine Einführung
Ovis (Open VISion) ist ein vom AIDC-AI-Team der International Digital Commerce Group von Alibaba entwickeltes und auf GitHub gehostetes Open-Source-Multimodal-Large-Language-Model (MLLM), das eine innovative strukturelle Einbettungsausrichtungstechnik verwendet, um visuelle und textuelle Daten effizient zusammenzuführen, multimodale Eingaben wie Bilder, Texte und Videos zu unterstützen und die entsprechenden Ausgabeinhalte zu erzeugen. Ab März 2025 hat Ovis die Ovis2-Familie (Parameterskalen 1B bis 34B) auf den Markt gebracht, die eine überlegene Miniaturisierungsleistung, verbesserte Inferenzfähigkeiten und die Fähigkeit zur Verarbeitung hochauflösender Bilder und Videos bietet. Das Projekt, das sich an Entwickler und Forscher richtet, bietet eine ausführliche Dokumentation und Code, betont die Open-Source-Zusammenarbeit und hat in der Gemeinschaft bereits an Boden gewonnen.
Funktionsliste
- Multimodale EingabeunterstützungVerarbeitet mehrere Eingabearten wie Bilder, Text, Video usw.
- Visuelle TextausrichtungGenerieren Sie Textbeschreibungen, die genau zum Bild- oder Videoinhalt passen.
- Hochauflösende BildverarbeitungOptimiert, um hochauflösende Bilder zu unterstützen und Details zu erhalten.
- Video- und MultigraphenanalyseUnterstützt die sequentielle Verarbeitung von Videobildsequenzen und mehreren Bildern.
- Verbessertes logisches DenkenVerbesserung des logischen Denkens durch Unterrichtsoptimierung und DPO-Training.
- Mehrsprachige OCR-UnterstützungErkennung und Verarbeitung von mehrsprachigem Bildtext.
- Mehrere ModelloptionenModelle mit Parametern von 1B bis 34B sind für unterschiedliche Hardware erhältlich.
- Unterstützung der quantitativen Version: z.B. Modell GPTQ-Int4, um die operationelle Schwelle zu senken.
- Integration der Gradio-SchnittstelleBereitstellung einer intuitiven Schnittstelle für die Web-Interaktion.
Hilfe verwenden
Einbauverfahren
Die Installation von Ovis ist auf bestimmte Python-Umgebungen und -Bibliotheken angewiesen, die im Folgenden beschrieben werden:
- Vorbereitung der Umwelt
- Stellen Sie sicher, dass Git und Anaconda installiert sind.
- Klonen Sie das Ovis-Repository:
git clone git@github.com:AIDC-AI/Ovis.git
- Erstellen und aktivieren Sie eine virtuelle Umgebung:
conda create -n ovis python=3.10 -y conda activate ovis
- Abhängige Installation
- Rufen Sie den Projektkatalog auf:
cd Ovis
- Abhängigkeiten installieren (basierend auf
requirements.txt
):pip install -r requirements.txt
- Installieren Sie das Ovis-Paket:
pip install -e .
- (Optional) Installation von Beschleunigungsbibliotheken (z. B. Flash Attention):
pip install flash-attn==2.7.0.post2 --no-build-isolation
- Rufen Sie den Projektkatalog auf:
- Validierung der Umwelt
- Überprüfen Sie die PyTorch-Version (2.4.0 empfohlen):
python -c "import torch; print(torch.__version__)"
- Überprüfen Sie die PyTorch-Version (2.4.0 empfohlen):
Wie man Ovis verwendet
Ovis unterstützt sowohl Befehlszeilen- als auch Gradio-Schnittstellen-Operationen. Hier finden Sie eine detaillierte Anleitung:
Befehlszeilenargumentation
- Aufbereitung von Modellen und Inputs
- Laden Sie das Modell von Hugging Face herunter (z. B. Ovis2-8B):
git clone https://huggingface.co/AIDC-AI/Ovis2-8B
- Vorbereiten von Eingabedateien, z. B. Bilder
example.jpg
und die Aufforderung "Beschreiben Sie dieses Bild".
- Laden Sie das Modell von Hugging Face herunter (z. B. Ovis2-8B):
- logische Schlussfolgerung
- Skripte erstellen
run_ovis.py
::import torch from PIL import Image from transformers import AutoModelForCausalLM # 加载模型 model = AutoModelForCausalLM.from_pretrained( "AIDC-AI/Ovis2-8B", torch_dtype=torch.bfloat16, multimodal_max_length=32768, trust_remote_code=True ).cuda() # 获取 tokenizer text_tokenizer = model.get_text_tokenizer() visual_tokenizer = model.get_visual_tokenizer() # 处理输入 image = Image.open("example.jpg") text = "描述这张图片" query = f"<image>\n{text}" prompt, input_ids, pixel_values = model.preprocess_inputs(query, [image]) attention_mask = torch.ne(input_ids, text_tokenizer.pad_token_id) # 生成输出 with torch.inference_mode(): output_ids = model.generate( input_ids.unsqueeze(0).cuda(), pixel_values=[pixel_values.cuda()], attention_mask=attention_mask.unsqueeze(0).cuda(), max_new_tokens=1024 ) output = text_tokenizer.decode(output_ids[0], skip_special_tokens=True) print("输出结果:", output)
- Führen Sie das Skript aus:
python run_ovis.py
- Skripte erstellen
- Ergebnisse anzeigen
- Beispiel: "Das Bild zeigt einen Hund auf einer Wiese mit blauem Himmel im Hintergrund".
Gradio Interface Betrieb
- Neue Dienste
- Führen Sie es über den Ovis-Katalog aus:
python ovis/serve/server.py --model_path AIDC-AI/Ovis2-8B --port 8000
- Warten auf das Laden, Zugriff auf
http://127.0.0.1:8000
.
- Führen Sie es über den Ovis-Katalog aus:
- Schnittstellenbetrieb
- Laden Sie ein Bild auf die Schnittstelle hoch.
- Geben Sie Aufforderungen wie "Was ist auf diesem Bild?" ein. .
- Klicken Sie auf Senden, um die generierten Ergebnisse anzuzeigen.
Ausgewählte Funktionen
Hochauflösende Bildverarbeitung
- VerfahrenLaden Sie hochauflösende Bilder hoch und das Modell wird automatisch partitioniert (maximale Anzahl von Partitionen 9).
- Nehmen Sie: Geeignet für Aufgaben wie die Analyse von Kunstwerken und die Interpretation von Karten.
- Hardware-EmpfehlungenDie neueste Ergänzung des Betriebssystems ist der 16 GB große Grafikspeicher, der für einen reibungslosen Betrieb sorgt.
Video- und Multigraphenanalyse
- Verfahren::
- Bereiten Sie Videobilder oder mehrere Bilder vor, z. B.
[Image.open("frame1.jpg"), Image.open("frame2.jpg")]
. - Ändern Sie den Inferenzcode in der Datei
pixel_values
Der Parameter ist eine Liste mit mehreren Bildern.
- Bereiten Sie Videobilder oder mehrere Bilder vor, z. B.
- Nehmen SieAnalyse von Videoclips oder Sequenzen von kontinuierlichen Bildern.
- Beispielhafte AusgabeDer erste Rahmen ist eine Straße, der zweite ein Fußgänger".
Mehrsprachige OCR-Unterstützung
- VerfahrenHochladen von Bildern mit Text in mehreren Sprachen und Eingabe der Aufforderung "Text aus Bild extrahieren".
- Nehmen SieScannen von Dokumenten, Übersetzen von Bildtext.
- Beispiele für ErgebnisseExtrahieren gemischter chinesischer und englischer Texte und Erstellen von Beschreibungen.
Verbessertes logisches Denken
- VerfahrenEingabe komplexer Fragen wie "Wie viele Personen sind auf dem Bild zu sehen? Bitte erklären Sie Schritt für Schritt".
- Nehmen SieBildung, Aufgaben der Datenanalyse.
- Beispielhafte AusgabeDer erste Schritt besteht darin, eine Person auf der linken Seite zu beobachten und der zweite Schritt darin, eine zweite Person auf der rechten Seite zu beobachten.
caveat
- Hardware-VoraussetzungOvis2-1B benötigt 4 GB Videospeicher, Ovis2-34B empfiehlt mehrere GPUs (48 GB+).
- Kompatibilität der ModelleUnterstützung für LLM (z. B. Qwen2.5) und ViT (z. B. aimv2).
- Feedback der GemeinschaftIssues können auf GitHub Issues eingereicht werden.
Ovis2 Image Backpropagation Prompt Word Ein-Klick-Installer
Basierend auf den Modellen Ovis2-4B und Ovis2-2B.
Quark: https://pan.quark.cn/s/23095bb34e7c
Baidu: https://pan.baidu.com/s/12fWAbshwKY8OYcCcv_5Pkg?pwd=2727
Entpacken Sie das Passwort und finden Sie es selbst unter jian27.