Ovis (Open VISion) est une nouvelle architecture MLLM (Multimodal Large Language Model), conçue pour aligner structurellement les intégrations visuelles et textuelles. Pour une introduction complète, veuillez vous référer au document Ovis.
Ovis a été testé avec Python 3.10, Torch 2.4.0, Transformers 4.46.2 et DeepSpeed 0.15.4. Pour une liste complète des dépendances des packages, veuillez consulter le fichier requirements.txt
. Avant un réglage fin ou une inférence, veuillez installer Ovis comme suit.
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 peut être instancié avec des LLM populaires. Nous fournissons les MLLM Ovis suivants :
Ovis MLLM | ViT | LLM | Poids du modèle | Démo |
---|---|---|---|---|
Ovis1.6-Gemma2-27B | Siglip-400M | Gemma2-27B-It | Visage câlin | - |
Ovis1.6-Gemma2-9B | Siglip-400M | Gemma2-9B-It | Visage câlin | Espace |
Ovis1.6-Lama3.2-3B | Siglip-400M | Lama-3.2-3B-Instruire | Visage câlin | Espace |
Avec des paramètres 29B , Ovis1.6-Gemma2-27B atteint des performances exceptionnelles dans le benchmark OpenCompass, se classant parmi les MLLM open source de premier plan.
Avec seulement 10 B de paramètres, Ovis1.6-Gemma2-9B est en tête du benchmark OpenCompass parmi les MLLM open source avec 30 B de paramètres.
Ovis1.6-Llama3.2-3B est en tête de la référence OpenCompass parmi les MLLM open source sous les paramètres 4B , surpassant même Llama-3.2-11B-Vision-Instruct.
Le réglage fin Ovis1.6-Gemma2-9B est pris en charge dans ms-swift.
Nous fournissons un wrapper d'inférence dans ovis/serve/runner.py
, qui peut être utilisé comme :
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 ])
Basé sur Gradio, Ovis est également accessible via une interface utilisateur web :
python ovis/serve/server.py --model_path MODEL_PATH --port PORT
Nous avons quantifié Ovis1.6 à l'aide d'AutoGPTQ. Pour des informations détaillées sur l'exécution et la création de votre propre version quantifiée, veuillez vous référer aux cartes modèles Huggingface respectives : Ovis1.6-Gemma2-9B-GPTQ-Int4 et Ovis1.6-Llama3.2-3B-GPTQ-Int4. Quantifié Ovis1.6 maintient des performances comparables à son homologue non quantifié tout en nécessitant moins de mémoire GPU :
Performances de référence :
Utilisation de la mémoire GPU (max_partition=9) :
Si vous trouvez Ovis utile, veuillez citer l'article
@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}
}
Ce travail est un effort collaboratif de l’équipe MarcoVL. Nous aimerions également fournir des liens vers les articles MLLM suivants de notre équipe :
Ce projet est sous licence Apache, version 2.0 (SPDX-License-Identifier : Apache-2.0).
Nous avons utilisé des algorithmes de vérification de la conformité pendant le processus de formation, pour garantir au mieux la conformité du modèle formé. En raison de la complexité des données et de la diversité des scénarios d'utilisation du modèle linguistique, nous ne pouvons pas garantir que le modèle est totalement exempt de problèmes de droits d'auteur ou de contenu inapproprié. Si vous pensez que quelque chose porte atteinte à vos droits ou génère un contenu inapproprié, veuillez nous contacter et nous réglerons le problème dans les plus brefs délais.