Deepseek-R1是怎样炼成的?一文详解Deepseek-R1的诞生历程

0 评论 861 浏览 2 收藏 18 分钟

Deepseek-R1作为近期备受瞩目的AI模型,其卓越的表现引发了广泛的关注和讨论。本文将深入剖析Deepseek-R1的诞生历程,从其技术架构、训练方法到行业影响,全方位展现这一模型背后的创造之美。

针对Deepseek,近期网上也已经有不少的介绍,本人也先后发表了多篇相关的短视频和文章,介绍为什么Deepseek-R1的发布会引起如此大的关注。

【入门科普】关于Deepseek你肯定会关心的3个基本问题

在内容中我有提到,Deepseek的火热,很重要的原因就在于其模型表现的强大。只是,对于Deepseek-R1究竟是如何达到这样优秀的表现,我曾经也搜索过相关的材料,但限于个人在技术层面的认知水平,毕竟没有达到理解透彻之地步。

几天前,刚好阅读到“腾讯科技”所发布的公众号文章《万字赏析 DeepSeek 创造之美:DeepSeek R1 是怎样炼成的?丨荐读》。文章详细介绍了 DeepSeek-R1 模型的开发过程、技术创新和行业影响。文章本身质量很高,也尽可能降低阅读门槛,可以说很大程度上帮助我理解Deepseek-R1是如何打造出来的。在阅读过程中,Deepseek团队(后面会多次出现Deepseek,因此为了方便大家阅读,后文在提到Deepseek团队时统一简称“DS团队”)的各种训练方式的技巧让我多次拍案叫绝,不断在内心叹服。

只是,文章中仍然有不少专业词汇存在,对于普通人去阅读还是有一些门槛。因此,我想要来扮演一名“中译中”的翻译角色,在原文章的基础上进一步聚焦和简化。希望能够让各位朋友,在了解Deepseek-R1诞生历程的同时,也可以与我一般,感受到它所带来的震撼。

朋友们,接下来,让我们一起感受,Deepseek-R1的“创造之美”。

(提前说明,在简化描述的同时,也会有严谨性上的妥协。)

阅读准备1:回顾AlphaGo 和 AlphaGo Zero

为了帮助朋友们待会儿更好地理解Deepseek-R1的诞生历程,我需要给各位回顾一下由谷歌 DeepMind 团队开发的围棋 AI——Alpha Go 和 Alpha Go Zero的诞生(待会儿你们看到一个名为“Deepseek-R1 Zero”的事物出现)。

  • AlphaGo:AlphaGo首先通过监督学习从大量人类职业棋谱中学习,模仿人类的下棋策略,然后在此基础上通过自我对弈进一步优化策略和价值函数,依赖人类经验来进行初始策略网络的训练。
  • AlphaGo Zero:与 AlphaGo 不同,AlphaGo Zero 的诞生是完全依赖自我对弈训练,无需人类棋谱。它从零开始,通过自我对弈,仅利用棋盘上的黑白棋子的摆放情况作为原始数据输入到神经网络中,神经网络权值完全随机初始化,然后使用深度强化学习进行自我博弈和提升。

简单来说,AlphaGo 是先学习人类的下棋经验,再通过自我对弈提升;而 AlphaGo Zero 则是完全靠自己摸索,从零开始通过自我对弈来学习下棋的策略和技巧。

谷歌 DeepMind 团队用二者进行了百盘对战,而最终的结果是Alpha Go Zero以100比0的优势碾压了AlphaGo,可谓实打实的“百战百胜”。

阅读准备2:Deepseek-R1 诞生历程图

下面这张图是文章中引用的关于如何理解推理模型的核心图表。它完美地呈现了 Deepseek-R1 的训练关键步骤,串联起它的整个诞生历程。在展开介绍前,我十分建议大家可以将这张图片单独打开,方便随时对照阅读。

核心的第一步:让模型领悟“思维链”

众所周知,Deepseek-R1表现优秀的核心原因,就是DS团队独立研发了“思维链”的能力将应用到R1当中。而“思维链”的起点,就是本章节的主角,Deepseek R1 Zero。

而Deepseek R1 Zero的诞生源头,就是强大的基础模型 DeepSeek V3。那么,DS团队是如何在V3的基础上,让 R1 Zero “产生”思维链的呢?这个过程极为简洁且巧妙,我们一起来看看。

