Introdução geral
O X-R1 é uma estrutura de aprendizado por reforço de código aberto no GitHub pela equipe do dhcode-cpp, com o objetivo de fornecer aos desenvolvedores uma ferramenta eficiente e de baixo custo para modelos de treinamento baseados no aprendizado por reforço de ponta a ponta. O projeto é apoiado por DeepSeek-R1 Inspirado no X-R1 e no open-r1, o X-R1 se concentra na criação de um ambiente de treinamento fácil de começar e com baixos requisitos de recursos. O principal produto do X-R1 é o R1-Zero, um modelo com covariância de 0,5B que afirma ser capaz de treinar com eficiência em hardware comum. Ele oferece suporte a vários modelos básicos (0,5B, 1,5B, 3B) e aprimora a inferência do modelo e a conformidade do formato por meio do aprendizado por reforço. O projeto foi desenvolvido em C++ e combina vLLM Mecanismos de inferência e GRPO Algoritmos para raciocínio matemático, processamento de tarefas chinesas e outros cenários. Seja você um desenvolvedor individual ou um pesquisador, o X-R1 oferece uma opção de código aberto que vale a pena experimentar.
Lista de funções
- Treinamento de modelos de baixo custoSuporte para treinamento de modelos R1-Zero com parâmetros de 0,5B em hardware comum (por exemplo, 4 GPUs 3090).
- Otimização do aprendizado aprimoradoDescrição: Aprimore a capacidade de inferência e a precisão do formato de saída dos modelos por meio do aprendizado por reforço (RL) de ponta a ponta.
- Suporte a vários modelosCompatível com 0,5B, 1,5B, 3B e outros modelos básicos, flexível para se adaptar a diferentes requisitos de tarefas.
- Amostragem acelerada por GPUIntegração do vLLM como um mecanismo de inferência on-line para amostragem rápida de dados GRPO.
- Raciocínio matemático chinêsSuporte a tarefas de raciocínio matemático em um ambiente de língua chinesa, gerando processos de resposta claros.
- Avaliação de benchmarkingScripts benchmark.py: fornece scripts benchmark.py para avaliar a precisão e os recursos de saída de formato do modelo.
- Configuração de código abertoFornecimento de um arquivo de configuração detalhado (por exemplo, zero3.yaml) para parâmetros de treinamento definidos pelo usuário.
Usando a Ajuda
O X-R1 é um projeto de código aberto baseado no GitHub, os usuários precisam de alguma base de programação e ambiente de hardware para instalá-lo e usá-lo. A seguir, apresentamos um guia detalhado de instalação e uso para ajudá-lo a começar rapidamente.
Processo de instalação
- Preparação ambiental
- Requisitos de hardwareGPU: Pelo menos 1 GPU NVIDIA (por exemplo, 3090), 4 recomendadas para desempenho ideal; CPU compatível com o conjunto de instruções AVX/AVX2; pelo menos 16 GB de RAM.
- sistema operacionalLinux (por exemplo, Ubuntu 20.04+), Windows (requer suporte a WSL2) ou macOS.
- Ferramentas dependentesInstalação do Git, Python 3.8+, CUDA Toolkit (para corresponder à GPU, por exemplo, 11.8), compilador C++ (por exemplo, g++).
sudo apt update sudo apt install git python3 python3-pip build-essential
- Driver de GPUCertifique-se de que o driver NVIDIA esteja instalado e corresponda à versão CUDA executando o comando
nvidia-smi
Verificar.
- projeto de clonagem
Execute o seguinte comando em um terminal para fazer o download do repositório X-R1 localmente:git clone https://github.com/dhcode-cpp/X-R1.git cd X-R1
- Instalação de dependências
- Instale as dependências do Python:
pip install -r requirements.txt
- Instale o Accelerate (para treinamento distribuído):
pip install accelerate
- Instale as dependências do Python:
- Ambiente de configuração
- Edite o perfil de acordo com o número de GPUs (por exemplo
recipes/zero3.yaml
), conjuntonum_processes
(por exemplo, 3, indicando que 3 das 4 GPUs são usadas para treinamento e 1 para inferência de vLLM). - Exemplo de configuração:
num_processes: 3 per_device_train_batch_size: 1 num_generations: 3
- Edite o perfil de acordo com o número de GPUs (por exemplo
- Verificar a instalação
Execute o seguinte comando para verificar se o ambiente está configurado corretamente:accelerate config
Siga as instruções para selecionar as configurações de hardware e distribuição.
Funções principais
1. treinamento de modelos
- treinamento de preparação: Treine o modelo R1-Zero usando o algoritmo GRPO. Execute o seguinte 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
- Descrição funcionalEsse comando inicia o treinamento do modelo 0.5B, e os registros são salvos no arquivo
output
Pasta. O processo de treinamento usará o aprendizado por reforço para otimizar a capacidade de raciocínio do modelo. - advertênciaTamanho do lote global (
num_processes * per_device_train_batch_size
) pode sernum_generations
Integrate, caso contrário, será relatado um erro.
2. raciocínio matemático chinês
- Configuração de tarefas de matemáticaUse o arquivo de configuração projetado para chinês:
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
- fluxo de trabalho::
- Prepare um conjunto de dados de problemas de matemática chineses (por exemplo, no formato JSON).
- Modifique o caminho do conjunto de dados no arquivo de configuração.
- Execute o comando acima e o modelo gerará o processo de inferência e a saída para o registro.
- Funções em destaqueSuporte para gerar etapas detalhadas de respostas em chinês, adequadas para cenários educacionais.
3) Benchmarking
- Avaliação operacional: Uso
benchmark.py
Teste o desempenho do 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
- Interpretação dos resultadosO script gera a métrica de precisão e a métrica de formato e salva os resultados como um arquivo JSON.
- Cenários de usoValidação do desempenho do modelo em tarefas matemáticas e otimização dos parâmetros de treinamento.
habilidade operacional
- Visualização do registroApós a conclusão do treinamento ou do teste, verifique o arquivo de registro (por exemplo, o arquivo
x_r1_0dot5B_sampling.log
) para depurar o problema. - Otimização multi-GPUSe houver mais GPUs disponíveis, você poderá ajustar o
num_processes
responder cantandonum_gpus
para melhorar a eficiência paralela. - detecção de errosSe for encontrado um erro no tamanho do lote, ajuste o
per_device_train_batch_size
responder cantandonum_generations
Faça com que combine.
Recomendações de uso
- Para uso inicial, recomenda-se começar com um modelo de escala pequena (por exemplo, 0,5B) e depois expandir para um modelo de 3B quando estiver familiarizado com o processo.
- Verifique regularmente se há atualizações, novos recursos e correções em seu repositório do GitHub.
- Para obter suporte, entre em contato com o desenvolvedor em dhcode95@gmail.com.
Com essas etapas, você pode configurar facilmente um ambiente X-R1 e começar a treinar ou testar modelos. Seja para pesquisa ou desenvolvimento, essa estrutura oferece suporte eficiente.