InternVL: grandes modelos multimodales de código abierto para el tratamiento de imágenes, vídeos y textos

Introducción general

InternVL es un proyecto de gran modelo multimodal de código abierto desarrollado por el Laboratorio de Inteligencia Artificial de Shanghai (OpenGVLab) y alojado en GitHub. El objetivo de InternVL es construir una alternativa de código abierto comparable a los modelos comerciales (por ejemplo, GPT-4o) para una amplia gama de tareas como la percepción visual, la recuperación intermodal y los diálogos multimodales. El proyecto es conocido por sus potentes codificadores visuales, su soporte dinámico de alta resolución y sus eficientes estrategias de entrenamiento, con tamaños de modelo que oscilan entre 1B y 78B parámetros, adecuados para una amplia gama de escenarios de aplicación, desde dispositivos edge hasta servidores de alto rendimiento. El código, los modelos y los conjuntos de datos están abiertos bajo licencia MIT, y se anima a investigadores y desarrolladores a utilizarlos y mejorarlos libremente.

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

 

Lista de funciones

  • diálogo multimodal: Admite entradas de imagen, vídeo y texto para generar respuestas en lenguaje natural para chats, preguntas y respuestas e instrucciones de tareas.
  • tratamiento de imágenes: Procesa dinámicamente imágenes de hasta 4K de resolución y admite la clasificación de imágenes, la segmentación y la detección de objetos.
  • Comprensión del vídeoAnálisis del contenido de vídeo para la clasificación de vídeos con muestra cero y la recuperación de texto-vídeo.
  • resolución de documentos: Gestiona documentos complejos y está especializada en OCR, reconocimiento de formularios y cuestionamiento de documentos para tareas como DocVQA.
  • Soporte multilingüeCodificador de texto multilingüe integrado compatible con más de 110 tareas de generación de idiomas.
  • Razonamiento eficientePermite un proceso de inferencia simplificado a través de LMDeploy, compatible con el procesamiento de múltiples imágenes y contextos largos.
  • Apertura de los conjuntos de datos: Proporciona conjuntos de datos multimodales a gran escala, como ShareGPT-4o, que contienen imágenes, vídeo y audio.

 

Utilizar la ayuda

Proceso de instalación

Para utilizar InternVL localmente, debe configurar su entorno Python e instalar las dependencias pertinentes. A continuación se detallan los pasos de instalación:

  1. almacén de clones
    Ejecute el siguiente comando en el terminal para obtener el código fuente de InternVL:

    git clone https://github.com/OpenGVLab/InternVL.git
    cd InternVL
    
  2. Creación de un entorno virtual
    Crea un entorno Python 3.9 con conda y actívalo:

    conda create -n internvl python=3.9 -y
    conda activate internvl
    
  3. Instalación de dependencias
    Instale las dependencias necesarias para el proyecto, que por defecto incluyen las bibliotecas necesarias para el diálogo multimodal y el procesamiento de imágenes:

    pip install -r requirements.txt
    

    Si se requieren funciones adicionales (como segmentación o clasificación de imágenes), pueden instalarse manualmente dependencias específicas:

    pip install -r requirements/segmentation.txt
    pip install -r requirements/classification.txt
    
  4. Instalar Flash-Attention (opcional)
    Para acelerar la inferencia del modelo, se recomienda instalar Flash-Attention:

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

    O compilar desde el código fuente:

    git clone https://github.com/Dao-AILab/flash-attention.git
    cd flash-attention
    git checkout v2.3.6
    python setup.py install
    
  5. Instalar MMDeploy (opcional)
    Si necesita desplegar el modelo en un entorno de producción, instale MMDeploy:

    pip install -U openmim
    mim install mmdeploy
    

Utilización

InternVL proporciona múltiples formas de uso, incluyendo razonamiento en línea de comandos, servicios API y demostraciones interactivas. A continuación se presenta un ejemplo del modelo InternVL2_5-8B para introducir el flujo de operación de las funciones principales:

1. Diálogo multimodal

InternVL admite diálogos con entrada de imagen y de texto. A continuación se muestra un ejemplo de razonamiento utilizando LMDeploy:

  • Preparación de modelos e imágenes: Asegúrese de que se ha descargado el modelo (p. ej. OpenGVLab/InternVL2_5-8B) y preparar una imagen (por ejemplo tiger.jpeg).
  • razonamiento en funcionamientoEjecuta el siguiente código Python que describe el contenido de la imagen:
    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)
    
  • al finalEl modelo proporciona una descripción detallada de la imagen, por ejemplo: "La imagen es de un tigre de pie con hierba verde de fondo".

2. Tratamiento multiimagen

InternVL admite el procesamiento simultáneo de varias imágenes, lo que resulta idóneo para realizar comparaciones o análisis exhaustivos:

  • ejemplo de código::
    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)
    
  • al finalEl modelo describirá el contenido de cada imagen por separado y posiblemente resumirá las relaciones entre ellas.

