更改

跳到导航 跳到搜索
添加1,398字节 、 2025年1月27日 (一) 22:37
第21行: 第21行:  
尽管 DeepSeek-R1-Zero 显示出了强大的推理能力,但其输出不符合人类的阅读习惯,且会混杂中英文甚至代码和数学符号,所以人类的阅读体验并不好。而使模型的输出符合人类习惯,就很适合使用微调技术。于是deepseek团队一定程度上又把SFT技术请了回来,在最初先使用少量标注数据对基模进行SFT,作为'''冷启动''',然后再进行 DeepSeek-R1-Zero 所经历的'''大规模强化学习'''。这次冷启动阶段的SFT和以往的“先SFT后RL”训练过程有显著区别,最大的区别在于数量上。比如DeepseekMath在RL前的SFT阶段使用了77.6万个样本,而这次的冷启动阶段只使用了几千个。也正因为冷启动阶段用于微调的样本量相对较少,所以工程人员可以精心挑选这些样本,因此它们的质量也比以往SFT阶段用到的数据要高得多。事先使用高质量数据微调后,模型在开始就会使用人类偏好的语言和思维风格进行思考,吐出对人类阅读体验友好的结果。且由于这些微调数据一般都有高质量的思维链(Chain of Thoughts),在后续的强化学习之始可以跳过不断随机摸索的阶段,快速发展出使用思维链进行复杂推理的能力。因此,少批量高质量数据的冷启动不仅能使模型输出符合人类阅读偏好,还能使模型更快收敛,获得更强的推理能力。不过即便经过了冷启动,大模型在第二阶段的在大规模强化学习过程中海水显示出语言混杂的现象。为了解决这一问题,Deepseek团队还在训练过程中加入了“语言一致性奖励”,即奖励模型尽可能使用一致的语言来思考和回答。
 
尽管 DeepSeek-R1-Zero 显示出了强大的推理能力,但其输出不符合人类的阅读习惯,且会混杂中英文甚至代码和数学符号,所以人类的阅读体验并不好。而使模型的输出符合人类习惯,就很适合使用微调技术。于是deepseek团队一定程度上又把SFT技术请了回来,在最初先使用少量标注数据对基模进行SFT,作为'''冷启动''',然后再进行 DeepSeek-R1-Zero 所经历的'''大规模强化学习'''。这次冷启动阶段的SFT和以往的“先SFT后RL”训练过程有显著区别,最大的区别在于数量上。比如DeepseekMath在RL前的SFT阶段使用了77.6万个样本,而这次的冷启动阶段只使用了几千个。也正因为冷启动阶段用于微调的样本量相对较少,所以工程人员可以精心挑选这些样本,因此它们的质量也比以往SFT阶段用到的数据要高得多。事先使用高质量数据微调后,模型在开始就会使用人类偏好的语言和思维风格进行思考,吐出对人类阅读体验友好的结果。且由于这些微调数据一般都有高质量的思维链(Chain of Thoughts),在后续的强化学习之始可以跳过不断随机摸索的阶段,快速发展出使用思维链进行复杂推理的能力。因此,少批量高质量数据的冷启动不仅能使模型输出符合人类阅读偏好,还能使模型更快收敛,获得更强的推理能力。不过即便经过了冷启动,大模型在第二阶段的在大规模强化学习过程中海水显示出语言混杂的现象。为了解决这一问题,Deepseek团队还在训练过程中加入了“语言一致性奖励”,即奖励模型尽可能使用一致的语言来思考和回答。
   −
经过第一阶段得冷启动和第二阶段的大规模强化学习后,第三和第四阶段的训练分别是提高模型各方面能力的'''大规模微调'''和增强模型有用性及无害性的'''进一步强化学习'''。第三阶段和第一阶段虽然都是微调,但在目的和规模上都不一样。第一阶段的冷启动微调是为了使模型的输出更具可读性和激发其后续的思维推理潜力,而第三阶段的微调是为了提升模型的其他通用能力,比如写作,问答、翻译、角色扮演、自我反思等。为此,相比于冷启动所需的几千个数据样本,第三阶段的微调使用的80多万样本数据。这里面包括各种来源的数据,比如说训练Deepseek-v3时用到的SFT数据集。有趣的是,这80多万样本中60多万是从之前R1的训练过程中所得的checkpoints中得来。团队人员使用prompt去让checkpoint模型做出回答,然后使用一个训练好的奖励模型来给判断哪些回答质量高可以保留,哪些质量差要丢弃,如此获得一个由这些checkpoint生成的,但质量又高于这些checkpoint平均水平的数据样本,从而继续训练。这个过程也成为拒绝采样(rejection sampling)。
+
经过第一阶段得冷启动和第二阶段的大规模强化学习后,第三和第四阶段的训练分别是提高模型各方面能力的'''大规模微调'''和增强模型有用性及无害性的'''进一步强化学习'''。第三阶段和第一阶段虽然都是微调,但在目的和规模上都不一样。第一阶段的冷启动微调是为了使模型的输出更具可读性和激发其后续的思维推理潜力,而第三阶段的微调是为了提升模型的其他通用能力,比如写作,问答、翻译、角色扮演、自我反思等。为此,相比于冷启动所需的几千个数据样本,第三阶段的微调使用的80多万样本数据。这里面包括各种来源的数据,比如说训练Deepseek-v3时用到的SFT数据集。有趣的是,这80多万样本中60多万是从之前R1的训练过程中所得的checkpoints中得来。团队人员使用prompt去让checkpoint模型做出回答,然后使用一个训练好的奖励模型来给判断哪些回答质量高可以保留,哪些质量差要被拒绝、丢弃掉,如此获得一个由这些checkpoint生成的,但质量又高于这些checkpoint平均水平的数据集,从而继续训练。这个过程也被称为拒绝采样(Rejection Sampling)。
 +
 
 +
使用者80多万数据样本对模型进一步微调后,模型不仅有了强大的思维推理能力,还有了各方面的能力。现在最后一步就是要进一步提高模型的推理能力以及有用性,并使其输出无害。这也是第四阶段的进一步强化学习要做的事情。对用于提升其推理能力的数据,可以遵循 DeepSeek-R1-Zero 的方法获得,而用于提升有用性和无害性的数据,就需要收集模型对于prompt的回答并人工分析,标注出有害部分的数据,使用这些标注好的数据去做强化学习。这也被称作从人类反馈中的强化学习(Reinforcement Learning from Human Feedback)。
 +
 
 +
总的来说,Deepseek-R1的训练分为四阶段,两个SFT阶段,两个RL阶段:
 +
- 第一阶段:冷启动SFT,培养正确(符合人类偏好)的语言习惯、激发模型的推理潜能
 +
- 第二阶段:大规模RL,使模型涌现出强推能力
 +
- 第三阶段:大规模SFT,提高模型其他方面的通用能力
 +
- 第四阶段:进一步RL,进一步提高推理能力,有用性,和减少其输出的有害内容
 +
 
 +
可见模型的主要推理能力涌现自第一和第二阶段,第三第四阶段更像都是后训练(post-training)。理论上还可以有第五阶段SFT、第六RL,第七阶段SFT、第八阶段RL,不断迭代提高模型的能力。
    
===蒸馏技术===
 
===蒸馏技术===
385

个编辑

导航菜单