DeepSeek R1 强化学习指导手册
项目操作手册
- ++数据和模型准备++
本项目的训练任务为利用给定的几个数字数字使用”+-x÷”计算得到目标数字,类似于计算 24 点。使用的 base 模型为 Qwen2.5-1.5B-Instruct
-
数据集下载链接:https://huggingface.co/datasets/Jiayi-Pan/Countdown-Tasks-3to4
-
base 模型下载链接:https://www.modelscope.cn/models/Qwen/Qwen2.5-1.5B-Instruct/
-
拉取镜像
docker pull
- 基于镜像启动容器,并挂载数据和模型所在的路径
docker run -d -it --device=/dev/infiniband --device=/dev/dri --device=/dev/mxcd --group-add video --network=host --security-opt seccomp=unconfined --security-opt apparmor=unconfined --shm-size 100gb --ulimit memlock=-1 --name mini-r1 -v /mnt:/mnt mini-deepseek-r1:v0.1 /bin/bash
-
启动训练脚本
-
进入工作目录:cd /workspace/mini-deepseek-r1
-
修改数据集和模型路径:打开文件 grpo-1.5b.yaml 将下面两个字段分别改成当前容器中的模型的路径和数据集路径
-
- 启动训练脚本
bash train.sh 2>&1 | tee log.txt
注:
-
训练时间估计 10 个小时左右,前面几十个 step 速度较慢,需要 12~13 分钟才会出来一个 step,请耐心等待
-
训练完成后保存的模型会在./runs/qwen-2.5-1.5b-r1-countdown 文件夹中,也可修改 grpo-1.5b.yaml 中的”output_dir”字段来修改保存的训练结果的路径
- 训练后的模型进行测试
打开 inference.py 将下面字段替换成测试模型的路径即可
最终会输出在 500 条测试数据集中的,模型预测的准确率。
注:测试数据是在训练的时候随机采样的 500 条数据,会在训练的时候单独保存在 /workspace/mini-deepseek-r1/test 目录下
强化学习训练结果
数据说明
本文使用的数据是在Countdown-Tasks-3to4中随机选取的 5 万条数据,然后在其中随机选取了 500 条作为测试数据。
测试结果
模型 | 测试集准确率 |
---|---|
Qwen2.5-1.5B-Instruct | 8/500 |
Qwen2.5-1.5B-r1(450 step) | 72/500 |
说明:
-
Qwen2.5-1.5B-r1(450 step)表示经过 450 个 step 的强化学习训练后得到的模型。
-
本次训练总共 450 个 step,使用 8 张 C500, 总耗时约 10 小时
结论
经过强化学习后的模型效果明显优于原 base 模型。优于训练的 step 过少,且 1.5B 模型原始的推理能力有限,后续还有很大优化空间。)m