Ovis : un modèle d'alignement visuel et textuel pour une rétropropagation précise des mots repères de l'image

Introduction générale

Ovis (Open VISion) est un modèle de grand langage multimodal (MLLM) open source développé par l'équipe AIDC-AI de l'Alibaba's International Digital Commerce Group et hébergé sur GitHub, qui utilise une technique innovante d'alignement d'intégration structurelle pour fusionner efficacement les données visuelles et textuelles, prendre en charge les entrées multimodales telles que les images, le texte et la vidéo, et générer le contenu de sortie correspondant. En mars 2025, Ovis a lancé la famille Ovis2 (échelles de paramètres de 1B à 34B), qui offre des performances de miniaturisation supérieures, des capacités d'inférence améliorées et la possibilité de traiter des images et des vidéos à haute résolution. Destiné aux développeurs et aux chercheurs, le projet fournit une documentation et un code détaillés, met l'accent sur la collaboration open source et a déjà gagné en popularité au sein de la communauté.

Ovis:视觉与文本对齐模型,精准反推图像提示词

 

Liste des fonctions

  • Aide à la saisie multimodaleLe système de gestion de l'information : il gère plusieurs types d'entrée tels que les images, le texte, la vidéo, etc.
  • Alignement visuel du texteLes descriptions textuelles : génèrent des descriptions textuelles qui correspondent précisément au contenu de l'image ou de la vidéo.
  • Traitement d'images à haute résolutionLes images sont optimisées pour prendre en charge les images à haute résolution et conserver les détails.
  • Analyse vidéo et multigraphiqueTraitement séquentiel de séquences d'images vidéo et d'images multiples : prend en charge le traitement séquentiel de séquences d'images vidéo et d'images multiples.
  • Amélioration des capacités de raisonnementAméliorer le raisonnement logique grâce à l'adaptation des instructions et à la formation des OPH.
  • Prise en charge de l'OCR en plusieurs languesReconnaître et traiter des textes images multilingues.
  • Plusieurs options de modèlesLes modèles avec des paramètres de 1B à 34B sont disponibles pour s'adapter à différents matériels.
  • Soutien à la version quantitativeLe modèle GPTQ-Int4, par exemple, permet d'abaisser le seuil opérationnel.
  • Intégration de l'interface GradioFournir une interface web intuitive.

 

Utiliser l'aide

Processus d'installation

L'installation d'Ovis repose sur des environnements et des bibliothèques Python spécifiques, comme indiqué ci-dessous :

  1. Préparation de l'environnement
    • Assurez-vous que Git et Anaconda sont installés.
    • Cloner le dépôt Ovis :
      git clone git@github.com:AIDC-AI/Ovis.git
      
    • Créer et activer un environnement virtuel :
      conda create -n ovis python=3.10 -y
      conda activate ovis
      
  2. Installation dépendante
    • Accédez au catalogue de projets :
      cd Ovis
      
    • Installer les dépendances (basées sur requirements.txt) :
      pip install -r requirements.txt
      
    • Installez le paquet Ovis :
      pip install -e .
      
    • (Facultatif) Installation des bibliothèques d'accélération (telles que Flash Attention) :
      pip install flash-attn==2.7.0.post2 --no-build-isolation
      
  3. Validation environnementale
    • Vérifiez la version de PyTorch (2.4.0 recommandée) :
      python -c "import torch; print(torch.__version__)"
      

Comment utiliser Ovis

Ovis supporte à la fois le raisonnement en ligne de commande et les opérations de l'interface Gradio, voici un guide détaillé :

raisonnement en ligne de commande

  1. Préparation des modèles et des données
    • Téléchargez le modèle de Hugging Face (par exemple Ovis2-8B) :
      git clone https://huggingface.co/AIDC-AI/Ovis2-8B
      
    • Préparer les fichiers d'entrée, par exemple les images example.jpg et l'invite "Décrivez cette image".
  2. raisonnement en cours d'exécution
    • Création de scripts 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)
      
    • Exécuter le script :
      python run_ovis.py
      
  3. Voir les résultats
    • Exemple de résultat : "La photo représente un chien debout dans un champ herbeux avec un ciel bleu en arrière-plan".

Fonctionnement de l'interface Gradio

  1. Démarrage des services
    • Exécutez-le à partir du catalogue Ovis :
      python ovis/serve/server.py --model_path AIDC-AI/Ovis2-8B --port 8000
      
    • Attente de chargement, accès http://127.0.0.1:8000.
  2. fonctionnement de l'interface
    • Télécharger une image sur l'interface.
    • Saisissez des questions telles que "Qu'y a-t-il dans cette image ?" .
    • Cliquez sur Soumettre pour afficher les résultats générés.

Fonctions vedettes

Traitement d'images à haute résolution

  • procédureLe modèle est automatiquement partitionné (nombre maximum de partitions : 9).
  • prendreLes travaux d'analyse d'œuvres d'art et d'interprétation de cartes sont les bienvenus.
  • Recommandations concernant le matérielLe dernier ajout au système d'exploitation est la mémoire graphique de 16 Go, qui garantit un fonctionnement fluide.

Analyse vidéo et multigraphique

  • procédure: :
    1. Préparer des images vidéo ou des images multiples telles que [Image.open("frame1.jpg"), Image.open("frame2.jpg")].
    2. Modifier le code d'inférence dans le pixel_values Le paramètre est une liste d'images multiples.
  • prendreLes services d'aide à la décision : Analyser des clips vidéo ou des séquences d'images en continu.
  • Exemple de sortieLe premier cadre est la rue, le second est le piéton.

Prise en charge de l'OCR en plusieurs langues

  • procédurePour plus d'informations, veuillez consulter la rubrique "Extraire le texte de l'image" du site web de la Commission européenne.
  • prendre: Numérisation de documents, traduction du texte de l'image.
  • Exemples de résultats: Extraire des textes mixtes chinois et anglais et générer des descriptions.

Amélioration des capacités de raisonnement

  • procédureLes questions complexes telles que "Combien de personnes y a-t-il sur l'image ? Veuillez expliquer étape par étape".
  • prendre: : Éducation, tâches d'analyse des données.
  • Exemple de sortieLa première étape consiste à observer une personne sur le côté gauche et la deuxième étape consiste à observer une deuxième personne sur le côté droit.

mise en garde

  • exigences en matière de matérielOvis2-1B nécessite 4GB de mémoire vidéo, Ovis2-34B recommande plusieurs GPU (48GB+).
  • Compatibilité des modèlesPrise en charge des principaux LLM (par exemple Qwen2.5) et ViT (par exemple aimv2).
  • Retour d'information de la communautéLes questions peuvent être soumises à GitHub Issues.

 

Ovis2 Image Backpropagation Prompt Word One-Click Installer

Basé sur les modèles Ovis2-4B et Ovis2-2B.

Quark : https://pan.quark.cn/s/23095bb34e7c

Baidu : https://pan.baidu.com/s/12fWAbshwKY8OYcCcv_5Pkg?pwd=2727

Décompressez le mot de passe et trouvez-le vous-même à l'adresse jian27.

© déclaration de droits d'auteur
AiPPT

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...