当你的简历有一个DeepSeek-r1-zero项目如何准备问答
博主现在即将参加xx大学计算机学院研究生复试,现在梳理一下项目中的细节。
·
博主现在即将参加xx大学计算机学院研究生复试,现在梳理一下项目中的细节。
以下是我的简历上的项目描述:
简述一下 deepseek-r1 和 deepseek-r1-zero 的理念到底有什么与众不同?
- DS-R1-Zero 完全是 RL 训练而来的,没有经过 SFT(监督式微调)。但是也带来了一些问题,比如容易生成 重复内容、可读性差、语言混杂。
- DS-R1,在强化学习之前,先加入了冷启动数据进行微调(SFT),让模型从一开始就具备基础的语言和推理能力,之后再用强化学习优化推理能力。这样可以减少 R1-Zero 版本的缺点,提高回答质量和可读性。DS-R1还有多阶段训练这一特征,还使用了一些SFT数据进行后处理(Post-Training)。
简述一下你觉得你这个项目有什么启发点
- 我的项目证明即使在小参数量模型上,GRPO 的强化学习方法 + 结构化奖励也能提升模型能力(22.4%→64.7%),为后续在大参数量模型上实现这种训练方法证明了可行性。
简述一下你的训练流程
- 首先是数据准备,使用的是 huggingFace 下载的 gsm8k 数据集。
- 然后是定义下 r1-zero 的基本结构,比如各种奖励函数的构建,最后使用 trl 封装的 grpo 接口完成模型的组合和搭建,以及传入一些参数。
- 最后就是使用 trl 的 GRPOTrainer 训练框架,把奖励函数、模型等拼装上去,开始训练。
GRPO 算法的核心思想是什么?和 PPO 有什么区别?
- GRPO(Group Relative Policy Optimization)是一种新的强化学习方法,是 DeepSeek R1 使用到的训练方法。核心要点是:多生成几份答案,一起比较,再根据排名或分数差更新,能更直接、简洁地反映同一问题下的优劣关系,而不需要用一个显式的价值网络去学习所有中间时刻的估计。当然也有缺点:推理时要多花点算力去生成候选答案。简单来讲就是模拟人类的思维方式:最优解不是绝对正确,而是在当前候选集中最优。
- 与 PPO 的区别:PPO 依赖绝对评估体系,适合明确奖励场景(如游戏得分);而 GRPO 通过组内相对竞争,更适合开放域推理任务(如数学证明、代码生成)。GRPO 这种设计让AI的推理能力首次突破了“标准答案”的局限,向真正的创造性思维迈进了一步。
- 备用回答[doge]:GRPO 的具体数学细节我目前主要基于TRL库的实现,理解层面知道它通过分组计算相对优势来优化策略稳定性。完整推导我还需要进一步学习,面试后我会重点研究原始论文补充这部分理论。
你设计的奖励函数如何平衡accuracy和format?具体数值如何量化?
- 代码中使用了5个奖励函数,一个正确性奖励函数,分值最大,其他的都是些近似于格式奖励函数的设计,比如我设置了一个严格格式奖励函数和一个温和格式奖励函数,都是小分值。加权方式是直接相加,因为在设计奖励函数时候就已经考虑过这个问题,具体权重分配是通过实验试错法确定的。但是虽然表面上正确率的分值最大,但是如果没有输出在正确的格式,其实我的答案提取函数是没法锁定答案的,这也算是一个隐藏的格式奖励函数吧。
- 追问:为什么同时使用 strict_format 和 soft_format 两个格式奖励函数?
- 主要是体现为了体现分层训练的思想,r1-zero 是没有使用 SFT 对 base 模型进行冷处理的,其实在实际训练过程中,直到 100 个 CKPT 都没有命中过目标。初期用 soft-format 可以引导模型初步遵循格式,后期用 strict-format 强化严格对齐。
- 其实也是为了平衡格式规范的严格性和训练稳定性。实际应用中发现单一严格奖励会导致探索不足,组合使用能更平滑地引导模型。
- 追问:其他奖励函数是什么?
- 一个是答案是否为整数奖励函数,一个是 XML 标签完整性奖励函数,比如 reasoning 和 answer 标签是否成对出现。如果没有的话会采用一种动态递减奖励的机制,比如少对齐一个标签会扣除当前总分的 0.001 倍的分。再加一个渐进式引导,如每满足一个标签 +0.125 分。具体的设定是查阅了各种博客和资料后设定的。
为什么选择Qwen-0.5B作为基座模型?
- 0.5B 参数量可以再单卡 3090 上全参数训练,可以快速迭代(其实也没有很快,900 个 CKPT 也训练了将近 8h)。
- qwen 系列在数学推理方面有比较好的基础,初始的 0.5B 的模型在 gsm8k 上就有 20% 的正确率了。
- 我认为这也符合实际,一般都是在小模型上测试效果,再将训练方法运用在参数量大的模型上。
如何确保对比实验的可靠性?是否有过拟合风险?
- gsm8k 本身就严格划分了训练和测试集,测试集仅用于最终评估。
- 效果提升不明显就及时停止,比如我是在 900 个 CKPT 时候发现模型效果提升不明显了,我就停止继续训练保留模型参数。
- 目前所做只是观察到训练时候,验证集的效果和训练集是同步上升。
- 追问:还有什么策略能保证对比实验的可靠性?
- 我了解到的还有增加交叉验证或者对抗样本测试。
- 追问:什么是交叉验证和对抗样本测试?
- 交叉验证就是,比如说我把数据集分成五份,每次选一个子集做验证集,重复五次,每次都是不同的验证集,取平均的正确率。
- 对抗样本测试是,构造语义不变但是形式变化的输入,验证鲁棒性。比如“计算21×3的值”变为“请计算二十一乘以三的结果”。这个可以用 llm 生成 20-50 个对抗样本,验证一下正确率是否显著下降。
r1-zero 实现中遇到的技术难点是什么?
- GRPO 的分组逻辑的实现依赖复杂的数学计算,具体实现细节可能需要回顾原论文和 trl 库的代码才能完整说明。
- 由于资源有限,我使用的是单卡 3090,显存 24GB,每组只能生成 16 个响应用于 GRPO 的分组对比(即组内样本计算相对优势),理论上来说更多的分组可能能有更好的效果,就是需要更高的显存。
点击阅读全文
更多推荐
所有评论(0)