X-R1: Formación de modelos 0,5B en dispositivos comunes a bajo coste
Últimos recursos sobre IAPublicado hace 5 meses Círculo de intercambio de inteligencia artificial 2.2K 00
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.

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
- 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.
- 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
- Instalación de dependencias
- Instale las dependencias de Python:
pip install -r requirements.txt
- Instale Accelerate (para la formación distribuida):
pip install accelerate
- Instale las dependencias de Python:
- Entorno de configuración
- Edita el perfil en función del número de GPUs (por ejemplo
recipes/zero3.yaml
), establecenum_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
- Edita el perfil en función del número de GPUs (por ejemplo
- 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 sernum_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::
- Prepare un conjunto de datos de problemas matemáticos chinos (por ejemplo, en formato JSON).
- Modifique la ruta del conjunto de datos en el archivo de configuración.
- 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 cantandonum_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 cantandonum_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
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...