DeepSeek_R1论文阅读笔记
我的问题
1.没有监督微调,DeepSeek-R1-Zero如何知道推理方向的正确性?仅靠强化学习,它是如何探索出有效推理路径的?其依赖的强化学习环境是怎样构建的?
2.DeepSeek-R1-Zero可读性差和语言混合的问题,在实际应用场景中会否严重影响实用性?这些问题产生的根源是强化学习算法本身,还是训练数据的特质?
3.DeepSeek-R1的多阶段训练具体如何操作?每个阶段之间怎样衔接,分别对提升模型性能有何作用?
4.DeepSeek-R1冷启动数据是如何收集和处理的?怎样融入模型训练才能最大程度提升推理性能和可读性?
5.DeepSeek-R1与OpenAI-o1-1217在实现方式和性能表现上有哪些异同?DeepSeek-R1的优势和独特之处在哪,还有哪些地方需优化?
6.DeepSeek-R1相关模型开源过程中,会不会遇到知识产权或技术保护方面的问题?爱好者如何更好地利用这些开源模型探索应用和研究方向?
学习记录
1.DeepSeek-R1-Zero如何知道推理方向的正确性?仅靠强化学习,它是如何探索出有效推理路径的?其依赖的强化学习环境是怎样构建的?
在理解没有监督微调的情况下,DeepSeek-R1-Zero如何运作前,我们先简单了解下什么是监督微调。监督微调就像是老师给学生批改作业,直接告诉学生答案对不对,哪里需要改正。而DeepSeek-R1-Zero却不走寻常路,它不依赖这个“老师”,那它是怎么知道自己做得对不对,找到正确推理方向的呢?
DeepSeek-R1-Zero主要靠强化学习来实现这一点。强化学习就好比你在玩游戏,做得好就得分,做得不好就扣分,通过不断尝试,找到得分最高的玩法。在这个模型里,它有一套自己的“奖励机制”。比如说,有“准确性奖励”,如果模型回答数学问题答对了,或者在类似有明确答案的问题上给出正确结果,就会得到奖励。还有“格式奖励”,要是模型按照规定,把推理过程写在特定的标签里,也能获得奖励。就像游戏里完成特定任务就能加分一样,这些奖励就是模型判断自己推理方向是否正确的关键。只要模型的回答能得到更多奖励,就说明它的推理方向大概率是对的。
那它仅靠强化学习,是怎么探索出有效推理路径的呢?这就好比一个人在迷宫里,没有地图,只能不断尝试不同的路。模型在训练的时候,会不断地给出各种推理和答案。刚开始,可能大多都是错的,但随着一次次尝试,那些能得到奖励的推理方式就会被“记住”,并且不断被优化。比如在解数学题时,模型一开始可能用各种奇怪的方法,但当某种方法得出了正确答案,获得了准确性奖励,模型就会更倾向于使用这种方法,还会在此基础上进行改进,慢慢地就探索出了更有效的推理路径。
最后,它依赖的强化学习环境是怎么构建的呢?想象一下,这个环境就像是一个虚拟的“训练场”。在这个“训练场”里,有各种各样的推理问题,就像不同的关卡。模型要在这个环境里不断地“闯关”,也就是回答问题。环境会根据模型的回答,按照前面说的奖励机制给出奖励或者惩罚。而且,为了让模型的训练更高效,研究人员采用了一种叫Group Relative Policy Optimization(GRPO)的算法。这个算法有点像小组比赛,模型会和其他“小伙伴”(从旧策略中采样得到的输出)比较,通过对比来判断自己的表现,进而优化自己的策略。这样,通过不断地在这个充满问题和奖励机制的环境里训练,模型就逐渐变得强大起来,能够探索出有效的推理路径,在各种推理任务中表现出色。
2.DeepSeek-R1-Zero可读性差和语言混合的问题,在实际应用场景中会否严重影响实用性?这些问题产生的根源是强化学习算法本身,还是训练数据的特质?
在研究大语言模型时,DeepSeek-R1-Zero虽然展现出强大的推理能力,却存在可读性差和语言混合的问题。这两个问题在实际应用场景中可能会产生不同程度的影响,并且其根源也值得深入探究。
先来说说在实际应用场景中,这些问题是否会严重影响实用性。就可读性差而言,在像教育辅导这样的场景中,模型需要给学生清晰地讲解解题思路。如果它的推理过程混乱、难以理解,学生就没办法从中学习,这会极大地削弱模型在教育领域的实用价值。在信息获取场景中,比如人们通过模型快速了解某个知识,如果输出内容晦涩难懂,用户很难从中提取有效信息,也就无法满足用户需求。而语言混合问题同样棘手,在跨国商务交流场景中,不同语言的清晰表达至关重要。若模型回复的内容一会儿是中文,一会儿是英文,这会给交流带来极大障碍,严重影响沟通效率,导致模型在这类场景中几乎无法使用。所以,从这些实际场景来看,可读性差和语言混合的问题确实会严重影响DeepSeek-R1-Zero的实用性。
再来探究这些问题产生的根源,究竟是强化学习算法本身,还是训练数据的特质导致的。从强化学习算法角度分析,它的训练目标主要聚焦于提升推理能力和获取奖励,并没有将可读性和语言一致性作为重点考量因素。在训练过程中,只要模型的回答能得到高奖励,即使表达方式不清晰或者语言混杂,算法也不会对此进行修正。例如,在以准确性奖励为主导的训练中,模型可能更关注得出正确答案,而忽视了答案呈现的方式。这就好比一个学生只追求考试得分,却不注重书写工整和表达清晰。所以,强化学习算法的这种特性在一定程度上导致了这些问题的出现。
从训练数据特质方面来看,训练数据的多样性和质量也可能是“罪魁祸首”。如果训练数据来源广泛,包含多种语言风格和表述方式,且缺乏统一的规范和整理,模型在学习过程中就容易出现语言混合的情况。打个比方,就像一个人从小接触各种方言和外语,却没有接受过标准语言的系统学习,说话时就可能不自觉地混杂多种语言。此外,如果训练数据中缺乏对清晰表达和规范语言的示例引导,模型也很难学会如何生成可读性强的内容。
DeepSeek-R1-Zero的可读性差和语言混合问题在实际应用中影响很大,而这些问题的产生,强化学习算法本身和训练数据的特质都“脱不了干系”。后续要想提升模型的实用性,就需要从这两方面入手进行改进。
3.DeepSeek-R1的多阶段训练具体如何操作?每个阶段之间怎样衔接,分别对提升模型性能有何作用?
DeepSeek-R1的多阶段训练就像是建造一座高楼,每个阶段都很重要,环环相扣,共同让模型变得更强大。它一共包含四个主要阶段:冷启动、推理导向的强化学习、拒绝采样和监督微调、所有场景的强化学习。
1.冷启动阶段:DeepSeek-R1不像DeepSeek-R1-Zero那样直接从基础模型开始强化学习训练,而是先收集一些精心挑选的数据,这些数据就像是给模型的“预习资料”。研究人员用了很多方法来收集这些数据,比如找一些带有详细推理过程的例子,让其他模型生成带反思和验证的答案,或者把DeepSeek-R1-Zero输出的内容整理得更易读,再让人工检查修改。把这些数据收集起来后,就用它们来微调DeepSeek-V3-Base模型。这一步的作用就像是给模型打基础,让它一开始就有个好的“起跑点”,避免在训练初期像无头苍蝇一样乱撞,还能让模型生成的内容可读性更好,为后面的训练做准备。
2.推理导向的强化学习阶段:在冷启动微调之后,模型就进入了这个强化学习阶段。这个阶段就像是运动员进行专项训练,专门提升模型在推理方面的能力,比如在数学、编程、科学和逻辑推理这些需要深度思考的任务上。训练的时候,研究人员发现模型在生成推理过程时,容易出现语言混合的情况,特别是当训练的提示信息包含多种语言时。为了解决这个问题,他们增加了一个语言一致性奖励,简单来说,就是鼓励模型多使用目标语言。虽然这个奖励会让模型在某些性能上稍微下降一点,但能让模型生成的内容更符合人们的阅读习惯。最后,把推理任务的准确性和语言一致性奖励加起来,作为模型训练的最终奖励。一直训练,直到模型在推理任务上达到一个比较稳定的状态。这一步让模型在推理能力上有了很大的提升,能够更好地解决复杂的推理问题。
3.拒绝采样和监督微调阶段:当推理导向的强化学习训练得差不多,模型快要“毕业”的时候,就进入到这个阶段。这个阶段就像是给模型进行全面复习,让它变得更“全能”。首先是收集推理数据,研究人员会从之前强化学习训练得到的模型结果里,通过拒绝采样的方法挑选出合适的推理提示和轨迹。这里会用到一些新的评估方法,除了之前的规则奖励,还会用一种生成式奖励模型,让DeepSeek-V3来判断模型的预测和正确答案之间的差距。同时,把那些混乱、不好读的内容,像语言混合、太长的段落和代码块都过滤掉。最后收集到了大概600k和推理相关的训练样本。对于非推理数据,比如写作、事实问答、自我认知和翻译这些方面,就直接用DeepSeek-V3的相关数据和方法,一共收集了大约200k样本。把这些推理和非推理数据放在一起,对DeepSeek-V3-Base模型进行两个轮次的微调。这一步让模型不仅在推理能力上更扎实,还提升了它在其他各种任务上的能力,变得更加全面。
4.所有场景的强化学习阶段:到了这个阶段,模型就像是要成为一个“贴心小助手”,不仅要会推理,还要更符合人们的使用习惯。研究人员通过结合不同的奖励信号和各种各样的提示信息来训练模型。对于推理数据,还是用之前DeepSeek-R1-Zero里的规则奖励方法,引导模型在数学、编程和逻辑推理这些领域更好地学习。对于一般的数据,就用奖励模型来了解人们在复杂场景下的喜好。在评估模型的时候,对于“有帮助性”,主要看模型给出的最终总结,是不是对用户有用、相关;对于“无害性”,会检查模型的整个回答,包括推理过程和总结,看看有没有风险、偏见或者不好的内容。通过这样的训练,模型在推理能力保持的同时,变得更有帮助、更安全可靠。
DeepSeek-R1的多阶段训练通过这四个阶段,每个阶段各司其职又紧密相连。冷启动为模型打好基础,提升可读性;推理导向强化学习专注提升推理能力;拒绝采样和监督微调让模型变得更全面;所有场景的强化学习则让模型更符合人们的使用需求,最终让模型在各种任务上都有出色的表现。
4.DeepSeek-R1冷启动数据是如何收集和处理的?怎样融入模型训练才能最大程度提升推理性能和可读性?
为了让DeepSeek-R1模型在训练时能有个好的开端,研究人员收集和处理了冷启动数据。收集这些数据的方式有不少,每种都有独特的思路。
1.收集方式
- 利用少样本提示:研究人员找一些包含长思维链(CoT)的例子,用这些例子给模型做提示。就好比给学生一些解题步骤详细的例题,让学生参考着去思考类似的题目。模型根据这些例子来学习如何进行推理和组织答案,这样能引导模型朝着正确的方向去思考问题,从而生成更合理的回答。
- 直接提示模型生成:直接让其他模型生成详细的、带有反思和验证的答案。这就像是请一位“小老师”来做题,并且把思考过程和检查过程都写清楚。这些生成的答案能为DeepSeek-R1提供丰富的推理思路和表达方式,帮助它学习如何进行深入思考和自我检查,让自己的回答更完善。
- 整理DeepSeek-R1-Zero输出:把DeepSeek-R1-Zero输出的内容收集起来,这些内容虽然存在可读性差等问题,但其中的推理思路可能有价值。然后对这些内容进行整理,把它们变成更易读的格式,就像把杂乱的笔记重新整理清楚。这样处理后,就能让DeepSeek-R1更好地借鉴DeepSeek-R1-Zero的经验,避免走弯路。
- 人工标注处理:研究人员还会让人工对收集到的数据进行标注和处理。人工会检查数据是否符合要求,去除那些不友好、难以理解的内容。这一步就像是老师批改作业,把不好的地方指出来并去掉,留下对模型训练有帮助的内容,保证数据的质量。通过这些方法,研究人员收集到了数千条冷启动数据。
2.数据处理与融入训练
- 格式设计:在处理冷启动数据时,研究人员设计了一种特定的格式:|special_token|<reasoning_process>|special_token|
。这个格式就像是给数据制定了一个标准模板,让模型知道该怎么 “阅读” 和学习这些数据。其中<reasoning_process > 是针对问题的推理过程,也就是思维链; 是对推理结果的总结。这样清晰的格式有助于模型理解数据的结构,更好地学习其中的推理思路和结果。 - 微调模型:收集和处理好数据后,研究人员用这些数据对 DeepSeek-V3-Base 模型进行微调。这就像是给模型 “开小灶”,让它针对这些精心准备的数据进行学习。在微调过程中,模型会根据冷启动数据中的推理过程和总结,调整自己的参数,学习如何生成更有逻辑、更易读的推理过程和总结。比如,模型会学习到在推理时如何按照一定的步骤进行思考,以及如何简洁明了地总结结果,从而提升自己的推理性能和输出内容的可读性。
- 后续训练衔接:经过冷启动微调后的模型,会进入后续的推理导向强化学习阶段。在这个阶段,冷启动数据学到的知识就像是种子,在强化学习的 “土壤” 里继续生长。模型会在之前的基础上,进一步优化自己的推理能力。同时,在后续训练中,还会根据新出现的问题和需求,不断调整对冷启动数据的运用方式,让冷启动数据的作用得到充分发挥,持续提升模型的推理性能和可读性,以适应各种不同的任务和场景。
5.DeepSeek-R1 与 OpenAI-o1-1217 在实现方式和性能表现上有哪些异同?DeepSeek-R1 的优势和独特之处在哪,还有哪些地方需优化?
在大语言模型的领域中,DeepSeek-R1和OpenAI-o1-1217都是备受瞩目的存在。它们在实现方式和性能表现上既有相似点,也有不同之处,而且DeepSeek-R1自身也有着独特的优势和需要优化的地方。
1.实现方式的异同
- 相同点:两者都致力于提升模型在复杂任务中的推理能力,都在努力探索如何让模型更好地处理各种难题。
- 不同点:DeepSeek-R1在实现过程中,采用了多阶段训练的方式。首先通过收集冷启动数据对基础模型进行微调,为模型提供一个相对稳定的起始点。然后进行推理导向的强化学习,提升模型在推理任务上的能力,并且在这个过程中还引入了语言一致性奖励来解决语言混合的问题。之后通过拒绝采样和监督微调,进一步优化模型在多种任务上的表现,最后进行所有场景的强化学习,使模型更加符合人类的使用需求。而OpenAI-o1-1217主要是通过增加推理时思维链的长度来提升推理能力,在推理过程中更侧重于利用这种逐步推理的方式来解决问题,其具体的训练方式和DeepSeek-R1有很大不同 。
2.性能表现的异同
- 相同点:在一些推理任务上,DeepSeek-R1和OpenAI-o1-1217都展现出了很强的能力。例如在MATH-500任务中,DeepSeek-R1的Pass@1成绩达到了97.3% ,OpenAI-o1-1217也有与之相当的表现,这说明它们在处理数学推理这类复杂任务时,都具备较高的准确性。
- 不同点:在AIME 2024任务中,DeepSeek-R1的Pass@1成绩为79.8% ,略微超过OpenAI-o1-1217,显示出它在这个特定数学推理任务上的优势。而在一些知识类的基准测试中,如MMLU、MMLU-Pro和GPQA Diamond,DeepSeek-R1虽然也取得了不错的成绩,但相比OpenAI-o1-1217还是稍低一些,不过它仍然超越了其他很多模型。在编码相关任务上,DeepSeek-R1在Codeforces上的Elo评分为2029,超过了96.3%的人类参与者,展现出在代码竞赛任务中的专业水平,不过在工程相关的编码任务上,OpenAI-o1-1217在Aider上的表现优于DeepSeek-R1,但在SWE Verified任务上两者表现相当。
3.DeepSeek-R1的优势和独特之处
- 多阶段训练优势:DeepSeek-R1的多阶段训练使其能够综合多种训练方式的优点。冷启动数据的使用让模型在训练初期就有较好的基础,减少了训练的不稳定性,同时提升了模型输出的可读性。强化学习阶段可以让模型自主探索更好的推理策略,并且通过引入语言一致性奖励等方式,在一定程度上解决了模型训练中出现的语言混合问题,使模型更加实用。
- 开源贡献:DeepSeek-R1将模型进行开源,还开源了基于Qwen和Llama的六个不同规模的密集模型,这为研究社区提供了更多的研究资源,方便其他研究者基于这些模型进行进一步的探索和改进,推动整个大语言模型领域的发展。
4.DeepSeek-R1需要优化的地方
- 通用能力提升:在一些任务上,如函数调用、多轮对话、复杂角色扮演和JSON输出等方面,DeepSeek-R1的能力还不如DeepSeek-V3,需要进一步探索如何利用长思维链来提升在这些领域的表现,增强模型的通用性。
- 语言混合问题:虽然在一定程度上进行了优化,但当处理非中文和英文的查询时,DeepSeek-R1仍可能出现语言混合的情况,在推理和回复中可能会不恰当使用英文,需要在后续研究中继续优化,以更好地处理多种语言的任务。
- 提示工程敏感性:DeepSeek-R1对提示非常敏感,少样本提示往往会降低它的性能。这意味着用户在使用时需要特别注意提示的方式,直接描述问题并采用零样本设置才能得到较好的结果,后续需要降低模型对提示的敏感性,提高模型在不同提示下的稳定性。
- 软件工程任务优化:由于在软件工程任务中进行大规模强化学习时,评估时间过长影响了训练效率,导致DeepSeek-R1在软件工程基准测试上相比DeepSeek-V3没有太大提升。未来需要通过如对软件工程数据进行拒绝采样或在强化学习过程中加入异步评估等方法来提高效率,进而提升在软件工程任务上的表现。