InternLM-XComposer: un macromodelo multimodal para la producción de textos muy largos y la comprensión de imágenes y vídeos
Últimos recursos sobre IAPublicado hace 6 meses Círculo de intercambio de inteligencia artificial 1.4K 00
Introducción general
InternLM-XComposer es un proyecto de macromodelado gráfico multimodal de código abierto desarrollado por el equipo InternLM y alojado en GitHub, que se basa en el modelo de lenguaje InternLM y es capaz de procesar datos multimodales como texto, imágenes y vídeo, y se utiliza ampliamente en los campos de la autoría gráfica, la comprensión de imágenes y el análisis de vídeo. El proyecto es conocido por su capacidad para admitir contextos de hasta 96K de longitud, procesar imágenes de alta resolución de 4K y comprender vídeo de grano fino, con un rendimiento comparable al de GPT-4V utilizando sólo 7B parámetros. Se puede acceder al código, los pesos del modelo y la documentación detallada a través de GitHub para investigadores, desarrolladores o usuarios interesados en la IA multimodal. Desde febrero de 2025, el proyecto ha publicado varias versiones, entre ellas InternLM-XComposer-2.5 y OmniLive, para optimizar continuamente la experiencia de interacción multimodal.

Lista de funciones
- Soporte de salida contextual ultralargo: maneja hasta 96K de contenido gráfico mixto para tareas complejas.
- Comprensión de imágenes de alta resolución: admite análisis de imágenes desde 336 píxeles hasta 4K con detalles nítidos.
- Comprensión detallada del vídeo: descomposición del vídeo en imágenes de varios fotogramas para captar los detalles dinámicos.
- Creación gráfica: Genere artículos gráficos o contenidos web de acuerdo con las instrucciones.
- Múltiples rondas de diálogo multiimagen: admite múltiples entradas de imágenes para el análisis continuo del diálogo.
- Soporte de modelos de código abierto: proporcionar una variedad de pesos de modelos y código de ajuste para facilitar el desarrollo secundario.
- Interacción de streaming multimodal: La versión OmniLive admite el procesamiento de vídeo y audio de larga duración.
Utilizar la ayuda
InternLM-XComposer es un proyecto de código abierto basado en GitHub, los usuarios necesitan algunos fundamentos de programación para instalarlo y utilizarlo. La siguiente es una guía detallada de funcionamiento para ayudar a los usuarios a empezar rápidamente .
Proceso de instalación
1. Preparación medioambiental
- Asegúrate de tener Python 3.9 o superior instalado en tu dispositivo.
- Requiere una GPU NVIDIA y soporte CUDA (se recomienda CUDA 11.x o 12.x).
- Instala Git para clonar tu código base.
2. Clonación de proyectos
Ejecute el siguiente comando en el terminal para descargar el proyecto localmente:
git clone https://github.com/InternLM/InternLM-XComposer.git cd InternLM-XComposer
3. Creación de un entorno virtual Aísla las dependencias utilizando Conda o herramientas de entorno virtual:
conda create -n internlm python=3.9 -y conda activate internlm
4. Instalación de dependencias Instale las bibliotecas necesarias de acuerdo con la documentación oficial:
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
- Opcional: instalar flash-attention2 para ahorrar memoria de la GPU:
pip install flash-attn --no-build-isolation
5. Descargar modelos de pesos El proyecto permite descargar modelos preentrenados de Hugging Face, por ejemplo:
model = AutoModel.from_pretrained('internlm/internlm-xcomposer2d5-7b', torch_dtype=torch.bfloat16, trust_remote_code=True).cuda().eval()
6. Verificar la instalación Ejecute el código de ejemplo para comprobar si el entorno es normal:
python -m torch.distributed.run --nproc_per_node=1 example_code/simple_chat.py
Funciones principales
1. Creación gráfica
- Función IntroducciónGenerar contenidos con texto e imágenes, como artículos o páginas web, a partir de las instrucciones del usuario.
- procedimiento::
- Prepare la entrada: Escriba una instrucción de texto (por ejemplo, "Escriba un artículo sobre viajes, incluyendo tres imágenes").
- Ejecuta el código:
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)
- Resultado: el modelo genera una mezcla de contenido gráfico y textual, y las descripciones de las imágenes se incrustan automáticamente en el texto.
2. Comprensión de imágenes de alta resolución
- Función Introducción: Analiza imágenes de alta resolución y proporciona descripciones detalladas.
- procedimiento::
- Prepare la imagen: Coloque el archivo de imagen en un directorio local (p. ej.
examples/dubai.png
). - Ejecuta el código:
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)
- Salida: el modelo devuelve una descripción detallada del contenido de la imagen, por ejemplo, detalles como edificios, colores, etc.
3. Videoanálisis
- Función IntroducciónDescomponer un fotograma de vídeo y describir el contenido.
- procedimiento::
- Vídeo de preparación: Descargue el vídeo de ejemplo (p. ej.
liuxiang.mp4
). - Utilice la versión 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)
- Resultado de salida: devuelve una descripción detallada del fotograma de vídeo, como una acción o una escena.
4. Múltiples rondas de diálogo multicartel
- Función Introducción: Admite la entrada de varias imágenes para un diálogo continuo.
- procedimiento::
- Preparar varias imágenes (por ejemplo
cars1.jpg
,cars2.jpg
,cars3.jpg
). - Ejecuta el código:
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)
- Salida: el modelo analiza una a una las características del vehículo correspondientes a cada imagen.
advertencia
- requisitos de hardware: Se recomiendan al menos 24 GB de memoria de GPU; prueba la versión de 4 bits cuantificados para dispositivos de gama baja.
- Consejos de depuraciónSi la memoria de vídeo es insuficiente, reduzca el
hd_num
(por defecto 18). - Apoyo comunitarioVisita la página de problemas de GitHub para consultar las preguntas más frecuentes o enviar comentarios.
Con estos pasos, podrá instalar y utilizar fácilmente la potencia de InternLM-XComposer tanto para investigación como para desarrollo.
© declaración de copyright
El artículo está protegido por derechos de autor y no debe reproducirse sin autorización.
Artículos relacionados
Sin comentarios...