Qwen2.5-VL : Un grand modèle multimodal à source ouverte pour l'analyse des images et des documents vidéo

Introduction générale

Qwen2.5-VL est un grand modèle multimodal open source développé par l'équipe de Qwen dans Alibaba Cloud. Il peut traiter simultanément du texte, des images, des vidéos et des documents. Il s'agit d'une version améliorée de Qwen2-VL, construite sur le modèle de langage Qwen2.5. Officiellement, il est grandement amélioré dans l'analyse de documents, la compréhension de vidéos et les fonctions d'agent intelligent, et prend en charge quatre échelles de paramètres, 3B, 7B, 32B et 72B, pour répondre à une variété de besoins, des ordinateurs personnels aux serveurs. Le projet est hébergé sur GitHub sous la licence Apache 2.0 et est gratuit et open-source. qwen2.5-VL obtient de bons résultats dans plusieurs tests, certaines mesures étant plus performantes que celles du modèle fermé, ce qui le rend adapté aux développeurs pour construire des outils intelligents, tels qu'un extracteur de documents, un analyseur vidéo ou un assistant d'utilisation d'appareil.

Qwen2.5-VL:支持图像视频文档解析的开源多模态大模型

 

Liste des fonctions

  • Reconnaissance d'objets, de textes et de mises en page dans des images, avec prise en charge des scènes naturelles et de plusieurs langues.
  • Comprendre des vidéos très longues (plus d'une heure) et localiser des clips d'événements d'une seconde.
  • Il analyse des documents complexes et extrait des textes manuscrits, des tableaux, des graphiques et des formules chimiques.
  • Contrôler un ordinateur ou un téléphone portable par le biais de commandes visuelles et textuelles pour exécuter des tâches d'agent intelligent.
  • Produit des données structurées, telles que des coordonnées ou des informations d'attributs au format JSON.
  • Il prend en charge l'ajustement dynamique de la résolution et de la fréquence d'images afin d'optimiser l'efficacité du traitement vidéo.

 

Utiliser l'aide

Processus d'installation

Pour exécuter Qwen2.5-VL localement, vous devez préparer l'environnement logiciel. Voici les étapes détaillées :

  1. Inspection de l'environnement de base
    Python 3.8+ et Git sont requis. Vérifiez le terminal en entrant la commande suivante :
python --version
git --version

Si vous ne l'avez pas installé, vous pouvez le télécharger sur les sites web de Python et de Git.

  1. Télécharger le code
    Exécutez la commande suivante dans un terminal pour cloner votre dépôt GitHub :
git clone https://github.com/QwenLM/Qwen2.5-VL.git
cd Qwen2.5-VL
  1. Installation des dépendances
    Le projet nécessite des bibliothèques Python spécifiques, qui sont installées en exécutant la commande suivante :
pip install git+https://github.com/huggingface/transformers@f3f6c86582611976e72be054675e2bf0abb5f775
pip install accelerate
pip install qwen-vl-utils[decord]
pip install 'vllm>0.7.2'

Si vous disposez d'un GPU, installez PyTorch avec le support CUDA :

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

Notes :decord Pour un chargement accéléré de la vidéo, les utilisateurs non-Linux peuvent télécharger la vidéo à partir du site web decord GitHub Installation du code source.

  1. modèle d'amorçage
    Téléchargez et exécutez le modèle, par exemple la version 7B :
vllm serve Qwen/Qwen2.5-VL-7B-Instruct --port 8000 --host 0.0.0.0 --dtype bfloat16

Les modèles sont automatiquement téléchargés depuis Hugging Face et les services locaux sont lancés.

Comment utiliser les principales fonctionnalités

Après l'installation, Qwen2.5-VL peut être utilisé à partir d'un code ou d'une interface web.

reconnaissance d'images

Vous voulez que le modèle décrive l'image ? Créez un nouveau image_test.py, entrez le code suivant :

from transformers import Qwen2VLForConditionalGeneration, AutoProcessor
from qwen_vl_utils import process_vision_info
from PIL import Image
model = Qwen2VLForConditionalGeneration.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct", torch_dtype="auto", device_map="auto")
processor = AutoProcessor.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct")
messages = [{"role": "user", "content": [{"type": "image", "image": "图片路径或URL"}, {"type": "text", "text": "描述这张图片"}]}]
text = processor.apply_chat_template(messages, tokenize=False)
inputs = processor(text=[text], images=[Image.open("图片路径或URL")], padding=True, return_tensors="pt").to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128)
output = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output)

