Introdução geral
O TinyZero é um modelo de aprendizagem por reforço baseado em veRL projetado para reproduzir o DeepSeeK-R1 O desempenho do Zero em tarefas de contagem regressiva e multiplicação. Surpreendentemente, o projeto alcança as mesmas epifanias que o DeepSeeK-R1 Zero por um custo operacional de apenas US$ 30 (menos de 5 horas usando 2xH200 a US$ 6,4 por hora). Por meio da Aprendizagem por Reforço (RL), o Modelo de Linguagem Base (LM) 3B é capaz de desenvolver autonomamente recursos de autovalidação e pesquisa. Os usuários podem experimentar o poder e a inovação do TinyZero por meio de um processo simples de configuração e treinamento.
Lista de funções
- tarefa de contagem regressivaSuporte aos processos de preparação de dados e treinamento para ajudar os modelos a aprender em tarefas de contagem regressiva.
- Tarefas de multiplicaçãoSuporte aos processos de preparação de dados e treinamento para ajudar os modelos a aprender em tarefas de multiplicação.
- Suporte a uma única GPUPara parâmetros de modelo menores ou iguais a 1,5B.
- Suporte a várias GPUsModelos aplicáveis a parâmetros maiores são capazes de desenvolver recursos de raciocínio sofisticados.
- Instruir a ablaçãoExperimentos que apóiam o modelo de construção QWen-2.5-3B.
- Ferramentas de aprimoramento da qualidadeAs ferramentas incluem flash-attn, wandb, IPython e matplotlib para aprimorar o treinamento do modelo e a experiência de uso.
Usando a Ajuda
Processo de instalação
- Crie um ambiente virtual:
conda create -n zero python=3.9
- Instale o PyTorch (opcional):
pip install torch==2.4.0 --index-url https://download.pytorch.org/whl/cu121
- Instale o vllm:
pip3 install vllm==0.6.3
- Instalar raio:
pip3 install ray
- Instalar a versão:
pip install -e .
- Instale o flash-attn:
pip3 install flash-attn --no-build-isolation
- Instalação de ferramentas de aprimoramento da qualidade:
pip install wandb IPython matplotlib
Função Fluxo de operação
tarefa de contagem regressiva
- Preparação de dados:
conda activate zero python . /examples/data_preprocess/countdown.py --local_dir {path_to_your_dataset}
- Processo de treinamento:
conda activate zero exportar N_GPUS=1 export BASE_MODEL={caminho_para_seu_modelo} export DATA_DIR={caminho_para_seu_conjunto_de_dados} export ROLLOUT_TP_SIZE=1 export EXPERIMENT_NAME=countdown-qwen2.5-0.5b export VLLM_ATTENTION_BACKEND=XFORMERS bash . /scripts/train_tiny_zero.sh
Treinamento do modelo 3B
- Preparação de dados:
conda activate zero python examples/data_preprocess/countdown.py --template_type=qwen-instruct --local_dir={path_to_your_dataset}
- Processo de treinamento:
conda activate zero export N_GPUS=2 export BASE_MODEL={caminho_para_seu_modelo} export DATA_DIR={caminho_para_seu_conjunto_de_dados} export ROLLOUT_TP_SIZE=2 export EXPERIMENT_NAME=countdown-qwen2.5-3b-instruct export VLLM_ATTENTION_BACKEND=XFORMERS bash . /scripts/train_tiny_zero.sh