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, legt Wert auf Open-Source-Zusammenarbeit und hat in der Gemeinschaft bereits Anklang gefunden.
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 zur Senkung der operationellen Schwelle.
- Integration der Gradio-SchnittstelleBereitstellung einer intuitiven Schnittstelle für die Web-Interaktion.
Hilfe verwenden
Ablauf der Installation
Die Installation von Ovis hängt von bestimmten Python-Umgebungen und -Bibliotheken ab, 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 ovis aktivieren
- Abhängige Installation
- Rufen Sie den Projektkatalog auf:
cd Ovis
- Abhängigkeiten installieren (basierend auf
Anforderungen.txt
):pip install -r anforderungen.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-Interface-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
beispiel.jpg
und die Aufforderung "Beschreiben Sie dieses Bild".
- Laden Sie das Modell von Hugging Face herunter (z. B. Ovis2-8B):
- logische Schlussfolgerungen
- Skripte erstellen
run_ovis.py
::Brenner importieren von PIL importieren Image von Transformatoren importieren AutoModelForCausalLM #-Lastmodell model = AutoModelForCausalLM.from_pretrained( "AIDC-AI/Ovis2-8B", torch_dtype=torch.bfloat16, multimodal_max_length=32768, trust_remote_code=True ).cuda() # Tokenisierer holen text_tokenizer = model.get_text_tokenizer() visual_tokenizer = model.get_visual_tokenizer() # Verarbeitung der Eingabe image = Image.open("beispiel.jpg") text = "Beschreiben Sie dieses Bild" query = f"\n{text}" prompt, input_ids, pixel_values = model.preprocess_inputs(query, [image]) attention_mask = torch.ne(input_ids, text_tokenizer.pad_token_id) # Ausgabe generieren mit 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_neue_Tokens=1024 ) output = text_tokenizer.decode(output_ids[0], skip_special_tokens=True) print("Ausgabeergebnis: ", 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_Werte
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.