最近我们都看到了关于 DeepSeek-R1 的讨论。它取得了一些惊人的成绩,在推理任务中经常匹敌甚至超过 OpenAI 的 o1 系列……而且它只用一小部分参数和低得多的成本就做到了。所以,自然而然地,我不得不深入研究他们是如何做到这一点的。
免责声明: 我只是一名对这项技术着迷的随机 ML 爱好者/开发者。我与 DeepSeek-AI 没有任何关系。只是分享我从阅读他们的研究论文和其他资料中学到的东西!
那么,秘诀是什么?
一切都与RL强化学习以及他们如何使用它有关。
大多数语言模型都结合了预训练、监督微调 (SFT),然后使用一些 RL 来完善模型。
DeepSeek 的方法有所不同,正是这种差异带来了效率。
他们表明 LLM 能够仅使用 RL 就实现了推理。
打个比喻:
普通AI模型就像先背课本(预训练),再做模拟题(监督微调),最后刷真题(强化学习)。
但DeepSeek不走寻常路,直接让模型从零开始"打怪升级"——完全靠强化学习练就解题能力!
DeepSeek-R1-Zero:纯 RL 模型(纯野生学霸模式):
他们从一个仅使用 RL 从头开始学习推理的模型开始!没有最初的监督训练。它通过反复试验来学习推理的艺术。
- 就像不报补习班的自学天才,完全不给参考答案
- 每解一道题就获得"积分奖励",做错了就自己复盘
- 还能记住之前的解题思路,像整理错题本一样持续进化
DeepSeek-R1:优化的管道:
但是,DeepSeek-R1-Zero 模型存在问题(混合语言、输出混乱)。因此,他们利用该模型通过多阶段训练来创建更强大的模型:
1、冷启动微调(基础规范课):
他们创建了一个小但质量非常高的数据集,其中包含较长的思维链COT示例(思考、逐步推理)和非常易读的数据。这是为了启动推理模型并帮助其实现早期稳定性
- 用精选的"标准答案模板"(长思维链示例)教它规范解题步骤
2、以推理为导向的强化学习(推理导向强化学习):
然后,他们用强化学习来训练它,以提高数学和编码等特定领域的推理能力,同时还引入了“语言一致性奖励”。此奖励会惩罚混合语言,并使输出像人类一样易于理解。
打个比喻,这一步类似:
- 主攻数学、编程等硬核科目
- 新增"语言流畅度加分项",混用语言会扣分
- 确保解题过程像老师板书一样清晰易懂
3、拒绝采样 + 监督微调(错题集特训):
一旦 RL 有所收敛,他们就会通过拒绝采样创建一个大型数据集,然后对其进行微调以获得来自其他领域的能力
类似:
- 把模型最优秀的解题思路整理成习题库
- 用这个题库继续训练,解锁更多技能
第二个 RL 阶段(终极冲刺营):
完成所有微调之后,还有另一个 RL 阶段来改善模型的对齐和性能。
类似:
- 后再来一轮强化训练
- 像体育生赛前集训,把状态调整到最佳
关键点在于:
DeepSeek 积极引导模型通过多个阶段来学习成为优秀的推理者,而不是仅仅向其输入数据并希望获得最佳结果。
- 他们做的不是简单的强化学习。
- 他们通过多次迭代和阶段来完成。
打个比喻:
普通AI像填鸭式教育,先背完所有知识再做题。DeepSeek-R1更像进阶打怪:先掌握思考方法 → 专项提升核心能力 → 查漏补缺 → 最终打磨这种"分阶段重点突破"的策略,让它用更小的脑容量(参数少),花更少的补习费(成本低),考出了学霸成绩!
强化学习(就像打游戏学技巧)
学强化学习的时候会遇到两个重要概念——奖励(Reward)和策略(Policy)
举个栗子就明白啦 :
比如方程 x² -5x +6=0,答案明明是2和3。但我们的目标不只是算出正确答案,还要找出最好的解题方法。
这里说的解题方法就是策略(Policy),而每个方法我们都会给个奖励分(Reward)——就像老师给不同的解题步骤打分一样。比如:
- 用公式法解得快准狠 ➡️ 奖励90分
- 用试数法慢慢凑答案 ➡️ 奖励70分
- 画图法虽然直观但费时间 ➡️ 奖励60分
知识蒸馏(就像老师教学生)
简单来说有两个模型:一个是老师模型,一个是学生模型
老师模型就是参数更多的那个,学生模型参数少很多。要运行老师模型,得用超级厉害的电脑和超多资源!
所以他们想了个办法:用原来的大语言模型(LLM)训练一个缩小版。这样参数数量就大大减少啦。DeepSeek R1里的老师模型会先示范如何一步步思考问题(就像写解题过程),然后把这些示范当作题目提示交给学生模型,学生模型就能学着像老师那样回答问题,但需要的资源少超多!
神奇的是,经过这样"浓缩"的DeepSeek R1版本,虽然参数少了一大截,但表现比现在很多最先进的模型都要厉害!
思维链推理(就像老师让你写解题步骤)
这其实是一种对话引导技术——我们不让AI直接给答案,而是逼它像学霸一样把思考过程"碎碎念"出来!方法就是在用户的问题前偷偷加个小提示。
举个数学作业的例子 :
用户原问题
- ➡️ "2+2等于多少?"
- ➡️ "请像数学老师批改作业那样,一步一步解释计算过程,包括所有思考细节"
- 1️⃣ 先识别这是加法问题
- 2️⃣ 回忆数字系统知识:表示两个单一物体
- 3️⃣ 执行加法运算:2个苹果 + 2个苹果 = 4个苹果
- 4️⃣ 验证计算:用手指头数一遍确认(最后才给出答案:2+2=4)
DeepSeek R1用的提示类似这样
<思考步骤>
- 理解问题:首先仔细阅读并解释问题,以明确问题的要求。
- 识别关键组成部分:将问题分解为其基本要素。涉及的主要概念或变量是什么?
- 概述相关信息:考虑适用于此问题的任何公式、定义或先验知识。我需要哪些信息来解决这个问题?
- 逐步推理:
- 清晰地阐述推理过程的每一步。
- 应用逻辑推理从提供的信息中得出结论。
- 如果适用,以系统化的方式进行必要的计算或分析。
举个作业帮帮忙的例子 :
用户原问题
- ➡️ "解方程 3x + 5 = 20 的解是多少?" 我们偷偷加的咒语
- ➡️ "请像数学课代表那样,先列出已知条件,再分步解方程,最后验证答案是否合理"
1️⃣ 梳理问题:识别这是线性方程问题
2️⃣ 拆解步骤:
- 第一步:20 - 5 = 15(等式两边减5)
- 第二步:15 ÷ 3 = 5(等式两边除3)
✅4️⃣ 总结格式:用【】框住最终答案
DeepSeek R1的真实咒语长这样(简化版):"现在你遇到一个需要仔细思考的问题。请像教小学生那样,把解题过程拆解成容易理解的步骤,包括:
- 题目给了什么信息?
- 需要用哪个公式/方法?
- 每一步怎么变形/计算?
- 最后怎么检查答案对不对?请用数字标号分步说明,并在最后用彩笔️【答案】标出结果"
这样做的好处就像老师要求写解题步骤:
- 避免跳步骤导致粗心错误
- 方便检查哪里想错了
- 就算答案错了,也能通过步骤找到"病因"
因此,阅读完本文后,我希望您最终能够理解 DeepSeek-R1 如何能够以比其竞争对手少得多的参数实现如此出色的表现。