DS团队为R1 Zero准备了大量具有明确对错的题目(如数学题、物理题、写代码),来作为它的训练内容。那这些题目如何使用呢?DS团队编写了一个固定的Prompt,以V3为基底模型来运作(可以理解为System Prompt)。

这段Prompt极其简单,DS团队会将各种训练问题替换到上面标红的 prompt让模型自己去回答。但要求模型在输出答案之前,需要先「在脑海中思考推理过程」(The assistant first thinks about the reasoning process in the mind)。输出的结果里面,要分别用think标记“推理过程”,用answer标记“答案”。

DS采用的是纯强化学习的方式来训练,即人类不对训练过程进行干预,而是模型通过训练过程中的问题与激励机制来学习。经过无数轮的“尝试-反馈-调整”循环,模型就探索出最佳的方式。就好比一名学生在做各种练习题,通过不断调整自己的解题思路和方法,并根据每次练习的结果来进行自我修正和改进,最终掌握解题的思路。

而DS团队事先设定的激励规则,主要是以下两条。

  • 准确度激励:判断答案是否正确。例如,针对1+1等于几的问题,如果模型回答2,则加 1 分;如果答案错误,则不加分。
  • 格式激励:模型必须按照要求的格式作答,即需要尝试写出推理过程。例如,若问题是「1+1 等于几?」,模型直接回答「2」将得 0 分。但如果它在 think 标签中写出推理过程,则会获得加分。

补充介绍下,DS团队在这个强化学习中选择了GRPO策略。这里我们不展开讲述,大家只要知道它可以很大程度上节省算力资源,从而提升了训练效率就可以了。

简而言之,DS团队只为R1 Zero 准备了三件东西:一个基础的训练模板,一个简单的激励模型,还有一个 GRPO策略。

这三样事物准备好了,然后就是——

“做题,做题,还是TMD做题!做有标准答案的题,给老子反复刷,然后自己去找最佳方式。”

需要注意的是,DS团队并没有对如何构建思维链作干预。但是,他们发现模型学着学着,自己把答案越吐越长了。要知道在激励模型里并没有针对思考长度这件事情激励过,只判断了对错和有没有推理过程。但是模型自己发现,一旦思考越长,越能答对。也就是说,模型在没有任何思维链长度激励的情况下,通过增加思考时间,自主学会了如何解决需要推理的任务。这个发现十分惊人,因为在此之前,业界的其他团队都没有想到通过这么简单的手段就能解决思维链训练的问题。

巧妙的第二步:DS团队说,模型要可用,于是就有了R1

R1 Zero经过上述训练过程,已经领悟了“思维链”。但如果要对外可用,它还有两个问题要解决:

1)推理过程的可读性差,包括出现多种语言混杂、格式混乱等情况;

2)常识性问题欠缺,由于训练“思维链”使用的都是数学、物理、写代码这类内容,因此R1 Zero是“偏科”的,理科强文科弱。

如果要对外可用,那就需要解决上述两个问题,继续进化。

DS团队首先用 R1 Zero 生成右侧的高质量 SFT 数据(可用于训练模型的标注数据)。然后,他们用它去对V3 模型进行了一次微调,从而提升了V3的能力。这是一个非常精彩的“左右互博”,V3 基础版促使了 R1 Zero的诞生,而 R1 Zero强大的推理能力又反向去微调提升 V3。

提升 V3 后,DS团队开始来着手解决推理过程的可读性。他们再一次做了一轮类似 R1 Zero 的强化学习,但这次有一点不同,除了激励准确度和格式,他们加入了一个新的激励项——语言的一致性。也就是说,除了要确保答案的准确度和格式,还要检查推理过程是否出现了语言混杂。如果是中英文混杂就打 0 分;如果全程用中文或英文,就加分。

经过这一轮训练,DS团队就得到一个不仅具备了强大的推理能力,而且语言没有混杂的R1 Zero。他们就让这个新版本R1 Zero再生成了一轮数据,配合人工筛选和规则匹配等方式,剔除了一些冗余、可读性差部分,就得到了一份经过筛选和优化的高质量“思维链”数据。

