MiMo: un pequeño modelo de código abierto para el razonamiento matemático eficiente y la generación de código

Introducción general

MiMo es un proyecto de modelado de grandes lenguajes de código abierto desarrollado por Xiaomi, centrado en el razonamiento matemático y la generación de código. El producto principal es la familia de modelos MiMo-7B, que consta de un modelo base (Base), un modelo de ajuste fino supervisado (SFT), un modelo de aprendizaje reforzado entrenado a partir del modelo base (RL-Zero) y un modelo de aprendizaje reforzado entrenado a partir del modelo SFT (RL). Estos modelos de 7.000 millones de parámetros demuestran una capacidad de razonamiento comparable a la de modelos más grandes gracias a la optimización de los datos de preentrenamiento, la predicción multitoken (MTP) y el aprendizaje por refuerzo. miMo-7B-RL supera a OpenAI o1-mini en tareas matemáticas y de codificación. apoyo al modelo vLLM y SGLang, y puede descargarse en Hugging Face y ModelScope. Xiaomi ha abierto MiMo con el objetivo de impulsar el desarrollo de modelos de inferencia eficientes.

MiMo:高效数学推理与代码生成的小型开源模型

 

Lista de funciones

  • razonamiento matemático: Resolver concursos de matemáticas como AIME, MATH-500, etc. y apoyar el razonamiento en problemas complejos.
  • generación de códigoGenera código de alta calidad en Python, C++ y más para tareas de programación en LiveCodeBench.
  • Predicción de tokens múltiples (MTP)Predecir múltiples tokens con una tasa de aceptación de inferencias de ~90%, mejorando la velocidad y la precisión.
  • Compatibilidad con modelos de código abierto: Los modelos de la serie MiMo-7B (Base, SFT, RL-Zero, RL) se proporcionan para que los desarrolladores los utilicen libremente.
  • Motor de inferencia eficazCompatible con vLLM y SGLang personalizados de Xiaomi para optimizar el rendimiento de la inferencia.
  • Optimización del aprendizaje: Inferencia de modelos mejorada basada en 130.000 conjuntos de datos de problemas matemáticos y de código.
  • Motor de retroceso sin fisurasAprendizaje por refuerzo acelerado con un entrenamiento 2,29 veces más rápido y una validación 1,96 veces más rápida.
  • Despliegue flexibleSe admiten los transformadores Hugging Face, vLLM y SGLang.

 

Utilizar la ayuda

Instalación y despliegue

El modelo MiMo-7B no requiere una instalación de software independiente, pero sí la configuración del entorno de inferencia. A continuación se detallan los pasos de despliegue, se recomienda Python 3.8 o superior.

1. Preparación medioambiental

Asegúrese de que Python y pip están instalados en su sistema. se recomienda un entorno virtual para evitar conflictos de dependencias:

python3 -m venv mimo_env
source mimo_env/bin/activate

2. Instalación de dependencias

MiMo recomienda utilizar la rama vLLM personalizada de Xiaomi, que soporta la funcionalidad MTP. El comando de instalación es el siguiente:

pip install torch transformers
pip install "vllm @ git+https://github.com/XiaomiMiMo/vllm.git@feat_mimo_mtp_stable_073"

Si utiliza SGLang, ejecútelo:

python3 -m pip install "sglang[all] @ git+https://github.com/sgl-project/sglang.git@main#egg=sglang&subdirectory=python"

3. Descargar modelo

El modelo MiMo-7B está alojado en Hugging Face y ModelScope, con MiMo-7B-RL como ejemplo:

from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "XiaomiMiMo/MiMo-7B-RL"
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained(model_id)

Los archivos del modelo ocupan aproximadamente 14 GB, así que asegúrese de que dispone de suficiente espacio de almacenamiento. modelScope se descarga de forma similar, sustituyendo a model_id es la dirección correspondiente.

4. Activación del servicio de razonamiento

Inicie el servidor de inferencia utilizando vLLM (recomendado):

python3 -m vllm.entrypoints.api_server --model XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code

o utilizar SGLang:

python3 -m sglang.launch_server --model-path XiaomiMiMo/MiMo-7B-RL --host 0.0.0.0 --trust-remote-code

Una vez iniciado el servidor, puede interactuar con el modelo a través de la API o de la línea de comandos.

Funciones principales

razonamiento matemático

MiMo-7B-RL destaca en tareas de razonamiento matemático, especialmente en los conjuntos de datos AIME y MATH-500. Los usuarios pueden introducir preguntas matemáticas y el modelo genera las respuestas. Ejemplo:

from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Solve: 2x + 3 = 7"], sampling_params)
print(outputs[0].outputs[0].text)

Instrucciones de uso::

  • utilizar temperature=0.6 Equilibrio entre calidad generativa y diversidad.
  • Los problemas complejos pueden introducirse por pasos para garantizar una descripción clara.
  • Se admiten AIME 2024 (68,2% Pass@1), AIME 2025 (55,4% Pass@1) y MATH-500 (95,8% Pass@1).

generación de código

MiMo-7B-RL genera código de alta calidad compatible con Python, C++ y otros lenguajes para LiveCodeBench v5 (57.8% Pass@1) y v6 (49.3% Pass@1). Ejemplo:

