LLMs之DeepSeek r1:TinyZero的简介、特点、安装和使用方法、案例应用Logic-RL的简介、安装和使用方法、案例应用之详细攻略
LLMs之DeepSeek r1:TinyZero的简介、特点、安装和使用方法、案例应用Logic-RL的简介、安装和使用方法、案例应用之详细攻略
目录
TinyZero的简介
1、TinyZero的特点
TinyZero的安装和使用方法
1、安装
创建 conda 环境
数据准备 (倒计时任务)
多GPU (适用于 3B+ 模型):
TinyZero 的案例应用
TinyZero的简介
TinyZero 项目是对 DeepSeek R1 Zero 在倒计时和乘法任务上的一个简洁、最小化且易于访问的复现。它基于 veRL 构建,通过强化学习,使 3B 基础大型语言模型自主地发展出自我验证和搜索能力。 项目声称只需不到 30 美元即可体验其效果,并提供了 Twitter 讨论串链接和完整的实验日志链接 (Wandb)。 论文正在撰写中。
1、TinyZero的特点
TinyZero 的主要特点是其简洁性和易访问性,它成功复现了 DeepSeek R1 Zero 的核心功能,使得研究人员和开发者更容易理解和应用该技术。 通过强化学习,模型能够独立地学习自我验证和搜索能力,这使得模型能够更有效地解决复杂的推理问题。
TinyZero的安装和使用方法
1、安装
创建 conda 环境
conda create -n zero python=3.9
安装 PyTorch (可选,vllm 可自行安装):pip install torch==2.4.0 --index-url https://download.pytorch.org/whl/cu121
安装 vllm:pip3 install vllm==0.6.3 (或 0.5.4, 0.4.2, 0.3.1)
安装 Ray:pip3 install ray
安装 verl:pip install -e .
安装 flash attention 2:pip3 install flash-attn --no-build-isolation
安装其他依赖 (提高使用体验):pip install wandb IPython matplotlib
数据准备 (倒计时任务)
激活 conda 环境:conda activate zero
运行数据预处理脚本:python ./examples/data_preprocess/countdown.py --local_dir {path_to_your_dataset} ({path_to_your_dataset} 替换为你的数据集路径)
训练执行
训练过程根据模型大小分为两种情况:
单GPU (适用于模型 <= 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
如果出现内存不足 (Out-of-vram) 错误,可以在脚本中添加 critic.model.enable_gradient_checkpointing=True。
多GPU (适用于 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
指令消融实验 (使用 QWen-2.5-3B Instruct):
需要重新处理数据
激活 conda 环境:conda activate zero
运行数据预处理脚本 (使用指令模板): python examples/data_preprocess/countdown.py --template_type=qwen-instruct --local_dir={path_to_your_dataset}
然后使用与 3B+ 模型相同的训练命令,只是将 EXPERIMENT_NAME 更改为 countdown-qwen2.5-3b-instruct。
所有命令中的 {path_to_your_model} 和 {path_to_your_dataset} 需要替换成你的模型路径和数据集路径。
TinyZero 的案例应用
项目主要关注倒计时任务,并提供了针对不同大小模型 (0.5B 和 3B+) 的训练方法。 实验使用了 Qwen2.5 系列基础模型。 项目说明了在 0.5B 模型上强化学习效果不佳,而 3B+ 模型则能够学习复杂的推理技能。 具体的实验结果和详细的消融实验结果可以在其提供的 Wandb 链接中查看。