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