InternLM-XComposer : un macromodèle multimodal pour l'édition de textes très longs et la compréhension d'images et de vidéos
Introduction générale
InternLM-XComposer est un projet de macromodélisation graphique multimodale open source développé par l'équipe InternLM et hébergé sur GitHub. Il est basé sur le modèle de langage InternLM et est capable de traiter des données multimodales telles que du texte, des images et des vidéos, et est largement utilisé dans les domaines de la création graphique, de la compréhension d'images et de l'analyse vidéo. Le projet est connu pour sa capacité à prendre en charge des contextes d'une longueur maximale de 96K, à traiter des images haute résolution de 4K et à comprendre des vidéos à grain fin, avec des performances comparables à celles de GPT-4V en utilisant seulement 7B paramètres. Le code, les poids des modèles et la documentation détaillée sont accessibles via GitHub pour les chercheurs, les développeurs et les utilisateurs intéressés par l'IA multimodale. Depuis février 2025, le projet a publié plusieurs versions, dont InternLM-XComposer-2.5 et OmniLive, afin d'optimiser en permanence l'expérience d'interaction multimodale.

Liste des fonctions
- Prise en charge des sorties contextuelles ultra-longues : gère jusqu'à 96K de contenu graphique mixte pour les tâches complexes.
- Compréhension des images haute résolution : permet d'analyser des images de 336 pixels à 4K avec des détails clairs.
- Compréhension fine de la vidéo : décomposition de la vidéo en images multiples pour saisir les détails dynamiques.
- Création graphique : générer des articles graphiques ou du contenu web selon des instructions.
- Rondes multiples de dialogue multi-images : prise en charge d'entrées d'images multiples pour une analyse continue du dialogue.
- Support de modèle open source : fournir une variété de poids de modèle et de code de réglage fin pour faciliter le développement secondaire.
- Interaction multimodale en continu : la version OmniLive prend en charge le traitement audio et vidéo de longue durée.
Utiliser l'aide
InternLM-XComposer est un projet open source basé sur GitHub, les utilisateurs doivent avoir des bases en programmation pour l'installer et l'utiliser. Ce qui suit est un guide d'utilisation détaillé pour aider les utilisateurs à démarrer rapidement.
Processus d'installation
1. préparation à l'environnement
- Assurez-vous que Python 3.9 ou plus est installé sur votre appareil.
- Requiert un GPU NVIDIA et la prise en charge de CUDA (CUDA 11.x ou 12.x recommandé).
- Installez Git pour cloner votre base de code.
2. clonage de projets
Exécutez la commande suivante dans le terminal pour télécharger le projet localement :
git clone https://github.com/InternLM/InternLM-XComposer.git cd InternLM-XComposer
3. Créer un environnement virtuel Isoler les dépendances à l'aide de Conda ou d'outils d'environnement virtuel :
conda create -n internlm python=3.9 -y conda activate internlm
4. Installation des dépendances Installez les bibliothèques nécessaires conformément à la documentation officielle :
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu117 pip install transformers==4.33.2 timm==0.4.12 sentencepiece==0.1.99 gradio==4.13.0 markdown2==4.4.10 xlsxwriter==3.1.2 einops
- Facultatif : installez flash-attention2 pour économiser la mémoire du GPU :
pip install flash-attn --no-build-isolation
5. Télécharger le modèle de poids Le projet permet de télécharger des modèles pré-entraînés à partir de Hugging Face, par exemple :
model = AutoModel.from_pretrained('internlm/internlm-xcomposer2d5-7b', torch_dtype=torch.bfloat16, trust_remote_code=True).cuda().eval()
6. Vérifier l'installation Exécutez l'exemple de code pour vérifier si l'environnement est normal :
python -m torch.distributed.run --nproc_per_node=1 example_code/simple_chat.py
Principales fonctions
1. création graphique
- Introduction à la fonctionGénérer du contenu contenant du texte et des images, tels que des articles ou des pages web, sur la base des instructions de l'utilisateur.
- procédure: :
- Préparer l'entrée : rédiger une consigne de texte (par exemple : "Rédigez un article sur les voyages, en y incluant trois photos").
- Exécutez le code :
from transformers import AutoModel, AutoTokenizer
model = AutoModel.from_pretrained('internlm/internlm-xcomposer2d5-7b', trust_remote_code=True).cuda().eval()
tokenizer = AutoTokenizer.from_pretrained('internlm/internlm-xcomposer2d5-7b', trust_remote_code=True)
query = "写一篇关于旅行的文章,包含三张图片"
response, _ = model.chat(tokenizer, query, do_sample=False, num_beams=3)
print(response)
- Résultat : le modèle génère un mélange de contenu graphique et textuel, et les descriptions des images sont automatiquement intégrées dans le texte.
2. compréhension des images à haute résolution
- Introduction à la fonctionLes services d'assistance technique : Analyser des images à haute résolution et fournir des descriptions détaillées.
- procédure: :
- Préparer l'image : placer le fichier image dans un répertoire local (par ex.
examples/dubai.png
). - Exécutez le code :
query = "详细分析这张图片"
image = ['examples/dubai.png']
with torch.autocast(device_type='cuda', dtype=torch.float16):
response, _ = model.chat(tokenizer, query, image, do_sample=False, num_beams=3)
print(response)
- Résultat : le modèle renvoie une description détaillée du contenu de l'image, par exemple des détails tels que les bâtiments, les couleurs, etc.
3. l'analyse vidéo
- Introduction à la fonctionDécomposition d'une image vidéo et description du contenu : Décomposition d'une image vidéo et description du contenu : Décomposition d'une image vidéo et description du contenu.
- procédure: :
- Vidéo de préparation : téléchargez l'exemple de vidéo (par ex.
liuxiang.mp4
). - Utilisez la version OmniLive :
from lmdeploy import pipeline
pipe = pipeline('internlm/internlm-xcomposer2d5-ol-7b')
video = load_video('liuxiang.mp4')
query = "描述这段视频内容"
response = pipe((query, video))
print(response.text)
- Résultat de sortie : renvoie une description détaillée de l'image vidéo, telle qu'une action ou une scène.
4. plusieurs cycles de dialogue multi-cartes
- Introduction à la fonctionLa prise en charge de l'entrée d'images multiples pour un dialogue continu.
- procédure: :
- Préparer plusieurs images (par exemple
cars1.jpg
,cars2.jpg
,cars3.jpg
). - Exécutez le code :
query = "Image1 <ImageHere>; Image2 <ImageHere>; Image3 <ImageHere>; 分析这三辆车的优缺点"
images = ['examples/cars1.jpg', 'examples/cars2.jpg', 'examples/cars3.jpg']
response, _ = model.chat(tokenizer, query, images, do_sample=False, num_beams=3)
print(response)
- Résultat : le modèle analyse une à une les caractéristiques du véhicule correspondant à chaque image.
mise en garde
- exigences en matière de matérielPour les appareils d'entrée de gamme, essayez la version quantifiée à 4 bits.
- Conseils de débogageSi la mémoire vidéo est insuffisante, diminuez la valeur de l'écran.
hd_num
(par défaut 18). - Soutien communautaireLes questions : Visitez la page GitHub Issues pour consulter les questions les plus fréquemment posées ou soumettre des commentaires.
Avec ces étapes, vous pouvez facilement installer et utiliser la puissance d'InternLM-XComposer pour la recherche et le développement.
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...