1. 背景
首先给出DeepSeek-V3、DeepSeek-R1-Zero、DeepSeek-R1的关系图【1】。
虽然DeepSeek-R1-Zero推理能力很强,但它也面临一些问题。例如,DeepSeek-R1-Zero存在可读性差和语言混杂等问题。为了使推理过程更具可读性,进而推出了DeepSeek-R1,利用强化学习和人类友好的冷启动数据的方法。
2. DeepSeek-R1:使用冷启动的强化学习
受DeepSeek-R1-Zero启发,自然而然提出两个问题:
1) 通过引入少量高质量数据作为冷启动,推理性能是否能进一步提高或收敛加速?
2) 如何训练一个用户友好的模型,使其不仅生成清晰连贯的思维链(CoT),还展示出强大的通用能力?
为了解决这些问题,设计一个训练DeepSeek-R1的流程,该流程包括四个阶段,如下所述。
2.1 冷启动
与DeepSeek-R1-Zero不同,为了防止RL训练的早期阶段由于基础模型的不稳定而导致冷启动问题,因此需要为DeepSeek-R1构建并收集少量长的思维链数据,作为初始RL演员对模型进行微调。为了收集这些数据,探索了几种方法:使用少量提示并以长的思维链作为示例,直接提示模型生成详细的答案并进行反思和验证,收集DeepSeek-R1-Zero的输出并将其转化为可读格式,然后通过人工注释者进行后处理以优化结果。
在这项工作中,DeepSeek收集了大量的冷启动数据,用于微调DeepSeek-V3-Base,作为RL的起始点。与DeepSeek-R1-Zero相比,冷启动数据的优势包括:
- 可读性:DeepSeek-R1-Zero的一个关键限制是其内容通常不适合阅读。回答可能会混杂多种语言,或者缺乏用于突出答案的markdown格式。相比之下,在为DeepSeek-R1创建冷启动数据时,设计一种可读的模式,在每个回答的末尾包括总结,并过滤掉不适合阅读的回答。定义的输出格式是 |special_token|<reasoning_process>|special_token|<summary>,其中reasoning_process是该查询的CoT,而summary用于总结推理结果。
- 潜力:通过精心设计冷启动数据的模式并结合人类先验,DeepSeek-R1在性能上优于DeepSeek-R1-Zero。迭代训练也许是推理模型更好的发展模式。
2.2 面向推理的强化学习
在基于冷启动数据对DeepSeek-V3-Base进行微调后,应用与DeepSeek-R1-Zero中相同的大规模强化学习训练过程。此阶段的重点是增强模型的推理能力,尤其是在编码、数学、科学和逻辑推理等推理密集型任务中,这些任务涉及具有明确解决方案的定义良好的问题,这一点其实在强化学习中很重要。在训练过程中,CoT常常表现出语言混合的现象,特别是当RL提示涉及多种语言时。为了解决语言混合的问题,在RL训练过程中引入了语言一致性奖励,该奖励是通过计算CoT中目标语言单词的比例来计算的。虽然消融实验表明,这种对齐可能会导致模型性能轻微下降,但该奖励与人类偏好一致,使其更加易读。最后,将推理任务的准确性和语言一致性的奖励相结合,直接相加形成最终奖励。然后,对微调后的模型应用RL训练,直到其在推理任务上达到收敛。
2.3 拒绝采样和监督微调
当面向推理的强化学习收敛时,利用得到的检查点来收集SFT(监督微调)数据,以进行下一轮训练。与最初的冷启动数据主要专注于推理不同,这一阶段包含了来自其他领域的数据,以增强模型在写作、角色扮演和其他通用任务中的能力。具体来说,生成数据并对模型进行微调,如下所述。
- 推理数据:策划推理提示并通过拒绝采样从上面RL训练的检查点中生成推理轨迹。在之前的阶段,仅包含了可以通过基于规则的奖励评估的数据。在这个阶段,通过引入额外的数据扩展了数据集,其中一些数据使用生成奖励模型,通过将真实标签和模型预测输入DeepSeek-V3进行判断。此外,由于模型输出有时较为混乱且难以阅读,需要过滤掉包含混杂语言、长段落和代码块的思维链。对于每个提示,采样多个回应,并仅保留正确的回应。最终,收集约60万条与推理相关的训练样本。
- 非推理数据:对于非推理数据,例如写作、事实问答、自我认知和翻译,采用DeepSeek-V3的pipeline,并重复使用DeepSeek-V3的部分SFT数据集。对于某些非推理任务,调用DeepSeek-V3生成潜在的思维链后再进行回答提示。对于简单的查询,例如“hello”,则不会提供思维链。最终收集大约20万条与推理无关的训练样本。
使用上述得到的数据集(约80万条样本)对DeepSeek-V3-Base进行两轮微调。
2.4 面向所有场景的强化学习
为了进一步使模型与人类偏好对齐,需要实施第二阶段的强化学习,提高模型的有用性和无害性,同时进一步完善其推理能力。具体来说,使用奖励信号和多样化提示分布训练模型。对于推理数据,遵循DeepSeek-R1-Zero中提到的方法,利用基于规则的奖励引导学习过程,涉及数学、代码和逻辑推理领域。对于一般数据,则采用奖励模型来捕捉复杂和细微场景中的人类偏好。最后在DeepSeek-V3 pipeline的基础上,采用类似的偏好对和训练提示分布。对于有用性则专注于最终总结,确保评估重点放在响应对用户的实用性和相关性上,同时最小化对推理过程的干扰。对于无害性,评估模型的整个响应,包括推理过程和总结,以识别并减轻生成过程中可能出现的风险、偏见或有害内容。最终,通过整合奖励信号和多样化的数据分布,能够训练出一个在推理任务中表现较好,同时优先考虑有用性和无害性的模型。
3. 参考材料
【1】The Layman’s Introduction to DeepSeek-R1 Training
【2】DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning