专栏名称: AINLP
关注AI、NLP相关技术,关注算法研发职位和课程;回复"文章"获取历史信息;双语聊天机器人"无名";中英翻译请输入:翻译 翻译内容;自动对联,请输入:上联 上联内容;调戏夸夸聊天机器人,请求夸、求赞;查询相似词,请输入: 相似词 词条
目录
相关文章推荐
冷兔  ·  朋友:怎么东边放炮西边响! ·  2 天前  
不正常人类研究中心  ·  你是说在这个全中国都最闲的时候 ·  3 天前  
冷丫  ·  媳妇的十几款制服。 ·  4 天前  
51好读  ›  专栏  ›  AINLP

Deepseek-R1 & Kimi-1.5读后有感 | 大道至简的o1

AINLP  · 公众号  ·  · 2025-01-25 22:59

正文

知乎:https://zhuanlan.zhihu.com/p/19838650037

deepseek 的这篇 R1 技术报告实在太优雅了,也是越来越有 OpenAI 那个感觉了:大道至简,沿着最简单的思路做到极致,目标自然达成

组长今天给我说:“技术人过年前的最后一周就应该拿来读论文”。那我就也来蹭个热度,简单表达下我对 R1 和 K1.5 技术报告的一些思考,也感谢 deepseek 和 kimi 团队带来的这场技术盛宴。

大道至简

deepseek 和 kimi 的核心思路是一样的:关注推理的中间过程是否正确无法实现,所以只能 rule-based reward,最起码 reward 一定是准的!这和 alpha 系列的核心思想很相近,结果至上。

deepseek 反驳 prm 路线的三个理由是:

  • 定义一个 fine-grain step 很困难;
  • 很难确定一个 step 是否正确,机器标不准,人标无法 scaling up;
  • 一旦 PRM 被引入,不可避免的 reward hacking,且训练资源耗费会更多。

这里,我最认同的是第二点:无法 scaling。假设我们能雇博士生标 10W 条 cot 高质量数据,但能标 100W 条吗?1000W 条呢?就像 scaling law 表达的一样,想让模达到新的效果,需要的数据量级往往是指数增长的。但保不齐以后真的有 scaling prm 数据的方案了,现在一杆子打死为时尚早,也许小模型,或者冷启动用它更好呢?

回归话题,虽然殊途同归,但两个学霸的具体实现方案还是有些差别的。

学霸 D 的想法:把 o1 的训练分为两阶段:step1 学推理,step2 学说话

  • 训 zero 的 step1:全程无标注数据的参与,就是认准了一个目标:让模型的 reward 变高。这个阶段别和我谈模型格式错误逻辑混乱这种细节,我不看模型表现,只看 reward。只不过 reward 变高的过程中,发现模型的输出越来越长了,反思能力也自己涌现出来了;
  • 基于 zero 训 R1 的 step2:就像是我们做普通的 post training 了,sft 没有被抛弃,除了rule-based reward,reward_model 也被请回来了,reject sampling 也出手了。

学霸 K 的想法:我还是一步到位吧,在 step1 学推理的过程中,要时刻监控着模型的说话能力是否还正常。为了达到此目标,模型的输出长度,模型对每一个 prompt 的回答准确率等信息,全程都被严格监控。

如果没有资源去做 zero 的话,学霸 K 的很多技巧其实更加实用,它分享了很多防止训崩的细节。学霸 D 在 step2 阶段的训练过程中,除了有千条冷启动数据 ,60W 拒绝采样数据,20W 条非推理数据外,其他细节都属于是完全没提的状态。

我太能理解学霸 K 了,我为啥不敢 rule-based reward 一条路走到黑?不就是因为我一训就崩,输出长度崩,performacne 崩,输出格式崩。我崩的时候会自我怀疑是不是选错方案了,学霸 K 崩了则是通过加训练技巧、改 loss 给救回来了。反观学霸 D,他的思路真的太超前太有魄力了, 别去在乎这些细节,二阶段集中解决。

OK,除了大道至简的 rule-based reward 之外,我还想再聊一下 deepseek 提到的 aha moment:模型涌现出来的反思能力。很多同学对此都觉着很 amazing,我则是感觉这很浑然天成:输出长度在涨,reward 在涨,不自然而然的就会反思了吗?

这就像小时候的考试,我一开始写完就直接交卷,后来我每次都把草稿纸写的更满才交卷。如果我是在草稿纸上画画,那我的成绩不会有变化;如果我是拿来检查,那我的成绩自然更好了。现在我们观察到 zero 模型的草稿纸写的更满了,成绩也更高了,那它除了学会“检查”好像也没别的可能性了。检查的时候,是按照老思路重算一遍,还是换个思路算一遍,还是拿着答案倒推题干,迟早都会在 explore 时自然而然学到的。

至于 zero 模型是如何涌现出来的反思?是靠着 pretrain 里面学到过的一些“自我否定”的文本,还是说在 do_sample 的时候偶尔探索到了“不对,等等”这些 token,那就留给更厉害的程序员去给我们解惑吧。

小小遗憾

然而,我觉着 deepseek 的报告还是有一点瑕疵的:他没有对蒸馏方案和 rl 方案进行更深入的探索,他仅仅是草率的抛出了一个结论:小模型蒸馏更好,大模型用 rule-based rl 更好?

我知道有很多人认为这句话不是跟 1 + 1 = 2 一样,很字面意思了,模型能力不够的时候只能蒸馏呗!但说实话,我看完之后有点心痒痒,没有数据和公式的支撑,我不太能随便信服这么笼统的一句话。这句话太像那句经典的“大模型小学习率,小模型大学习率”了,说了跟没说一样,还是不知道该怎么设置学习率。

把 qwen 所有 size 的模型(至少能训 rl 且不崩的 size),同时做 zero 方案和蒸馏方案,然后对比结果,绘制曲线,观察是不是 zero方案的优势随着模型 size 的提升越来越明显,我猜是能得出一些结论的。遗憾的是,我并没有看见 qwen-72b + 蒸馏,qwen-72b + zero,Deepseek-V3 + 蒸馏 这三个重量级模型的效果。

此外,我还想知道,对 pretrain 模型直接进行 zero 训练,是因为做了实验这样效果更好?还是说一次偶然的尝试成功了。总感觉,deepseek 已经做了这么多了,它稍微再发发力,就能让我们看到 RL-reasoning-scaling law 这种东西了,可惜报告里没有后续了,真的太遗憾了。

写在最后

去年九月份就有人告诉我们:Don't Teach, Incentivize!显然,Deepseek 和 Kimi 是听进去了。虽然从业者之间彼此是竞争关系,但这波属实是国产大模型上大分,值得全员狂欢!







请到「今天看啥」查看全文