Introdução geral
O Light-R1 é um modelo de IA de código aberto desenvolvido pela equipe da Qihoo360 (Qihoo360) com foco em Chain-of-Thought (COT), uma longa cadeia de raciocínio em matemática. Ele se baseia no modelo Qwen2.5-32B-Instruct e, por meio de um método exclusivo de treinamento de ajuste fino supervisionado (SFT) e otimização direta de preferências (DPO) baseado em curso, obteve pontuações altas de 76,6 e 64,6 nas competições de matemática AIME24 e AIME25, respectivamente, a um custo de apenas US$ 1.000 (6 horas de treinamento em 12 máquinas H800), superando O destaque do Light-R1 são os avanços de desempenho eficientes e econômicos obtidos a partir de um modelo sem capacidade de inferência de cadeia longa, combinado com dados descontaminados e técnicas de fusão de modelos. O projeto não apenas libera o modelo, mas também abre todos os conjuntos de dados e códigos de treinamento, com o objetivo de promover a popularidade e o desenvolvimento de modelos de inferência de cadeia longa.
Lista de funções
- raciocínio matemáticoSolução precisa de problemas para competições difíceis de matemática, como a AIME.
- Suporte ao raciocínio de cadeia longa: por codificação física
rótulos, forçando o modelo a raciocinar progressivamente sobre problemas complexos.
- compartilhamento de recursos de código abertoSFT e DPO: conjuntos de dados completos de treinamento SFT e DPO e scripts de treinamento baseados no 360-LaMA-Factory estão disponíveis.
- Implementação de raciocínio eficiente: Suporte vLLM e SGLang para otimizar a velocidade de inferência do modelo e o uso de recursos.
- Ferramentas de avaliação de modelosIntegração do código de avaliação do DeepScaleR, fornecendo resultados de benchmark, como o AIME24.
- Descontaminação de dadosGarantir que os dados de treinamento não sejam contaminados em relação a benchmarks como MATH-500, AIME24/25 etc. para aumentar a imparcialidade.
Usando a Ajuda
Processo de aquisição e instalação
O Light-R1 é um projeto de código aberto hospedado no GitHub que permite aos usuários adquirir e implantar modelos seguindo as etapas abaixo:
- Acesso aos repositórios do GitHub
Abra seu navegador e digite o URLhttps://github.com/Qihoo360/Light-R1
, leva à página inicial do projeto. A página contém uma introdução ao modelo, links para conjuntos de dados e descrições de códigos. - armazém de clones
Clone o projeto localmente digitando o seguinte comando em um terminal ou linha de comando:
git clone https://github.com/Qihoo360/Light-R1.git
Quando a clonagem estiver concluída, vá para o diretório do projeto:
cd Light-R1
- Baixar arquivos de modelo
O modelo Light-R1-32B está hospedado no Hugging Face. Acessohttps://huggingface.co/Qihoo360/Light-R1-32B
Se quiser fazer o download do arquivo de pesos do modelo, siga as instruções na página. Após o download, coloque o arquivo em um diretório adequado em seu repositório local (por exemplomodelos/
), o caminho exato pode ser encontrado na documentação do projeto. - Instalação de ambientes dependentes
O Light-R1 recomenda o uso do vLLM ou do SGLang para inferência e requer a instalação de dependências relacionadas. Tome o vLLM como exemplo:
- Certifique-se de que o Python 3.8 ou posterior esteja instalado.
- Instale o vLLM:
pip install vllm
- Se for necessário suporte à GPU, verifique se o CUDA está configurado (recomenda-se 12 dispositivos H800 ou equivalentes).
- Preparar conjuntos de dados (opcional)
Se você precisar replicar o treinamento ou ajustá-lo de forma personalizada, poderá fazer o download dos conjuntos de dados SFT e DPO na página do GitHub (link na seçãoConjuntos de dados do currículo SFT e DPO
(Parte). Descompacte-o e coloque-o na pastadados/
Catálogo.
Funções principais
1. raciocínio matemático com o Light-R1
A principal função do Light-R1 é resolver problemas matemáticos, especialmente tópicos complexos que exigem longas cadeias de raciocínio. Aqui estão as etapas:
- Iniciar serviço de raciocínio
Vá para o diretório do projeto no terminal e execute o seguinte comando para iniciar o serviço de inferência vLLM:
python -m vllm.entrypoints.api_server --model path/to/Light-R1-32B
Entre eles caminho/para/Light-R1-32B
Substitua-o pelo caminho real do arquivo do modelo. Quando iniciado, o serviço escuta na porta local por padrão (geralmente 8000).
- Enviar solicitação de inferência
Use um script Python ou o comando curl para enviar perguntas matemáticas ao modelo. Tome o curl como exemplo:
curl http://localhost:8000/v1/completions
-H "Content-Type: application/json"
-d '{
"model": "Light-R1-32B", "prompt":"Solva a equação: 2x + 3 = 7,
"prompt":"Solva a equação: 2x + 3 = 7", "max_tokens": 200_tokens
"max_tokens": 200
}'
O modelo retorna processos de raciocínio e respostas passo a passo, por exemplo:
{
"choices": [{
"text":"Primeiro, subtraia 3 de ambos os lados: 2x + 3 - 3 = 7 - 3, portanto 2x = 4. Em seguida, divida ambos os lados por 2: 2x / 2 = 4 / 2, portanto x = 2. A solução é x = 2."
}]
}
- advertência
Os rótulos são codificados e devem ser incluídos na entrada para acionar a inferência de cadeia longa.
- Para desafios de nível AIME, recomenda-se adicionar
max_tokens
(por exemplo, 500) para garantir que o raciocínio esteja completo.
2. treinamento do modelo de replicação
Se quiser reproduzir o processo de treinamento do Light-R1 ou fazer um desenvolvimento secundário com base nele, você pode seguir as etapas abaixo:
- Preparação do ambiente de treinamento
Use a estrutura do 360-LLaMA-Factory e instale as dependências:
pip install -r train-scripts/requirements.txt
- Executar SFT Estágio 1
compiladortrain-scripts/sft_stage1.sh
verifique se o caminho do modelo e o caminho do conjunto de dados estão corretos e, em seguida, execute:
bash train-scripts/sft_stage1.sh
Essa fase usa 76 mil conjuntos de dados e leva aproximadamente 3 horas (12 H800s).
- Executar SFT Estágio 2
Da mesma forma, corra:
bash train-scripts/sft_stage2.sh
Use conjuntos de dados 3k mais difíceis para melhorar o desempenho do modelo.
- Execução do DPO
Implementação:
bash train-scripts/dpo.sh
O DPO otimiza ainda mais os recursos de inferência com base nos resultados do Estágio 2 do SFT.
- Fusão de modelos
Use o script de mesclagem fornecido (por exemplomerge_models.py
), fundindo os modelos SFT e DPO:
python merge_models.py --sft-model sft_stage2 --dpo-model dpo --output Light-R1-32B
3. avaliação do desempenho do modelo
A Light-R1 fornece ferramentas de avaliação para testar benchmarks como o AIME24:
- Executar o script de avaliação
existirdeepscaler-release/
catalogar, executar:
python evaluate.py --model Light-R1-32B --benchmark AIME24
Os resultados serão registrados no diário de bordo e a pontuação média deve ser próxima a 76,6 em 64 ocasiões.
Funções em destaque
Otimização de inferência de cadeia longa
Light-R1 Adotado responder cantando
Rotulagem especial para garantir que o modelo esteja raciocinando passo a passo através do problema matemático. Por exemplo, entrada:
Encontre o número de números inteiros positivos menores que 100 que são divisíveis por 3 ou 5..
Saída do modelo:
Vamos usar a inclusão-exclusão. Números divisíveis por 3: 99 ÷ 3 = 33. Números divisíveis por 5: 99 ÷ 5 = 19. Números divisíveis por 15 (MMC de 3 e 5): 99 ÷ 15 = 6. Total = 33 + 19 - 6 = 46. Resposta: 46. Números divisíveis por 15 (MMC de 3 e 5): 99 ÷ 15 = 6. Total = 33 + 19 - 6 = 46. Resposta: 46.
Proteções de descontaminação de dados
Os dados de treinamento são rigorosamente descontaminados para garantir a imparcialidade em benchmarks como o AIME24/25. O usuário pode verificar o conjunto de dados (dados/
(Catálogo) Verifique se não há tópicos duplicados.
Exemplos de treinamento de baixo custo
O Light-R1 demonstra a viabilidade de um treinamento eficiente, e os usuários podem consultar os scripts de treinamento para personalizar o modelo para outros domínios (por exemplo, física).
Dicas e truques
- Melhoria da precisão do raciocínio: Aumentar
max_tokens
ou com média de várias execuções. - Problemas de depuraçãoVisualização dos registros de avaliação para analisar o processo de raciocínio do modelo em tópicos específicos.
- Suporte à comunidadeEntre no grupo WeChat na página do GitHub para se conectar com os desenvolvedores.