X-R1: Formación de modelos 0,5B en dispositivos comunes a bajo coste

Introducción general

X-R1 es un marco de aprendizaje por refuerzo de código abierto en GitHub por el equipo dhcode-cpp, cuyo objetivo es proporcionar a los desarrolladores una herramienta eficiente y de bajo coste para entrenar modelos basados en el aprendizaje por refuerzo de extremo a extremo. El proyecto cuenta con el apoyo de DeepSeek-R1 Inspirado en X-R1 y open-r1, X-R1 se centra en la creación de un entorno de formación que sea fácil de utilizar y que requiera pocos recursos. El producto principal de X-R1 es R1-Zero, un modelo con una covarianza de 0,5B que pretende ser capaz de formarse eficazmente en el hardware habitual. Admite varios modelos base (0,5B, 1,5B, 3B) y mejora la inferencia del modelo y el cumplimiento del formato mediante el aprendizaje por refuerzo. El proyecto está desarrollado en C++ y combina vLLM Motores de inferencia y GRPO Algoritmos para razonamiento matemático, procesamiento de tareas chinas y otros escenarios. Tanto si eres un desarrollador individual como un investigador, X-R1 te ofrece una opción de código abierto que merece la pena probar.

X-R1:在普通设备中低成本训练0.5B模型

 

Lista de funciones

  • Formación de modelos de bajo costeSoporte para el entrenamiento de modelos R1-Cero con 0,5B de parámetros en hardware común (por ejemplo, 4 GPUs 3090).
  • Optimización del aprendizajeMejorar la capacidad de inferencia y la precisión del formato de salida de los modelos mediante el aprendizaje por refuerzo (RL) de extremo a extremo.
  • Compatibilidad con varios modelosCompatible con 0,5B, 1,5B, 3B y otros modelos básicos, flexible para adaptarse a los diferentes requisitos de la tarea.
  • Muestreo acelerado por GPUIntegración de vLLM como motor de inferencia en línea para el muestreo rápido de datos GRPO.
  • Razonamiento matemático chino: Apoya tareas de razonamiento matemático en un entorno de lengua china, generando procesos de respuesta claros.
  • Evaluación comparativaProporciona scripts benchmark.py para evaluar la precisión y las capacidades de salida de formato del modelo.
  • Configuración de código abiertoProporcione un archivo de configuración detallado (por ejemplo, zero3.yaml) para los parámetros de formación definidos por el usuario.

 

Utilizar la ayuda

X-R1 es un proyecto de código abierto basado en GitHub, los usuarios necesitan algunos fundamentos de programación y un entorno de hardware para instalarlo y utilizarlo. A continuación encontrarás una guía detallada de instalación y uso que te ayudará a empezar rápidamente.

Proceso de instalación

  1. Preparación medioambiental
    • requisitos de hardwareAl menos 1 GPU NVIDIA (por ejemplo, 3090), se recomiendan 4 para un rendimiento óptimo; la CPU admite el conjunto de instrucciones AVX/AVX2; al menos 16 GB de RAM.
    • sistema operativoLinux (por ejemplo, Ubuntu 20.04+), Windows (requiere compatibilidad con WSL2) o macOS.
    • Herramientas dependientesInstalar Git, Python 3.8+, CUDA Toolkit (para adaptarse a la GPU, por ejemplo 11.8), compilador C++ (por ejemplo g++).
      sudo apt update
      sudo apt install git python3 python3-pip build-essential
      
    • Controlador GPUAsegúrese de que el controlador NVIDIA está instalado y coincide con la versión CUDA ejecutando el comando nvidia-smi Compruébalo.
  2. proyecto de clonación
    Ejecute el siguiente comando en un terminal para descargar el repositorio X-R1 localmente:

    git clone https://github.com/dhcode-cpp/X-R1.git
    cd X-R1
    
  3. Instalación de dependencias
    • Instale las dependencias de Python:
      pip install -r requirements.txt
      
    • Instale Accelerate (para la formación distribuida):
      pip install accelerate
      
  4. Entorno de configuración
    • Edita el perfil en función del número de GPUs (por ejemplo recipes/zero3.yaml), establece num_processes(por ejemplo, 3, lo que indica que 3 de las 4 GPUs se utilizan para el entrenamiento y 1 para la inferencia vLLM).
    • Ejemplo de configuración:
      num_processes: 3
      per_device_train_batch_size: 1
      num_generations: 3
      
  5. Verificar la instalación
    Ejecute el siguiente comando para comprobar que el entorno está configurado correctamente:

    accelerate config
    

    Siga las instrucciones para seleccionar los ajustes de hardware y distribución.

