InternVL : Open Source Multimodal Large Models for Image, Video and Text Processing (en anglais)

Introduction générale

InternVL est un projet de grand modèle multimodal open source développé par le Shanghai Artificial Intelligence Lab (OpenGVLab) et hébergé sur GitHub. Il intègre des capacités de traitement visuel et linguistique pour soutenir la compréhension globale des images, des vidéos et des textes. L'objectif d'InternVL est de construire une alternative open-source comparable aux modèles commerciaux (par exemple, GPT-4o) pour un large éventail de tâches telles que la perception visuelle, la recherche multimodale et les dialogues multimodaux. Le projet est connu pour ses puissants encodeurs visuels, sa prise en charge dynamique de la haute résolution et ses stratégies d'apprentissage efficaces, avec des tailles de modèle allant de 1B à 78B paramètres, convenant à un large éventail de scénarios d'application allant des appareils de pointe aux serveurs à haute performance. Le code, les modèles et les ensembles de données sont ouverts sous la licence MIT, et les chercheurs et les développeurs sont encouragés à les utiliser et à les améliorer librement.

InternVL:开源多模态大模型,支持图像、视频和文本处理

 

Liste des fonctions

  • dialogue multimodalLe système d'information sur la vie privée : il prend en charge les entrées d'images, de vidéos et de textes afin de générer des réponses en langage naturel pour le chat, les questions-réponses et les instructions de tâches.
  • traitement de l'imageTraitement dynamique des images jusqu'à une résolution de 4K et prise en charge de la classification, de la segmentation et de la détection d'objets.
  • Compréhension vidéo: Analyse du contenu vidéo pour la classification vidéo à échantillonnage zéro et la recherche texte-vidéo.
  • résolution des documentsLa société est spécialisée dans l'OCR, la reconnaissance de formes et l'interrogation de documents pour des tâches telles que DocVQA.
  • Prise en charge multilingueLe système d'encodage de texte multilingue intégré prend en charge plus de 110 tâches de génération de langues.
  • Raisonnement efficaceLMDeploy : fournit un processus d'inférence simplifié par le biais de LMDeploy, prenant en charge le traitement d'images multiples et de contextes longs.
  • Ouverture des ensembles de données: Fournit des ensembles de données multimodales à grande échelle tels que ShareGPT-4o, contenant des images, de la vidéo et de l'audio.

 

Utiliser l'aide

Processus d'installation

Pour utiliser InternVL localement, vous devez configurer votre environnement Python et installer les dépendances nécessaires. Voici les étapes détaillées de l'installation :

  1. entrepôt de clones
    Exécutez la commande suivante dans le terminal pour obtenir le code source d'InternVL :

    git clone https://github.com/OpenGVLab/InternVL.git
    cd InternVL
    
  2. Créer un environnement virtuel
    Créez un environnement Python 3.9 avec conda et activez-le :

    conda create -n internvl python=3.9 -y
    conda activate internvl
    
  3. Installation des dépendances
    Installez les dépendances requises pour le projet, qui comprennent par défaut les bibliothèques nécessaires au dialogue multimodal et au traitement des images :

    pip install -r requirements.txt
    

    Si des fonctionnalités supplémentaires sont nécessaires (comme la segmentation ou la classification d'images), des dépendances spécifiques peuvent être installées manuellement :

    pip install -r requirements/segmentation.txt
    pip install -r requirements/classification.txt
    
  4. Installer le Flash-Attention (optionnel)
    Pour accélérer l'inférence du modèle, il est recommandé d'installer Flash-Attention :

    pip install flash-attn==2.3.6 --no-build-isolation
    

    Ou compiler à partir des sources :

    git clone https://github.com/Dao-AILab/flash-attention.git
    cd flash-attention
    git checkout v2.3.6
    python setup.py install
    
  5. Installer MMDeploy (optionnel)
    Si vous devez déployer le modèle dans un environnement de production, installez MMDeploy :

    pip install -U openmim
    mim install mmdeploy
    

Utilisation

InternVL offre de multiples possibilités d'utilisation, y compris le raisonnement en ligne de commande, les services API et les démonstrations interactives. Voici un exemple du modèle InternVL2_5-8B pour présenter le flux d'opérations des principales fonctions :

1. le dialogue multimodal

InternVL prend en charge les dialogues avec des images et du texte. Voici un exemple de raisonnement à l'aide de LMDeploy :

  • Préparation des modèles et des imagesLe modèle doit être téléchargé : Assurez-vous que le modèle a été téléchargé (par ex. OpenGVLab/InternVL2_5-8B) et de préparer une image (par ex. tiger.jpeg).
  • raisonnement en cours d'exécutionLe code Python suivant, qui décrit le contenu de l'image, est exécuté :
    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)
    
  • en fin de compteLe modèle produit une description détaillée de l'image, par exemple "L'image représente un tigre debout avec de l'herbe verte en arrière-plan".

2. traitement d'images multiples

InternVL permet le traitement simultané de plusieurs images, ce qui convient à la comparaison ou à l'analyse globale :

  • exemple de code: :
    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)
    
  • en fin de compteLe modèle décrira le contenu de chaque image séparément et résumera éventuellement les relations entre elles.