思维链的推理可读性解决后,就剩下最后一个问题——常识性内容的欠缺。这个点解决起来很直接,就是用经过强化的 V3 模型,输出一系列的通用知识数据。

经过上述一系列工作,DS团队有了一份高质量的“思维链”数据,一份由V3输出的通用知识数据。这两份数据合并后,就可以开始最后一次强化学习训练。这个过程就与通常训练一个模型的方式无异,过程中也会加入人类对于模型输出格式、内容等的偏好。经过这一轮又一轮的“左右互搏”,最后得到的模型,便是我们现在使用的Deepseek-R1。

额外的第三步:微调其他模型的验证

到这里为止,Deepseek-R1在DS团队巧妙的“左右互博”中诞生,基本工作便已完成了,但DS团队还做了一些额外的工作。他们将上面训练R1的数据,去微调其他家的模型。其目的就是想验证一下,既使其他模型没有经过上述“思维链”的训练过程,但它们能否通过 DeepSeek-R1 的高质量推理数据,来提升其推理能力呢?(注:这个过程称为“蒸馏”,但这里我们先不展开,我会另外安排其他的文章进行介绍。)

DS团队选择了同样开源的Qwen和Llama模型来尝试验证,结果就如大家在下表中所看到的那样,经过微调的Qwen-32B和Llama-70B模型获得了明显的提升,在多项能力上实现了对标 OpenAI o1-mini 的效果。通过 DeepSeek-R1 的高质量推理数据来提升其他模型的推理能力这条路,也被验证是可行的了。

最后的问题:其他模型可以诞生它们自己的R1吗?

经过上面一系列的介绍,我们重温了DS团队如何从Deepseek V3开始,到训练出具备思维链的R1 Zero,再经过一系列的调整训练得到一份包含高质量“思维链”和通用知识的数据,并最终用它来训练出了表现卓越的Deepseek-R1的全过程。

那么,最后的问题是,其他的模型厂商,是否也可以直接用DS团队的R1 Zero训练方法来训练它们自己的模型呢?DS团队预判了业界的预判,并且做了实验验证。他们选择了Qwen-32B 作为基础模型,采用了与 R1 Zero 相同的纯强化学习训练方法,结果发现并没有明显提升。

这里的关键点是——V3模型。回顾整体Deepseek-R1的诞生过程,我们会发现,一切起点都是 DeepSeek V3模型,是V3自身足够强大,才能够作为R1 Zero的起始模型,让它更多的机会去尝试不同的思路,逐步摸索出“思维链”出来。

而且,当我们望向更远的历史,DS团队在2024年2月发布了DeepSeekMath,在解决数学问题时引入了 GRPO 方法;在 5 月,他们发布了 DeepSeek V2,引入了 DeepSeekMoE、MLA。终于,以此为基础,引入了 FP8 和 MTP 这样的训练与推理方法,DS团队构建出了强大的 Deepseek-V3 模型。

罗马不是一天建成的,Deepseek-R1也不是“灵光一闪”就做出来的成果。正如该文章所言,“DeepSeek 是一个认真在做 AGI 和模型研究的公司,它们很多投入非常长期,很多贡献也并不局限于 R1。”

也许有人会想,Deepseek是不是终结了国内其他AI产品的发展之路?我认为并没有,相反地,我认为Deepseek所做的工作,是给整个业界开拓了一片新的空间,一片让更多人可以投身其中探索更多可能性的广阔空间。这一切正如Deepseek的Slogan所言——“探索未至之境”。

附录:关于Deepseek-R1训练成本的辟谣

目前在外网,有流传Deepseek-R1的训练成本大概是557万美元,我在之前的视频和文章中也援引这一信息。但后续经过上面所说的腾讯科技文章的介绍,以及其他信息源的求证,这是一个有失偏颇的信息。

557万美元的来源,是DS团队给出的Deepseek-V3 的单次训练成本。这个估算,没有包括之前的研究,消融实验,架构探索,算法探索和数据准备等。当然,尽管没有低到557万美元的成本,但DS团队的确探索出了一条对模型训练方式、架构等进行了多项优化改进的道路,从而大幅提升了训练效率。

作者:产品经理崇生,公众号:崇生的黑板报

本文由 @产品经理崇生 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自 unsplash,基于CC0协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!