Funciones principales

1. Formación de modelos

  • formación inicialEntrenamiento del modelo R1-Cero mediante el algoritmo GRPO. Ejecute el siguiente comando:
    ACCELERATE_LOG_LEVEL=info accelerate launch \
    --config_file recipes/zero3.yaml \
    --num_processes=3 \
    src/x_r1/grpo.py \
    --config recipes/X_R1_zero_0dot5B_config.yaml \
    > ./output/x_r1_0dot5B_sampling.log 2>&1
    
  • Descripción funcionalEste comando inicia el entrenamiento del modelo 0.5B, y los registros se guardan en el archivo output Carpeta. El proceso de entrenamiento utilizará el aprendizaje por refuerzo para optimizar la capacidad de razonamiento del modelo.
  • advertenciaAsegúrese de que el tamaño global del lote (num_processes * per_device_train_batch_size) puede ser num_generations Integrar, de lo contrario se informará de un error.

2. Razonamiento matemático chino

  • Configurar las tareas matemáticas: Utilice el archivo de configuración diseñado para chino:
    ACCELERATE_LOG_LEVEL=info accelerate launch \
    --config_file recipes/zero3.yaml \
    --num_processes=3 \
    src/x_r1/grpo.py \
    --config recipes/examples/mathcn_zero_3B_config.yaml \
    > ./output/mathcn_3B_sampling.log 2>&1
    
  • flujo de trabajo::
    1. Prepare un conjunto de datos de problemas matemáticos chinos (por ejemplo, en formato JSON).
    2. Modifique la ruta del conjunto de datos en el archivo de configuración.
    3. Ejecute el comando anterior y el modelo generará el proceso de inferencia y la salida al registro.
  • Funciones destacadas: Soporte para generar pasos detallados de respuestas en chino, adecuado para escenarios educativos.

3. Evaluación comparativa

  • Evaluación operativa: Uso benchmark.py Prueba de rendimiento del modelo:
    CUDA_VISIBLE_DEVICES=0,1 python ./src/x_r1/benchmark.py \
    --model_name='xiaodongguaAIGC/X-R1-0.5B' \
    --dataset_name='HuggingFaceH4/MATH-500' \
    --output_name='./output/result_benchmark_math500' \
    --max_output_tokens=1024 \
    --num_gpus=2
    
  • Interpretación de los resultadosEl script genera la métrica de precisión y la métrica de formato y guarda los resultados en un archivo JSON.
  • Escenarios de usoValidación del rendimiento del modelo en tareas matemáticas y optimización de los parámetros de entrenamiento.

habilidad operativa

  • Vista de registroUna vez finalizado el entrenamiento o la prueba, compruebe el archivo de registro (por ejemplo, el archivo x_r1_0dot5B_sampling.log) para depurar el problema.
  • Optimización multi-GPU: Si se dispone de más GPUs, se puede ajustar el num_processes responder cantando num_gpus parámetros para mejorar la eficiencia paralela.
  • detección de erroresSi se produce un error en el tamaño del lote, ajuste el per_device_train_batch_size responder cantando num_generations Haz que coincida.

Recomendaciones de uso

  • Para un uso inicial, se recomienda empezar con un modelo a pequeña escala (por ejemplo, 0,5B) y luego ampliar a un modelo de 3B una vez que se familiarice con el proceso.
  • Compruebe regularmente su repositorio de GitHub para ver si hay actualizaciones y nuevas funciones y correcciones.
  • Para obtener ayuda, ponte en contacto con el desarrollador en dhcode95@gmail.com.

Con estos pasos, puede configurar fácilmente un entorno X-R1 y empezar a entrenar o probar modelos. Ya sea para investigación o desarrollo, este marco proporciona un soporte eficaz.

© declaración de copyright

Artículos relacionados

Sin comentarios

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