MM-EUREKA: una herramienta multimodal de aprendizaje por refuerzo para explorar el razonamiento visual

Introducción general

MM-EUREKA es un proyecto de código abierto desarrollado por el Laboratorio de Inteligencia Artificial de Shanghai, la Universidad Jiao Tong de Shanghai y otras partes. Amplía las capacidades de razonamiento textual a escenarios multimodales mediante técnicas de aprendizaje por refuerzo basadas en reglas para ayudar a los modelos a procesar información textual y de imágenes. El objetivo principal de esta herramienta es mejorar el rendimiento de los modelos en tareas de razonamiento visual y matemático. Presenta dos modelos principales, MM-Eureka-8B y MM-Eureka-Zero-38B, que permiten un entrenamiento eficiente con pequeñas cantidades de datos, como por ejemplo utilizar sólo 54K de datos gráficos para superar a otros modelos que requieren millones de datos. El proyecto es completamente de código abierto, y el código, los modelos y los datos están disponibles gratuitamente en GitHub para investigadores y desarrolladores que exploren técnicas de inferencia multimodal.

MM-EUREKA:探索视觉推理的多模态强化学习工具

 

Lista de funciones

  • Apoyo al razonamiento multimodal: la capacidad de procesar imágenes y texto al mismo tiempo mejora la capacidad del modelo para comprender problemas complejos.
  • Aprendizaje por refuerzo basado en reglas: formación de modelos con reglas sencillas para reducir la dependencia de datos a gran escala.
  • Epifanías visuales: los modelos pueden volver sobre las imágenes en su razonamiento, imitando el proceso de reflexión humana.
  • Canal completo de código abierto: proporciona código, conjuntos de datos y flujo de formación para facilitar su reproducción y mejora.
  • Alta eficiencia de datos: el rendimiento es comparable al de modelos entrenados en millones de datos con pequeñas cantidades de datos (por ejemplo, 8K o 54K pares de gráficos).
  • Apoyo al razonamiento matemático: especialmente optimizado para la resolución de problemas matemáticos en escenarios educativos y académicos.

 

Utilizar la ayuda

MM-EUREKA es un proyecto de código abierto basado en GitHub, que está dirigido principalmente a usuarios con cierta base de programación, especialmente investigadores y desarrolladores. A continuación se describe detalladamente cómo instalar y utilizar esta herramienta, incluyendo las principales características del proceso de funcionamiento real.

Proceso de instalación

  1. Preparar el entorno
    • Asegúrate de que tienes Python 3.8 o posterior instalado en tu ordenador. Esto se puede hacer con el comando python --version Compruébalo.
    • Necesitas instalar Git para clonar tu código. Si no tienes Git, puedes descargarlo e instalarlo desde el sitio web oficial.
    • Recomendado para sistemas Linux (por ejemplo, Ubuntu 20.04 o 22.04), los usuarios de Windows pueden necesitar una configuración adicional.
  2. Clonación del código del proyecto
    • Abra un terminal e introduzca el siguiente comando para descargar el código fuente de MM-EUREKA:
      git clone https://github.com/ModalMinds/MM-EUREKA.git
      
    • Una vez finalizada la descarga, vaya a la carpeta del proyecto:
      cd MM-EUREKA
      
  3. Instalación de dependencias
    • Ejecute el siguiente comando para instalar las dependencias básicas:
      pip install -e .
      
    • Si necesita utilizar el vLLM Es necesario instalar el razonamiento acelerado y paquetes adicionales:
      pip install -e .[vllm]
      
    • Instale Flash-Attention (versión 2.3.6) para mejorar el rendimiento:
      pip install flash-attn==2.3.6 --no-build-isolation
      

      Si tiene problemas, intente instalar 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
      
  4. Descargar conjunto de datos
    • El proyecto proporciona datos de entrenamiento MM-Eureka-Dataset, que pueden descargarse de GitHub Releases.
    • Una vez descargado, descomprima el archivo y modifique los datos según sea necesario en el archivo image_urls que apunta a la ruta de la imagen local.
  5. Verificar la instalación
    • Una vez finalizada la instalación, ejecute python -c "import mm_eureka" Compruebe si se ha producido algún error. Si no hay errores, la instalación se ha realizado correctamente.

Utilización de las funciones principales

