DeepSeek-R1火爆全球,肯定不仅仅是开源了一篇论文、一个模型那么简单,更多的是其带来的一些影响,这里简单聊聊。
跳出大模型固有开发范式
NLP&大模型技术发展历程大致如下:
- 规则方法
- 统计学习方法
- 深度学习方法
- 深度学习预训练模型+特定场景微调(fine-tune)
- 大模型技术:预训练+SFT(指令跟随)+RLHF(偏好对齐),没有针对特定任务场景微调,主要依靠提示词完成具体任务
虽说到现在大模型兴起也有两年多时间,但是基本上之前所有大模型的开发范式都是跟随OpenAI那一套,也就决定了难以有所超越。而这次DeepSeek-R1的开发则是跳出了这种开发范式,使用改进的强化学习算法作为主导训练大模型,具体来说,就是采用了两阶段的SFT和RL对预训练基础模型进一步训练,在这个过程中,模型的能力更多的是靠强化学习训练自我进化而来,而非从人类预先定义好的数据模式中学习来的。
而对于强化学习,一个关键的环节就是奖励函数,DeepSeek-R1抛开了原本需要大量数据训练的生成式奖励模型,使用的是简单直接的奖励标准:
- 答案正确奖励
这个主要针对数学问题和编程问题。数学题的答案是可以事先知道的,也有很多现成的数学数据集,这个标准只需简单判断模型输出与标准答案是否一致就能够决定是否给与奖励;编程问题也是确定性的,看生成的代码能不能运行,运行结果符不符合要求。 - 格式正确奖励
在训练DeepSeek-R1时,会给它预先定义好一个输出模板,让它在输出最终结果前先输出思考过程,并且将两部分内容分别放在不同的标签了,例如和,计算这个格式奖励是可以简单地用正则表达式匹配这个模式,匹到到就给奖励,没匹配到就不给。
所以上面这两个奖励标准都是很简单直接、明确清晰的标准,不会有偏差。而之前大模型RLHF过程中所使用的奖励模型则不一样,毕竟是使用数据训练出来的模型,在遇到一些训练时没见过的数据时有很大可能给出不符合我们预期的奖励,从而给模型训练传递了错误的信号,把训练方向带偏了,导致模型效果受影响。
这里引用这篇文章中的说法说明一下,比较形象:
如果打一个比方,两种方法有点像不同的方式学数学:
第一种是以老师手把手的教学为主,学生的主要任务是理解老师教授的内容,背下标准解法和步骤,今后面对所有问题套用老师教学的内容。在学习阶段,只要有一点和老师教的不一样,老师就马上提醒。这种方法下也会有出色的学生,但要求老师本身很好,知识面很广,而且今后学生面对的问题也不能偏离老师的知识范围太大。
第二种方法是大幅弱化老师的指导,让学生自己做一大堆题,学生必然最开始大部分都做错了,但是没关系,每次做对时,老师把题都给你归拢到一起,你自己消化理解我为什么在这些方面做对了,自己捋出头绪,逐渐理解的内容越来越多,也越来越能自己处理难题了。
这两种方法下,想要达到同样的性能,第二种需要做的练习就多得多,这也是,DeepSeek在微调阶段需要的算力远比传统模式下微调阶段需要的算力大得多的原因。当然,我这里说的“大”,指的并不是绝对算力值的消耗值,而是预训练和微调这两个阶段消耗算力的比值。传统方法下,预训练可能消耗全部算力的90%-98%。也就是说,微调阶段在传统方式下只会匀给它2%-10%的算力;而在DeepSeek的方法里,微调阶段需求的算力占比可能是30%-40%,而由此换来的就是推理能力、数学能力的大幅提升。
这不就是印证了那句话:你的时间精力花在哪里,成绩就出在哪里!
DeepSeek采用了不同的训练范式,也证明了该范式的有效性,相信接下来会有很多工作进行跟进。
开源正在走向胜利
DeepSeek-R1出来后,Meta 的首席 AI 科学家 Yann LeCun 说:开源模型正在超越专有模型。
DeepSeek-R1 的开源不仅是技术资源的开放,更标志着 AI 开发模式从 “封闭竞赛” 转向 “协作共创”,其意义超越单一模型贡献,通过降低参与门槛、激发创新活力、重塑行业格局,为全球开源社区提供了 “高性能模型普惠化” 的实践范本,目前开源社区已经有很多工作根据DeepSeek放出的论文、算法等复现了DeepSeek-R1,典型的项目有 open-r1、TinyZero 等等。