InternLM-XComposer: un macromodelo multimodal para la producción de textos muy largos y la comprensión de imágenes y vídeos

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.

InternLM-XComposer:输出超长文本与图像视频理解的多模态大模型

 

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::
  1. Prepare la entrada: Escriba una instrucción de texto (por ejemplo, "Escriba un artículo sobre viajes, incluyendo tres imágenes").
  2. 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)
  1. 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::
  1. Prepare la imagen: Coloque el archivo de imagen en un directorio local (p. ej. examples/dubai.png).
  2. 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)
  1. 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::
  1. Vídeo de preparación: Descargue el vídeo de ejemplo (p. ej. liuxiang.mp4).
  2. 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)
  1. 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::
  1. Preparar varias imágenes (por ejemplo cars1.jpgcars2.jpgcars3.jpg).
  2. 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)
  1. 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
AiPPT

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...