3. Análisis sintáctico de documentos

InternVL obtiene buenos resultados en las tareas de cuestionamiento de documentos (DocVQA) y reconocimiento de formas. El flujo de operaciones es el siguiente:

  • Preparación de imágenes de documentosCarga imágenes que contengan texto, tablas o gráficos.
  • hacer preguntasUtilice indicaciones como "Extraer datos de una tabla" o "Resumir el contenido de un documento".
  • ejemplo de código::
    image = load_image('document.jpg')
    response = pipe(('提取图片中表格的内容', image))
    print(response.text)
    
  • al finalEl modelo devuelve un resumen de los datos estructurados de la tabla o documento.

4. Despliegue de servicios API

InternVL soporta el despliegue de APIs RESTful a través de LMDeploy para entornos de producción:

  • Inicio de los servicios::
    lmdeploy serve api_server OpenGVLab/InternVL2_5-8B --server-port 23333
    
  • Acceso a la API: Utiliza interfaces compatibles con OpenAI para enviar solicitudes, por ejemplo a través de la interfaz curl o el modelo de llamada al cliente de Python.

5. Presentación en línea

OpenGVLab ofrece una plataforma de demostración en línea (https://internvl.opengvlab.com/), no es necesario instalarlo para experimentarlo:

  • Visite el sitio web, cargue una imagen o un vídeo e introduzca una pregunta.
  • El modelo devuelve los resultados en tiempo real, lo que lo hace adecuado para pruebas rápidas.

Función destacada Operación

  • Alta resolución dinámicaInternVL divide automáticamente las imágenes en trozos de 448x448 y admite resoluciones de hasta 4K. Los usuarios no necesitan cambiar manualmente el tamaño de las imágenes, basta con subirlas.
  • Comprensión del vídeoAl cargar un archivo de vídeo, combinado con una pregunta (por ejemplo, "resuma el contenido del vídeo"), el modelo analiza los fotogramas clave y genera una descripción.
  • Generación multilingüeRespuesta en francés: Especifique el idioma en la pregunta (por ejemplo, "Responda en francés") y el modelo generará una respuesta en el idioma correspondiente.

advertencia

  • Asegúrate de que dispones de suficiente memoria GPU (los modelos 8B requieren unos 16 GB de memoria GPU).
  • Aumenta la ventana contextual al procesar varias imágenes o vídeos largos (session_len=16384).
  • Compruebe las versiones dependientes para evitar problemas de compatibilidad.

 

escenario de aplicación

  1. investigación académica
    Los investigadores utilizan InternVL para analizar diagramas científicos, procesar imágenes experimentales o analizar datos tabulares de documentos. El OCR de alta precisión y las capacidades de comprensión de documentos del modelo aumentan drásticamente la eficacia de la extracción de datos.
  2. Ayudas educativas
    Profesores y alumnos utilizan InternVL para resolver problemas de tareas relacionadas con la imagen, como la interpretación de imágenes históricas o el análisis de diagramas geográficos. El soporte multilingüe del modelo es adecuado para escenarios educativos internacionalizados.
  3. Procesamiento de documentos de empresa
    Las organizaciones utilizan InternVL para automatizar el tratamiento de documentos escaneados, contratos o facturas, extraer información clave y generar informes, ahorrando costes de mano de obra.
  4. creación de contenidos
    Los creadores de contenidos utilizan InternVL para analizar secuencias de vídeo y generar guiones o subtítulos para mejorar la eficacia creativa.
  5. Atención al cliente inteligente
    El sistema de atención al cliente integra InternVL para procesar las imágenes cargadas por los usuarios (por ejemplo, fotos de fallos del producto), diagnosticar rápidamente los problemas y ofrecer soluciones.

 

CONTROL DE CALIDAD

  1. ¿Qué tamaños de modelo admite InternVL?
    InternVL ofrece modelos con parámetros que van de 1B a 78B, adecuados para diferentes dispositivos. Los modelos 1B son adecuados para dispositivos de borde, mientras que los modelos 78B tienen un rendimiento comparable al GPT-4o.
  2. ¿Cómo se gestionan las imágenes de alta resolución?
    El modelo divide automáticamente la imagen en trozos de 448x448 y admite resolución 4K. Carga imágenes directamente sin procesamiento previo.
  3. ¿Es compatible con el análisis de vídeo?
    Sí, InternVL admite la clasificación de vídeos con muestra cero y la recuperación texto-vídeo. Solo tiene que cargar un vídeo e introducir la palabra clave.
  4. ¿El modelo es de código abierto?
    InternVL es completamente de código abierto, con código y pesos del modelo disponibles en GitHub bajo la licencia MIT.
  5. ¿Cómo optimizar la velocidad de razonamiento?
    Instala Flash-Attention y utiliza la aceleración por GPU. Ajustes session_len para adaptarse a contextos largos.
© declaración de copyright

Artículos relacionados

Sin comentarios

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