Aprendizagem pessoal com IA
e orientação prática
Beanbag Marscode1

X-R1: Treinamento de baixo custo de modelos de 0,5B em dispositivos comuns

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.

X-R1: Treinamento de baixo custo de modelos 0,5B em equipamentos comuns-1


 

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

  1. 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.
  2. 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
    
  3. 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
      
  4. Ambiente de configuração
    • Edite o perfil de acordo com o número de GPUs (por exemplo recipes/zero3.yaml), conjunto num_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
      
  5. 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 ser num_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::
    1. Prepare um conjunto de dados de problemas de matemática chineses (por exemplo, no formato JSON).
    2. Modifique o caminho do conjunto de dados no arquivo de configuração.
    3. 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 cantando num_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 cantando num_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.

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " X-R1: Treinamento de baixo custo de modelos de 0,5B em dispositivos comuns
pt_BRPortuguês do Brasil