from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Write a Python function to calculate factorial"], sampling_params)
print(outputs[0].outputs[0].text)

Instrucciones de uso::

  • Proporcione descripciones específicas de las tareas, como los requisitos de entrada y salida de funciones.
  • Comprueba la integridad sintáctica del código generado.
  • Adecuado para tareas de diseño de algoritmos y concursos de programación.

Predicción de tokens múltiples (MTP)

MTP es una característica central de MiMo que acelera la inferencia mediante la predicción de múltiples tokens con una tasa de aceptación de alrededor de 90%. Habilitar MTP requiere vLLM personalizado de Xiaomi:

from vllm import LLM, SamplingParams
llm = LLM(model="XiaomiMiMo/MiMo-7B-RL", trust_remote_code=True, num_speculative_tokens=1)
sampling_params = SamplingParams(temperature=0.6)
outputs = llm.generate(["Write a Python script"], sampling_params)
print(outputs[0].outputs[0].text)

Instrucciones de uso::

  • establecer num_speculative_tokens=1 Activar MTP.
  • MTP funciona mejor en escenarios de alto rendimiento.
  • La capa MTP se sintoniza en las fases de preentrenamiento y SFT y se congela en la fase RL.

Motor de retroceso sin fisuras

MiMo ha desarrollado un motor de retroceso continuo para optimizar el aprendizaje por refuerzo. Los usuarios no necesitan utilizar esta función directamente, pero su efecto se refleja en el rendimiento del modelo:

  • Entrenamiento 2,29 veces más rápido y validación 1,96 veces más rápida.
  • Reduzca el tiempo de inactividad de la GPU con el rollback continuo integrado, el cálculo asíncrono de recompensas y la terminación anticipada.

Selección del motor de inferencia

  • vLLM (recomendado)vLLM personalizado Xiaomi (basado en vLLM 0.7.3) soporta MTP con un rendimiento óptimo. Adecuado para necesidades de inferencia de alto rendimiento.
  • SGLang: Soporte para razonamiento convencional, soporte MTP próximamente. Adecuado para un despliegue rápido.
  • Transformadores de caras abrazadas: Adecuado para pruebas sencillas o depuración local, pero no admite MTP.

advertencia

  • alerta del sistemaSe recomiendan las puntas de sistema vacías para un rendimiento óptimo.
  • requisitos de hardwareGPU: se recomienda una sola GPU (por ejemplo, NVIDIA A100 de 40 GB), la inferencia de la CPU requiere al menos 32 GB de RAM.
  • Configuración de la evaluaciónTodas las evaluaciones utilizan temperature=0.6AIME y LiveCodeBench utilizan promedios de ejecución múltiples.
  • Apoyo comunitarioSi tiene algún problema, puede presentar una incidencia en GitHub o ponerse en contacto con el equipo de mimo@xiaomi.com.

 

escenario de aplicación

  1. investigación académica
    El modelo MiMo-7B es adecuado para que los investigadores exploren el razonamiento matemático y los algoritmos de generación de código. Los desarrolladores pueden ajustarlo basándose en el modelo de código abierto para investigar estrategias de preentrenamiento y aprendizaje por refuerzo.
  2. educación en programación
    Los profesores pueden utilizar MiMo para generar respuestas a ejercicios de programación, y los alumnos pueden verificar la lógica del código o aprender sobre la implementación de algoritmos.
  3. Entrenamiento de competición
    MiMo es compatible con las preguntas de las oposiciones de matemáticas AIME y MATH-500 para estudiantes que se preparan para oposiciones de matemáticas y programación.
  4. Desarrollo de la IA
    Los desarrolladores pueden crear aplicaciones personalizadas basadas en MiMo-7B, como herramientas automatizadas de revisión de código o solucionadores matemáticos.

 

CONTROL DE CALIDAD

  1. ¿Qué modelos hay disponibles en la serie MiMo-7B?
    MiMo-7B incluye un modelo base (Base), un modelo de ajuste fino supervisado (SFT), un modelo de aprendizaje por refuerzo entrenado a partir del modelo base (RL-Zero) y un modelo de aprendizaje por refuerzo entrenado a partir del modelo SFT (RL). la versión RL es la que obtiene mejores resultados.
  2. ¿Cómo elegir un motor de inferencia?
    Recomendado Xiaomi vLLM personalizado (apoyo MTP, un rendimiento óptimo). SGLang es adecuado para el despliegue rápido, Hugging Face Transformers es adecuado para pruebas sencillas.
  3. ¿Cómo puede el MTP mejorar el rendimiento?
    MTP es adecuado para escenarios de alto rendimiento mediante la predicción de múltiples tokens con una tasa de aceptación de inferencia de 90%, lo que mejora significativamente la velocidad.
  4. ¿El modelo admite varios idiomas?
    MiMo está optimizado principalmente para tareas matemáticas y de codificación, y admite la entrada en inglés y algo de chino, sin soporte explícito para otros idiomas.
  5. ¿Cuáles son los requisitos de hardware?
    Una sola GPU (por ejemplo, NVIDIA A100 de 40 GB) puede ejecutar MiMo-7B-RL. La inferencia de la CPU requiere al menos 32 GB de RAM, pero es más lenta.
© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

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