Lorsqu'il est exécuté, le modèle produit une description, par exemple "L'image montre un chat assis sur le rebord d'une fenêtre".

Compréhension vidéo

Des fichiers locaux doivent être préparés pour l'analyse de la vidéo (par ex. video.mp4). Utilisez le code suivant :

messages = [{"role": "user", "content": [{"type": "video", "video": "video.mp4"}, {"type": "text", "text": "总结视频内容"}]}]
text = processor.apply_chat_template(messages, tokenize=False)
inputs = processor(text=[text], videos=[processor.process_video("video.mp4")], padding=True, return_tensors="pt").to("cuda")
generated_ids = model.generate(**inputs, max_new_tokens=128)
output = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output)

Le résultat pourrait être : "La vidéo montre un concours de cuisine où les concurrents préparent des pizzas".

résolution des documents

Téléchargez un PDF ou une image, utilisez un code similaire à la reconnaissance d'image, changez l'invite en "Extraire les données du tableau", le modèle renverra des résultats structurés, comme par exemple :

[{"列1": "值1", "列2": "值2"}]

Agents intelligents

Vous souhaitez contrôler un appareil ? Utilisez la fonction cookbooks/computer_use.ipynb Exemple. Après l'avoir lancé, tapez "Ouvrez le bloc-notes et tapez 'Hello'" et le modèle simulera l'opération et renverra le résultat.

Utilisation de l'interface web

être en mouvement web_demo_mm.py Lancer l'interface web :

python web_demo_mm.py

accès au navigateur http://127.0.0.1:7860Si vous ne savez pas si vous devez télécharger un fichier ou entrer une commande, le modèle la traitera directement.

optimiser les performances

  • Flash Attention 2: Raisonnement accéléré, utilisé après l'installation :
    pip install -U flash-attn --no-build-isolation
    python web_demo_mm.py --flash-attn2
    
  • Ajustement de la résolution: Réglages min_pixels répondre en chantant max_pixels Contrôlez la taille de l'image, par exemple entre 256 et 1280, pour équilibrer la vitesse et la mémoire.

 

scénario d'application

  1. recherche universitaire
    Les étudiants téléchargent des images de leur thèse, le modèle extrait des formules et des données et génère une analyse.
  2. clip vidéo
    Le créateur saisit une longue vidéo et le modèle extrait les séquences clés pour générer un résumé.
  3. Gestion des documents d'entreprise
    L'employé télécharge une copie scannée du contrat, le modèle extrait les clauses et produit le formulaire.
  4. assistant intelligent
    L'utilisateur utilise des images et des commandes vocales pour que le modèle recherche des informations sur les vols sur son téléphone portable.

 

QA

  1. Quelles sont les langues prises en charge ?
    Prend en charge le chinois, l'anglais et plusieurs langues (par exemple, le français et l'allemand), reconnaît les textes multilingues et les contenus manuscrits.
  2. Quelles sont les exigences en matière de matériel ?
    Le modèle 3B nécessite 8 Go de mémoire vidéo, le modèle 7B 16 Go et les appareils professionnels avec 24 Go ou plus de mémoire vidéo sont recommandés pour les modèles 32B et 72B.
  3. Comment gérer les vidéos très longues ?
    Les modèles sont échantillonnés avec des fréquences d'images dynamiques et sont capables de comprendre des heures de vidéo et de repérer des événements de second niveau.
© 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...