Ovis (Open VISion) ist eine neuartige Multimodal Large Language Model (MLLM)-Architektur, die darauf ausgelegt ist, visuelle und textuelle Einbettungen strukturell aufeinander abzustimmen. Eine umfassende Einführung finden Sie im Ovis-Artikel.
Ovis wurde mit Python 3.10, Torch 2.4.0, Transformers 4.46.2 und DeepSpeed 0.15.4 getestet. Eine umfassende Liste der Paketabhängigkeiten finden Sie in der Datei requirements.txt
. Bitte installieren Sie Ovis vor der Feinabstimmung oder Inferenz wie folgt.
git clone [email protected]:AIDC-AI/Ovis.git
conda create -n ovis python=3.10 -y
conda activate ovis
cd Ovis
pip install -r requirements.txt
pip install -e .
Ovis kann mit gängigen LLMs instanziiert werden. Wir bieten die folgenden Ovis MLLMs an:
Ovis MLLMs | ViT | LLM | Modellgewichte | Demo |
---|---|---|---|---|
Ovis1.6-Gemma2-27B | Siglip-400M | Gemma2-27B-It | Umarmendes Gesicht | - |
Ovis1.6-Gemma2-9B | Siglip-400M | Gemma2-9B-It | Umarmendes Gesicht | Raum |
Ovis1.6-Llama3.2-3B | Siglip-400M | Lama-3.2-3B-Anleitung | Umarmendes Gesicht | Raum |
Mit 29B- Parametern erreicht Ovis1.6-Gemma2-27B eine außergewöhnliche Leistung im OpenCompass-Benchmark und zählt zu den besten Open-Source-MLLMs.
Mit nur 10B Parametern führt Ovis1.6-Gemma2-9B den OpenCompass-Benchmark unter Open-Source-MLLMs innerhalb von 30B Parametern an.
Ovis1.6-Llama3.2-3B führt den OpenCompass-Benchmark unter Open-Source-MLLMs unter 4B- Parametern an und übertrifft sogar Llama-3.2-11B-Vision-Instruct.
Die Feinabstimmung von Ovis1.6-Gemma2-9B wird in ms-swift unterstützt.
Wir stellen in ovis/serve/runner.py
einen Inferenz-Wrapper bereit, der wie folgt verwendet werden kann:
from PIL import Image
from ovis . serve . runner import RunnerArguments , OvisRunner
image = Image . open ( 'IMAGE_PATH' )
text = 'PROMPT'
runner_args = RunnerArguments ( model_path = 'MODEL_PATH' )
runner = OvisRunner ( runner_args )
generation = runner . run ([ image , text ])
Basierend auf Gradio ist Ovis auch über eine Web-Benutzeroberfläche zugänglich:
python ovis/serve/server.py --model_path MODEL_PATH --port PORT
Wir haben Ovis1.6 mit AutoGPTQ quantisiert. Ausführliche Informationen zum Ausführen und Erstellen Ihrer eigenen quantisierten Version finden Sie in den jeweiligen Huggingface-Modellkarten: Ovis1.6-Gemma2-9B-GPTQ-Int4 und Ovis1.6-Llama3.2-3B-GPTQ-Int4. Quantisiertes Ovis1.6 bietet eine mit seinem nicht quantisierten Gegenstück vergleichbare Leistung und benötigt gleichzeitig weniger GPU-Speicher:
Benchmark-Leistung:
GPU-Speichernutzung (max_partition=9):
Wenn Sie Ovis nützlich finden, zitieren Sie bitte den Artikel
@article{lu2024ovis,
title={Ovis: Structural Embedding Alignment for Multimodal Large Language Model},
author={Shiyin Lu and Yang Li and Qing-Guo Chen and Zhao Xu and Weihua Luo and Kaifu Zhang and Han-Jia Ye},
year={2024},
journal={arXiv:2405.20797}
}
Diese Arbeit ist eine Gemeinschaftsarbeit des MarcoVL-Teams. Wir möchten auch Links zu den folgenden MLLM-Artikeln unseres Teams bereitstellen:
Dieses Projekt ist unter der Apache-Lizenz, Version 2.0 (SPDX-Lizenzkennung: Apache-2.0) lizenziert.
Wir haben während des Trainingsprozesses Algorithmen zur Compliance-Prüfung eingesetzt, um die Compliance des trainierten Modells bestmöglich sicherzustellen. Aufgrund der Komplexität der Daten und der Vielfalt der Verwendungsszenarien des Sprachmodells können wir nicht garantieren, dass das Modell völlig frei von Urheberrechtsproblemen oder unzulässigen Inhalten ist. Wenn Sie glauben, dass etwas Ihre Rechte verletzt oder unangemessene Inhalte generiert, kontaktieren Sie uns bitte und wir werden uns umgehend um die Angelegenheit kümmern.