TinyZero 开源项目教程
1. 项目介绍
TinyZero 是 DeepSeek R1 Zero 的一个重现,专注于倒计时和乘法任务。该项目基于 veRL 构建,通过强化学习(RL),3B 基础语言模型发展出自验证和搜索能力。
2. 项目快速启动
环境准备
首先,创建一个新的虚拟环境并安装所需的依赖:
conda create -n zero python=3.9
conda activate zero
pip install torch==2.4.0 --index-url https://download.pytorch.org/whl/cu121
pip3 install vllm==0.6.3
pip3 install ray
pip install -e .
pip3 install flash-attn --no-build-isolation
pip install wandb IPython matplotlib
数据准备
对于倒计时任务,你需要准备相应的数据集:
python ./examples/data_preprocess/countdown.py --local_dir {path_to_your_dataset}
模型训练
根据你的模型大小,选择相应的启动命令:
对于小于等于 1.5B 的模型:
export N_GPUS=1
export BASE_MODEL={path_to_your_model}
export DATA_DIR={path_to_your_dataset}
export ROLLOUT_TP_SIZE=1
export EXPERIMENT_NAME=countdown-qwen2.5-0.5b
export VLLM_ATTENTION_BACKEND=XFORMERS
bash ./scripts/train_tiny_zero.sh
对于 3B+ 的模型:
export N_GPUS=2
export BASE_MODEL={path_to_your_model}
export DATA_DIR={path_to_your_dataset}
export ROLLOUT_TP_SIZE=2
export EXPERIMENT_NAME=countdown-qwen2.5-3b
export VLLM_ATTENTION_BACKEND=XFORMERS
bash ./scripts/train_tiny_zero.sh
3. 应用案例和最佳实践
指导消融实验
项目还支持对 QWen-2.5-3B Instruct 进行指导消融实验。首先,你需要重新处理数据:
conda activate zero
python examples/data_preprocess/countdown.py --template_type=qwen-instruct --local_dir={path_to_your_dataset}
然后,使用以下命令进行训练:
export N_GPUS=2
export BASE_MODEL={path_to_your_model}
export DATA_DIR={path_to_your_dataset}
export ROLLOUT_TP_SIZE=2
export EXPERIMENT_NAME=countdown-qwen2.5-3b-instruct
export VLLM_ATTENTION_BACKEND=XFORMERS
bash ./scripts/train_tiny_zero.sh
4. 典型生态项目
目前,TinyZero 项目的生态系统中没有列出特定的典型项目。不过,该项目可以作为其他自然语言处理和强化学习研究的基石,为开发更复杂的模型提供起点。社区成员可以贡献自己的实现和改进,以丰富这个生态系统。