3. l'analyse des documents

InternVL donne de bons résultats dans les tâches d'interrogation de documents (DocVQA) et de reconnaissance de formes. Le déroulement des opérations est le suivant :

  • Préparation des images de documentsLes images : Téléchargez des images qui contiennent du texte, des tableaux ou des graphiques.
  • poser des questionsLes questions suivantes peuvent être posées : "Extraire des données d'un tableau" ou "Résumer le contenu d'un document".
  • exemple de code: :
    image = load_image('document.jpg')
    response = pipe(('提取图片中表格的内容', image))
    print(response.text)
    
  • en fin de compteLe modèle renvoie un résumé des données structurées du tableau ou du document.

4. déploiement des services API

InternVL prend en charge le déploiement d'API RESTful via LMDeploy pour les environnements de production :

  • Démarrage des services: :
    lmdeploy serve api_server OpenGVLab/InternVL2_5-8B --server-port 23333
    
  • Accès à l'API: Utiliser des interfaces compatibles avec l'OpenAI pour envoyer des requêtes, par exemple par le biais de l'interface curl ou le modèle d'appel client Python.

5. présentation en ligne

OpenGVLab fournit une plateforme de démonstration en ligne (https://internvl.opengvlab.com/), aucune installation n'est nécessaire pour en faire l'expérience :

  • Visitez le site web, téléchargez une image ou une vidéo, posez une question.
  • Le modèle renvoie les résultats en temps réel, ce qui permet d'effectuer des tests rapides.

Fonction en vedette Fonctionnement

  • Dynamique Haute RésolutionInternVL : InternVL divise automatiquement les images en morceaux de 448x448 et prend en charge une résolution allant jusqu'à 4K. Les utilisateurs n'ont pas besoin de redimensionner manuellement les images, il suffit de les télécharger.
  • Compréhension vidéoEn téléchargeant un fichier vidéo, associé à une invite (par exemple, "résumez le contenu de la vidéo"), le modèle analyse les images clés et génère une description.
  • Génération multilingueLe modèle génère une réponse dans la langue correspondante, en spécifiant la langue dans l'invite (par exemple, "Répondez en français").

mise en garde

  • Assurez-vous que vous disposez de suffisamment de mémoire GPU (les modèles 8B nécessitent environ 16 Go de mémoire GPU).
  • Augmenter la fenêtre contextuelle lors du traitement de plusieurs images ou de longues vidéos (session_len=16384).
  • Vérifiez les versions dépendantes pour éviter les problèmes de compatibilité.

 

scénario d'application

  1. recherche universitaire
    Les chercheurs utilisent InternVL pour analyser les diagrammes scientifiques, traiter les images expérimentales ou analyser les données tabulaires des documents. Les capacités d'OCR de haute précision et de compréhension des documents du modèle augmentent considérablement l'efficacité de l'extraction des données.
  2. Aides pédagogiques
    Les enseignants et les étudiants utilisent InternVL pour résoudre des problèmes de devoirs liés à l'image, tels que l'interprétation d'images historiques ou l'analyse de diagrammes géographiques. Le support multilingue du modèle convient aux scénarios éducatifs internationalisés.
  3. Traitement des documents d'entreprise
    Les organisations utilisent InternVL pour automatiser le traitement des documents scannés, des contrats ou des factures, en extrayant les informations clés et en générant des rapports, ce qui permet de réduire les coûts de main-d'œuvre.
  4. création de contenu
    Les créateurs de contenu utilisent InternVL pour analyser les séquences vidéo et générer des scripts ou des sous-titres afin d'améliorer l'efficacité de la création.
  5. Service client intelligent
    Le système de service à la clientèle intègre InternVL pour traiter les images téléchargées par les utilisateurs (par exemple, les photos de produits défectueux), diagnostiquer rapidement les problèmes et fournir des solutions.

 

QA

  1. Quelles sont les tailles de modèles prises en charge par InternVL ?
    InternVL propose des modèles avec des paramètres allant de 1B à 78B, adaptés à différents appareils. Les modèles 1B sont adaptés aux appareils de bord, tandis que les modèles 78B ont des performances comparables à celles du GPT-4o.
  2. Comment gérez-vous les images à haute résolution ?
    Le modèle divise automatiquement l'image en morceaux de 448 x 448 et prend en charge la résolution 4K. Téléchargez les images directement sans prétraitement.
  3. Prend-il en charge l'analyse vidéo ?
    Oui, InternVL prend en charge la classification vidéo sans échantillon et l'extraction texte-vidéo. Il suffit de télécharger une vidéo et de saisir le mot-clé.
  4. Le modèle est-il open source ?
    InternVL est entièrement open source, le code et les poids du modèle étant disponibles sur GitHub sous la licence MIT.
  5. Comment optimiser la vitesse de raisonnement ?
    Installez Flash-Attention et utilisez l'accélération GPU. Ajustements session_len pour tenir compte des contextes longs.
© 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...