Allgemeine Einführung
InternVL ist ein quelloffenes multimodales Big-Model-Projekt, das vom Shanghai Artificial Intelligence Lab (OpenGVLab) entwickelt und auf GitHub gehostet wird. Das Ziel von InternVL ist es, eine Open-Source-Alternative zu kommerziellen Modellen (z.B. GPT-4o) für eine Vielzahl von Aufgaben wie visuelle Wahrnehmung, cross-modales Retrieval und multimodale Dialoge zu entwickeln. Das Projekt ist bekannt für seine leistungsstarken visuellen Kodierer, dynamische hochauflösende Unterstützung und effiziente Trainingsstrategien mit Modellgrößen von 1B bis 78B Parametern, die sich für eine Vielzahl von Anwendungsszenarien von Endgeräten bis zu Hochleistungsservern eignen. Der Code, die Modelle und die Datensätze stehen unter der MIT-Lizenz offen, und Forscher und Entwickler sind aufgefordert, sie frei zu nutzen und zu verbessern.
Funktionsliste
- multimodaler DialogUnterstützt Bild-, Video- und Texteingaben, um natürlichsprachliche Antworten für Chats, Fragen und Antworten sowie Aufgabenanweisungen zu generieren.
- BildbearbeitungDynamische Verarbeitung von Bildern mit einer Auflösung von bis zu 4K und Unterstützung von Bildklassifizierung, Segmentierung und Objekterkennung.
- Video-VerständnisAnalyse von Videoinhalten für die Klassifizierung von Videos ohne Stichproben und die Abfrage von Texten in Videos.
- DokumentenauflösungBearbeitung komplexer Dokumente und Spezialisierung auf OCR, Formularerkennung und Dokumentenquiz für Aufgaben wie DocVQA.
- Unterstützung mehrerer SprachenEingebauter mehrsprachiger Textkodierer, der 110+ Sprachgenerierungsaufgaben unterstützt.
- Effizientes ReasoningLMDeploy bietet einen vereinfachten Inferenzprozess, der die Verarbeitung von mehreren Bildern und langen Kontexten unterstützt.
- Offenheit der DatensätzeBietet große multimodale Datensätze wie ShareGPT-4o, die Bilder, Video und Audio enthalten.
Hilfe verwenden
Einbauverfahren
Um InternVL lokal zu verwenden, müssen Sie Ihre Python-Umgebung konfigurieren und die relevanten Abhängigkeiten installieren. Im Folgenden finden Sie die detaillierten Installationsschritte:
- Klon-Lager
Führen Sie den folgenden Befehl im Terminal aus, um den InternVL-Quellcode zu erhalten:git clone https://github.com/OpenGVLab/InternVL.git cd InternVL
- Erstellen einer virtuellen Umgebung
Erstellen Sie eine Python 3.9 Umgebung mit conda und aktivieren Sie diese:conda create -n internvl python=3.9 -y conda activate internvl
- Installation von Abhängigkeiten
Installieren Sie die erforderlichen Abhängigkeiten für das Projekt, die standardmäßig die notwendigen Bibliotheken für den multimodalen Dialog und die Bildverarbeitung umfassen:pip install -r requirements.txt
Wenn zusätzliche Funktionen benötigt werden (z. B. Bildsegmentierung oder Klassifizierung), können bestimmte Abhängigkeiten manuell installiert werden:
pip install -r requirements/segmentation.txt pip install -r requirements/classification.txt
- Flash-Attention installieren (optional)
Um die Modellinferenz zu beschleunigen, wird empfohlen, Flash-Attention zu installieren:pip install flash-attn==2.3.6 --no-build-isolation
Oder kompilieren Sie aus dem Quellcode:
git clone https://github.com/Dao-AILab/flash-attention.git cd flash-attention git checkout v2.3.6 python setup.py install
- Installieren Sie MMDeploy (optional)
Wenn Sie das Modell in einer Produktionsumgebung einsetzen müssen, installieren Sie MMDeploy:pip install -U openmim mim install mmdeploy
Verwendung
InternVL bietet mehrere Möglichkeiten der Nutzung, einschließlich Befehlszeilenüberlegungen, API-Dienste und interaktive Demonstrationen. Nachfolgend ein Beispiel des InternVL2_5-8B-Modells, um den Arbeitsablauf der Hauptfunktionen vorzustellen:
1. multimodaler Dialog
InternVL unterstützt Dialoge sowohl mit Bild- als auch mit Texteingabe. Im Folgenden wird ein Beispiel für die Argumentation mit LMDeploy gezeigt:
- Vorbereiten von Modellen und BildernVergewissern Sie sich, dass das Modell heruntergeladen wurde (z. B.
OpenGVLab/InternVL2_5-8B
) und bereiten Sie ein Bild vor (z. B.tiger.jpeg
). - logische Schlussfolgerung: Führen Sie den folgenden Python-Code aus, der den Inhalt des Bildes beschreibt:
from lmdeploy import pipeline, TurbomindEngineConfig from lmdeploy.vl import load_image model = 'OpenGVLab/InternVL2_5-8B' image = load_image('https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/tests/data/tiger.jpeg') pipe = pipeline(model, backend_config=TurbomindEngineConfig(session_len=8192)) response = pipe(('描述这张图片', image)) print(response.text)
- am EndeDas Modell gibt eine detaillierte Beschreibung des Bildes aus, z. B. "Das Bild zeigt einen stehenden Tiger mit grünem Gras im Hintergrund".
2. mehrfache Bildverarbeitung
InternVL unterstützt die gleichzeitige Verarbeitung mehrerer Bilder, die sich für Vergleiche oder umfassende Analysen eignen:
- Code-Beispiel::
from lmdeploy.vl.constants import IMAGE_TOKEN image_urls = [ 'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/human-pose.jpg', 'https://raw.githubusercontent.com/open-mmlab/mmdeploy/main/demo/resources/det.jpg' ] images = [load_image(url) for url in image_urls] prompt = f'Image-1: {IMAGE_TOKEN}\nImage-2: {IMAGE_TOKEN}\n描述这两张图片' response = pipe((prompt, images)) print(response.text)
- am EndeDas Modell wird den Inhalt jedes einzelnen Bildes beschreiben und möglicherweise die Beziehungen zwischen den Bildern zusammenfassen.
3. das Parsen von Dokumenten
InternVL erbringt gute Leistungen bei der Dokumentenabfrage (DocVQA) und der Formularerkennung. Der Arbeitsablauf ist wie folgt:
- Vorbereiten von DokumentenbildernHochladen von Bildern, die Text, Tabellen oder Diagramme enthalten.
- Fragen stellenVerwenden Sie Aufforderungen wie "Daten aus einer Tabelle extrahieren" oder "Dokumentinhalt zusammenfassen".
- Code-Beispiel::
image = load_image('document.jpg') response = pipe(('提取图片中表格的内容', image)) print(response.text)
- am EndeDas Modell liefert eine Zusammenfassung der strukturierten Daten der Tabelle oder des Dokuments.
4. die Bereitstellung von API-Diensten
InternVL unterstützt die Bereitstellung von RESTful-APIs über LMDeploy für Produktionsumgebungen:
- Neue Dienste::
lmdeploy serve api_server OpenGVLab/InternVL2_5-8B --server-port 23333
- Zugriff auf die API: Verwenden Sie OpenAI-kompatible Schnittstellen, um Anfragen zu senden, zum Beispiel über die
curl
oder Python-Client-Aufrufmodell.
5. online Präsentation
OpenGVLab bietet eine Online-Demonstrationsplattform (https://internvl.opengvlab.com/
), ist keine Installation erforderlich, um sie zu erleben:
- Besuchen Sie die Website, laden Sie ein Bild oder Video hoch und geben Sie eine Frage ein.
- Das Modell liefert Ergebnisse in Echtzeit und eignet sich daher für schnelle Tests.
Featured Function Bedienung
- Dynamische hohe AuflösungInternVL teilt Bilder automatisch in 448x448 Teile auf und unterstützt eine Auflösung von bis zu 4K. Die Benutzer müssen die Größe der Bilder nicht manuell ändern, sondern sie einfach hochladen.
- Video-VerständnisNach dem Hochladen einer Videodatei in Verbindung mit einer Aufforderung (z. B. "Fassen Sie den Inhalt des Videos zusammen") analysiert das Modell die Schlüsselbilder und erstellt eine Beschreibung.
- Mehrsprachige GenerierungSprache: Geben Sie die Sprache in der Aufforderung an (z. B. "Antworten Sie auf Französisch"), und das Modell erzeugt eine Antwort in der entsprechenden Sprache.
caveat
- Vergewissern Sie sich, dass Sie über genügend GPU-Speicher verfügen (8B-Modelle benötigen etwa 16 GB GPU-Speicher).
- Vergrößern Sie das Kontextfenster bei der Verarbeitung mehrerer Bilder oder langer Videos (
session_len=16384
). - Prüfen Sie abhängige Versionen, um Kompatibilitätsprobleme zu vermeiden.
Anwendungsszenario
- akademische Forschung
Forscher verwenden InternVL, um wissenschaftliche Diagramme zu analysieren, experimentelle Bilder zu verarbeiten oder Tabellendaten aus Papieren zu analysieren. Die hochpräzisen OCR- und Dokumentverstehensfunktionen des Modells erhöhen die Effizienz der Datenextraktion drastisch. - Pädagogische Hilfsmittel
Lehrer und Schüler nutzen InternVL, um bildbezogene Hausaufgaben zu lösen, wie zum Beispiel die Interpretation historischer Bilder oder die Analyse geografischer Diagramme. Die mehrsprachige Unterstützung des Modells ist für internationalisierte Bildungsszenarien geeignet. - Verarbeitung von Unternehmensdokumenten
Unternehmen nutzen InternVL, um die Verarbeitung von gescannten Dokumenten, Verträgen oder Rechnungen zu automatisieren, wichtige Informationen zu extrahieren und Berichte zu erstellen und so Arbeitskosten zu sparen. - Erstellung von Inhalten
Inhaltsersteller nutzen InternVL, um Videomaterial zu analysieren und Skripte oder Untertitel zu erstellen, um die kreative Effizienz zu steigern. - Intelligente Kundenbetreuung
Das Kundendienstsystem integriert InternVL, um vom Benutzer hochgeladene Bilder (z. B. Fotos von Produktfehlern) zu verarbeiten, Probleme schnell zu diagnostizieren und Lösungen anzubieten.
QA
- Welche Modellgrößen werden von InternVL unterstützt?
InternVL bietet Modelle mit Parametern von 1B bis 78B an, die für verschiedene Geräte geeignet sind. 1B-Modelle sind für Edge-Geräte geeignet, während 78B-Modelle eine mit dem GPT-4o vergleichbare Leistung aufweisen. - Wie gehen Sie mit hochauflösenden Bildern um?
Das Modell unterteilt das Bild automatisch in 448x448 Teile und unterstützt 4K-Auflösung. Laden Sie Bilder direkt ohne Vorverarbeitung hoch. - Unterstützt es die Videoanalyse?
Ja, InternVL unterstützt die stichprobenlose Videoklassifizierung und die Abfrage von Text und Video. Laden Sie einfach ein Video hoch und geben Sie das Aufforderungswort ein. - Ist das Modell quelloffen?
InternVL ist vollständig quelloffen, der Code und die Modellgewichte sind auf GitHub unter der MIT-Lizenz verfügbar. - Wie kann die Geschwindigkeit des Denkens optimiert werden?
Installieren Sie Flash-Attention und verwenden Sie die GPU-Beschleunigung. Anpassungensession_len
Parameter, um lange Kontexte zu berücksichtigen.