【学习笔记】Deepseek technical reports
确实是吊文。
Deepseek Math
读 deepseekmath 的时候没有写笔记,下面的内容都是凭记忆乱写的。这个 technical report 告诉了我进行“模型微调”大概都要做什么。印象最深刻的是文章选择了相当相当多的 benchmarks,包括数学、coding、natural laguage understanding 等方面。
我觉得怎么做的有一定参考价值,“怎么做是无法成功的”这种 insight 更为重要。作者在 conclusion 之前罗列了大量相关的实验和结论,是很宝贵的。
data processing
具体做法可以参考原论文。
实现了“从大规模互联网 corpus 中找到 math related 的内容”。 deepseekmath 的 pipeline 主要:1. 提升了 corpus 中语料和 “MATH” 的相关性 2. 通过训练 classifer,在保证相关性的前提下,提升了数据的数量。
从论文中可以发现,团队根据“互联网语料”的格式特征进行了一些个性化算法的设计,即统计每个域名下有多少比例的数据被分类器识别出来,如果这个比例较高,那么可能这个域名都和 math 相关。同时这个 classifer 也不是一成不变的,我们也可以将数据收集的过程设计为一个 cycle,将每轮被新 pick 出来的数据的 feature 融合到分类器里面。
作者还记录了一个 counter intuitive 的现象,即在 arxiv 论文上对模型进行微调收效甚微,不过本文没有进一步的数据清洗工作。
Math Pretrianing + SFT
具体做法可以参考原论文。
作者分享了一个有趣的现象:使用 coding 基座比 通用基座 效果要好。
我有一个疑点:为啥 deepseek 能收集这么多 CoT 标注的数据?它们的源数据集标注了吗?因为我没有一篇一篇翻那些 dataset 的原论文读,所以这个问题没有答案,不排除是蒸馏的可能。
RL
-
GRPO
PPO 中 \(\hat A_{i,t}\) 是使用 GAE 来计算的(具体表达式可以参考原论文),在进行 estimation 时为了提供 advantage 的 baseline,引入了 value model。这个 value model 也跟着 iteration 进行训练,为了保证 baseline 的质量,它的大小和 agent 的模型大小差不多。为了减少额外的计算开销(这里 reward model 只需要做前向传播,value model 需要做训练,计算开销大了很多),GRPO 对每个任务 sample 多个输出,将 reward model 对这些输出的平均值作为 baseline。
剩下的 gradient 设计以及 on policy 等等和 PPO 基本保持一致。
本来这里想长篇大论写一写 RL on LLMs,但是没时间了。
insight
-
推理阶段我们常常使用一些 topk 或者 majority voting 的手法,RL 能提升 Maj@k 的命中率。
-
Unified RL framework
我们证明了强化学习(RL)在数学推理任务中表现良好。我们还提供了一个统一的范式来理解不同的代表性训练方法。在这个范式中,所有方法都被概念化为直接或简化的强化学习技术。如等式5所总结,存在三个关键组成部分:数据源、算法和奖励函数。我们就这三个组成部分提供一些潜在的未来研究方向。
【数据源】
数据源是所有训练方法的原材料。在强化学习的背景下,我们特指数据源为来自策略模型采样输出的未标记问题。在本文中,我们仅使用指令微调阶段的问题和简单的核采样来采样输出。我们认为这可能是我们的强化学习流程仅改善Maj@K性能的潜在原因(insight 第一条不保对)。未来,我们将探索在分布外问题提示上应用我们的强化学习流程,结合基于树搜索等先进的采样(解码)策略(Yao等,2023)。此外,决定策略模型探索效率的高效推理技术(Kwon等,2023;Leviathan等,2023;Xia等,2023,2024)也起着极其重要的作用。
【算法】
算法将数据和奖励信号处理为梯度系数以更新模型参数。基于等式5,在某种程度上,所有方法现在都完全信任奖励函数的信号来增加或减少某个词元的条件概率。然而,不可能确保奖励信号始终可靠,特别是在极其复杂的任务中。例如,即使是经过训练有素的标注者精心标注的PRM800K数据集(Lightman等,2023),仍然包含约20%的错误标注。为此,我们将探索对噪声奖励信号具有鲁棒性的强化学习算法。我们相信这种弱到强(Burns等,2023)的对齐方法将给学习算法带来根本性的改变。
【奖励函数】
奖励函数是训练信号的来源。在强化学习中,奖励函数通常是神经奖励模型。我们认为奖励模型存在三个重要方向:
1)如何增强奖励模型的泛化能力。奖励模型必须能有效泛化以处理分布外问题和高级解码输出;否则,强化学习可能仅仅稳定大语言模型的分布而不是改善其基本能力;
2)如何反映奖励模型的不确定性。不确定性可能作为弱奖励模型和弱到强学习算法之间的连接桥梁;
3)如何高效构建高质量的过程奖励模型,为推理过程提供细粒度的训练信号(Lightman等,2023;Wang等,2023b)。
这段里面多次提到了 ood 泛化的问题,值得注意。
我还不知道什么叫“探索对噪声奖励信号具有鲁棒性的 RL 算法”,得学一学
limitations
虽然 DeepSeekMath 在定量推理基准测试中取得了令人印象深刻的分数,但它在几何和定理证明方面的能力相对弱于闭源模型。例如,在我们的预测试中,该模型无法处理与三角形和椭圆相关的问题,这可能表明预训练和微调中存在数据选择偏差。此外,受限于模型规模,DeepSeekMath 在少样本能力方面不如 GPT-4。GPT-4 可以通过少量样本输入提高其性能,而 DeepSeekMath 在零样本和少样本评估中表现相似。
Deepseek R1
省流:
-
先在需要大量推理的 task 上进行训练。做法是直接 GRPO,得到了 r1 zero,从结果上看效果确实不错,但是思考的过程有各种问题。这些问题可以通过引入 reward 指标来缓解。
-
因为 RL 的初期探索过于不稳定,在开发 r1 zero 的下一代模型(r1)时,我们先做一次 SFT,然后再做添加 更多 reward 指标后的 RL,实验表明这种方法可以保证在推理任务上达到 o1 模型水平
-
下一步我们想着训练一个通用的推理模型,那么把冷启动 SFT 数据重新构造,再跑一样的 RL pipeline。
这下子 GRPO 不得不会了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了