Función 1: Ejecución de un modelo de inferencia multimodal

  • Preparar los datos
    • Los datos deben organizarse en formato JSONL, donde cada fila es un diccionario que contiene idyconversationsyanswer responder cantando image_urls Campos. Ejemplo:
      {"id": "0", "conversations": [{"role": "user", "content": "这张图里的数学题答案是什么?"}], "answer": "42", "image_urls": ["file:///path/to/image.jpg"]}
      
    • Guardar los datos como dataset.jsonlen el directorio del proyecto.
  • razonamiento en funcionamiento
    • Introduzca el siguiente comando en el terminal para cargar el modelo y razonar sobre él:
      python scripts/inference.py --model MM-Eureka-8B --data dataset.jsonl
      
    • La salida mostrará el proceso de razonamiento del modelo y las respuestas a cada pregunta.

Función 2: Entrenamiento de modelos personalizados

  • Configuración de los parámetros de entrenamiento
    • espectáculo (una entrada) config.yaml para establecer los parámetros del modelo (por ejemplo, la tasa de aprendizaje, el tamaño del lote) y las rutas de los datos.
    • seguro data_path Apunta hacia ti. dataset.jsonl Documentación.
  • formación inicial
    • Ejecute el siguiente comando para iniciar el entrenamiento:
      python scripts/train.py --config config.yaml
      
    • Durante el entrenamiento, el modelo guarda los puntos de control en el checkpoints/ Carpeta.

Función 3: Comprobación de epifanías visuales

  • Preparación de los datos de prueba
    • Utilizar datos de problemas matemáticos complejos que contengan imágenes, por ejemplo, eligiendo algunas preguntas del conjunto de datos K12.
  • prueba de funcionamiento
    • Introduce el comando:
      python scripts/test_reflection.py --model MM-Eureka-Zero-38B --data test.jsonl
      
    • El modelo mostrará el proceso de razonamiento, incluida la forma de reexaminar las pistas de la imagen.

Ejemplo de proceso operativo: resolución de problemas matemáticos

  1. Cargar datos
    • Prepare una imagen (por ejemplo, un problema de geometría) y la correspondiente descripción del problema, guardada en formato JSONL.
  2. modelo operativo
    • gasto o desembolso inference.py El script carga MM-Eureka-8B e introduce los datos.
  3. Ver resultados
    • El modelo emite el paso de inferencia (<think> ) y la respuesta final (<answer> Tags), por ejemplo:
      <think>先看图,圆的半径是 5,面积公式是 πr²,所以是 25π。</think>
      <answer>25π</answer>
      

advertencia

  • Si la memoria de la GPU es insuficiente, ajuste el tamaño del lote o utilice MM-Eureka-8B (modelo más pequeño).
  • Las rutas de la imagen en los datos deben ser válidas o el modelo no podrá procesar la imagen.

Con estos pasos, podrá empezar a utilizar MM-EUREKA fácilmente y experimentar sus capacidades de razonamiento multimodal.

 

escenario de aplicación

  1. Ayudas educativas
    MM-EUREKA analiza imágenes de problemas matemáticos y ofrece soluciones detalladas, adecuadas para la práctica de los estudiantes o la preparación de los profesores.
  2. Exploración científica
    Los investigadores pueden utilizarlo para probar la eficacia del aprendizaje por refuerzo en tareas multimodales, mejorar algoritmos o desarrollar nuevos modelos.
  3. Desarrollo AR/VR
    Los desarrolladores pueden utilizar sus capacidades de razonamiento visual para crear aplicaciones interactivas más inteligentes, como asistentes de resolución de problemas en tiempo real.

 

CONTROL DE CALIDAD

  1. ¿Qué idiomas admite MM-EUREKA?
    Actualmente, se admiten principalmente datos gráficos en inglés y chino, y el modelo tiene el mejor efecto de inferencia para estas dos lenguas.
  2. ¿Qué configuración informática es necesaria?
    Se recomiendan al menos 16 GB de RAM y una GPU de gama media (por ejemplo, NVIDIA GTX 1660). Es posible que se necesite un hardware más potente para entrenar modelos de gran tamaño.
  3. ¿Cómo puedo contribuir con código?
    Para enviar una Pull Request en GitHub, consulte la página CONTRIBUTING.md Las directrices del documento.
© declaración de copyright

Artículos relacionados

Sin comentarios

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