DeepSeek核心关键技术 (冷启动,拒绝采样,蒸馏,多头潜注意力,MoE等) 解读

1 Cold Start

cold-start 阶段是为了优化强化学习 (RL) 训练的起始阶段,特别是在 DeepSeek-R1-Zero 模型中直接使用 RL 时遇到的稳定性问题。Cold-start 的具体步骤如下:

1.1 冷启动数据的收集

在 DeepSeek-R1 中,cold-start 数据是通过收集数千个长链式思维(CoT)数据来构建的。这些数据主要用于在应用强化学习之前,作为模型的初始训练数据进行微调(fine-tuning)。
冷启动数据的收集通过几种方式进行,包括:

  • 少量示例提示: 使用少量的 CoT 作为示例,帮助模型生成详细答案,并加入反思和验证过程。
  • 直接提示模型生成长思维过程: 提示模型生成详尽的答案,带有反思和验证步骤。
  • 收集 DeepSeek-R1-Zero 的输出:从 DeepSeek-R1-Zero 中收集的输出格式进行整理和优化,确保数据质量和可读性。
  • 人工后处理: 对模型生成的输出进行人工审核和修正,确保生成的长链思维是易于理解的。

1.2 数据格式设计

在 DeepSeek-R1 中,冷启动数据的格式经过特别设计,以确保可读性和一致性。每个生成的响应会按照以下格式进行安排:

  • |special_token|<reasoning_process>|special_token|
  • 其中,<reasoning_process> 部分是生成的思维过程(链式思维),而 部分则是对该思维过程的总结,帮助模型更好地展示解决问题的思路。

1.3 冷启动数据的优势

  • 可读性提升: DeepSeek-R1-Zero 的冷启动数据主要通过人工整理,确保了数据更具可读性,避免了原先 DeepSeek-R1-Zero 中存在的语言混杂和格式问题。
  • 稳定性和加速收敛: 使用冷启动数据帮助模型在 RL 训练的初期阶段更加稳定,从而加速了模型的收敛过程,避免了初期 RL 训练的不稳定性。

1.4 如何影响训练

  • DeepSeek-R1-Zero 的区别: 在 DeepSeek-R1-Zero 中,模型直接从基本模型开始使用 RL
    训练,可能会面临初期的稳定性问题,而 DeepSeek-R1 的 cold-start 数据帮助解决了这些问题,提供了更加稳定的训练基础。

  • 增强性能: 冷启动数据使得模型能够更早进入有效的推理训练阶段,从而在后续的 RL 训练中提升了推理能力和任务表现。

总结来说,cold-start 数据是为了优化模型在 RL 训练初期的表现,通过提供高质量且可读性强的数据来稳定模型训练过程,避免初期的不稳定性,同时加速收敛并提升最终的推理能力

2 rejection sampling

在 DeepSeek-R1 中,Rejection Sampling 技术被用来生成 Supervised Fine-Tuning (SFT) 数据,特别是在 强化学习(RL) 阶段后,模型已经训练并达到某种程度的推理能力时。这一过程是为了从已经训练的模型输出中筛选出高质量的训练数据,进一步提升模型在推理任务中的表现。

2.1 定义与目的

  • Rejection Sampling是一种用于生成训练数据的技术,其目标是从模型生成的多个输出中筛选出符合特定标准的高质量数据,避免使用不良或低质量的样本进行进一步训练。
  • 在 DeepSeek-R1 的上下文中,Rejection Sampling 被用来从 DeepSeek-R1-Zero(经过强化学习训练后的模型)生成的推理数据中筛选出符合规则的输出。此阶段的数据既包括推理过程(CoT)也包括最终答案(summary)。

2.2 流程

  • 生成多个候选输出

    • 在某个推理任务中,DeepSeek-R1 会生成多个可能的候选输出,每个候选输出包含推理过程和答案。
    • 对于每个问题,模型会输出多个候选答案,通常会生成 多个CoT 和 答案 对(例如,4到64个候选回答)
  • 评估输出质量

    • 每个候选输出会被评估以判断其是否符合预定的标准(例如正确性、可读性等)。这一步通过 rule-based rewards 来评估,如准确性奖励和格式奖励。
    • 在 Rejection Sampling 中,不符合标准的输出会被丢弃,而符合标准的输出将保留作为有效的训练样本。
  • 筛选过程

    • 通过使用基于规则的奖励系统(如准确性和格式化奖励),每个候选输出都会得到一个评分。符合高标准的输出将被接受,低质量的输出将被拒绝。
    • 例如,如果某个候选输出包含语言混合或推理过程不完整,则该输出会被丢弃。

2.3 与其他数据生成方式的区别

  • 与原始RL训练输出的区别: 在早期的RL训练阶段,模型的输出可能包含较多噪声或不符合预期的推理过程,这会影响模型的进一步训练和推理质量。Rejection
    Sampling 通过从已有的训练输出中筛选出合格的数据,有效减少了低质量数据对后续训练的干扰
  • 与普通SFT的区别: 传统的 SFT 训练通常依赖于人工标注的高质量数据,而 Rejection Sampling 则利用模型自身生成的数据,通过“拒绝”低质量样本,构建更加符合实际推理能力的数据集。这可以减少人工干预,并提高训练效率。

2.4 优化与性能提升

  • 提升推理质量: 通过这个筛选过程,DeepSeek-R1 可以在后续的 SFT 阶段使用更高质量的数据进行微调。这有助于模型进一步改善推理过程、减少错误、提升理解和总结能力。
  • 避免数据污染: 在RL阶段,模型可能会生成一些不合适的输出(例如格式混乱或逻辑错误),通过 rejection sampling 筛选掉这些不合格的输出,可以提高训练数据的质量。

2.5 应用

  • 推理相关数据: 生成用于推理任务的训练数据(如数学题、代码问题、科学推理等)。
  • 非推理数据: 此外,还可以为一些非推理任务(如写作、事实问答、自我认知等)应用类似的方法,保证生成的 SFT 数据具备高质量。

Rejection Sampling 在 DeepSeek-R1 中扮演了关键角色,它通过从已经训练过的模型生成的推理输出中筛选出高质量的训练数据,帮助模型在后续的 SFT 阶段进一步提升推理能力。这种方法有效地优化了数据质量,减少了不良样本的影响,从而提高了模型的整体表现。

3 rule-based rewards

在 DeepSeek-R1 中,基于规则的奖励系统 用于评估模型生成的推理样本的质量,帮助筛选出高质量的训练数据。这个系统并不依赖于复杂的神经网络模型来判断样本质量,而是通过预定义的规则来评估每个生成样本的各个方面,如准确性、格式等。下面是该系统的具体实现和技术细节:

3.1 规则定义与奖励机制

基于规则的奖励系统通过制定一套明确的规则来评估模型生成的样本,以下是一些主要的评估标准和规则:

  • 准确性奖励(Accuracy Reward)

    • 目的: 评估生成的回答是否是正确的。
    • 实现方式: 对于某些任务,如数学题或编程问题,模型的答案可以通过外部工具进行验证。比如,对于数学问题,可以通过预设的公式或者编译器验证答案是否正确;对于编程问题,可以通过自动化测试套件或编译器来检查代码是否正确
    • 规则: 如果模型的答案正确,给予奖励。如果答案错误,则不给予奖励或施加惩罚。例如,某些数学问题,答案是确定的,系统可以直接用正确答案对比生成的结果。
  • 格式奖励(Format Reward)

    • 目的: 确保生成的推理过程和答案符合预定格式。
    • 实现方式: 为了提高可读性和一致性,生成的推理过程应符合一定的结构要求。例如,DeepSeek-R1 在训练中要求推理过程必须包含 和 标签,用于分隔推理过程和最终的答案
    • 规则:如果生成的回答严格遵循预定的格式(如 CoT 被正确标记),则给予奖励。如果生成的回答缺少必要的标记,或者格式混乱,则不给予奖励,甚至可能被认为是低质量样本。
  • 语言一致性奖励(Language Consistency Reward)

    • 目的: 确保生成的样本在语言使用上保持一致性,避免语言混杂。
    • 实现方式: 在 DeepSeek-R1 训练过程中,如果一个推理过程或回答使用了多种语言(例如,推理过程是用英语进行的,而答案是用中文),系统会通过检查推理过程的语言一致性来评估样本
    • 规则:一致性,如果推理过程和答案使用相同语言,奖励模型。语言混杂,如果推理过程中出现多种语言混用,扣分或拒绝该样本。
  • 逻辑一致性奖励(Logical Consistency Reward)

    • 目的: 确保推理过程是合理且符合逻辑的。
    • 实现方式: 通过分析生成的推理过程中的逻辑结构来判断是否符合解决问题的标准步骤。
    • 规则:如果生成的推理步骤合理,符合问题的解决流程,奖励模型。 如果推理步骤跳跃性大,逻辑不连贯,给予惩罚。

3.2 奖惩机制

  • 对于符合规则的高质量样本,系统给予奖励,使模型倾向于生成符合预定标准的输出。
  • 对于不符合规则的低质量样本,系统会给予惩罚,这些样本不会用于训练,或者直接丢弃,避免低质量数据影响模型的进一步训练。

基于规则的奖励系统 是通过设定明确的规则来评估生成样本的质量,确保模型生成的推理过程是准确的、格式正确的、语言一致的、逻辑连贯的。通过这种方式,模型能够在强化学习训练阶段通过奖励和惩罚机制,逐渐学会生成更高质量的推理样本。

4 Distillation

蒸馏技术(Distillation)主要用于将DeepSeek-R1模型的推理能力迁移到更小的模型上。蒸馏技术的核心思想是通过让小型模型学习大型模型的输出或行为,从而在保持较高性能的同时减少模型的计算资源需求

4.1 蒸馏的基本流程

  • 数据生成:使用DeepSeek-R1生成约80万条训练样本,这些样本涵盖了推理任务(如数学、编程等)以及其他非推理任务(如写作、事实问答等)。
  • 模型微调:使用生成的训练样本对小型模型(如Qwen和Llama系列)进行监督微调(Supervised Fine-Tuning, SFT)。蒸馏过程中,小型模型通过学习DeepSeek-R1的输出,逐步提升其推理能力。
  • 评估:蒸馏后的小型模型在多个推理基准测试(如AIME 2024、MATH-500等)上进行评估,验证其性能提升

4.2 蒸馏的技术细节

  • 数据生成
    • 推理数据:使用DeepSeek-R1生成推理任务的训练数据。具体方法是通过拒绝采样(Rejection Sampling) 从DeepSeek-R1的RL检查点中生成推理轨迹。对于每个提示(prompt),生成多个响应,并保留正确的响应作为训练样本
    • 非推理数据:除了推理任务,蒸馏还使用了DeepSeek-V3的监督数据,涵盖写作、事实问答、自我认知等任务。这些数据通过DeepSeek-V3生成,并结合少量人工注释进行优化。
  • 监督微调(SFT)
    • 微调过程:使用生成的80万条训练样本对小型模型进行两轮微调。微调的目标是让小型模型尽可能接近DeepSeek-R1的输出分布。
    • 模型选择:蒸馏的目标模型包括Qwen2.5系列(1.5B、7B、14B、32B)和Llama系列(8B、70B)。这些模型在蒸馏后表现出显著的推理能力提升。
  • 蒸馏的优势
    • 性能提升:蒸馏后的小型模型在多个推理基准测试中表现优异。例如,DeepSeek-R1-Distill-Qwen-7B在AIME 2024上的得分为55.5%,超过了QwQ-32B-Preview。
    • 计算效率:蒸馏技术避免了在小模型上进行大规模强化学习的高成本,同时仍然能够显著提升小模型的推理能力

4.3 蒸馏技术的核心思想

蒸馏技术的核心思想是知识迁移,即通过让小型模型学习大型模型的输出分布或行为模式,从而在保持较高性能的同时减少模型的计算资源需求。具体来说:

  • 软标签(Soft Labels):在蒸馏过程中,小型模型不仅学习大型模型的最终输出(硬标签),还学习其输出的概率分布(软标签)。这种方法可以帮助小型模型更好地捕捉大型模型的推理过程。
  • 任务多样性: 蒸馏过程中使用的训练数据不仅包括推理任务,还包括其他任务(如写作、问答等),这使得小型模型在多个领域都能表现出色。

蒸馏技术在这篇论文中主要用于将DeepSeek-R1的推理能力迁移到更小的模型上。通过生成大量训练数据并进行监督微调,小型模型能够快速提升其推理能力,同时避免了大规模强化学习的高成本。蒸馏技术的成功应用展示了其在提升小模型性能方面的巨大潜力,并为未来的研究提供了新的方向。

5 Multi-Head Latent Attention (MLA)

传统的多头注意力机制(Multi-Head Attention, MHA)在Transformer模型中广泛应用,但在处理长序列时,计算复杂度会随着序列长度的平方增长(O(n²)),这限制了模型在长上下文任务中的表现。为了应对这一问题,DeepSeek V3引入了多头潜注意力(MLA),通过引入

### DeepSeek 核心技术架构特点 #### 数据蒸馏技术的应用 DeepSeek 使用数据蒸馏技术,通过提炼原始数据集中的冗余信息,获得更加精炼和有用的数据。这种方法有助于提升模型训练效率以及最终预测的准确性[^1]。 #### 基于Transformer的大规模预训练语言模型 DeepSeek核心技术之一在于采用了自2017年起广泛应用的Transformer架构作为基础框架构建大型语言模型(LLM)。这一选择让DeepSeek能够在自然语言理解与生成方面取得优异表现,并推动了公司在NLP领域的快速发展和技术积累[^2]。 #### 混合专家(MoE)体系结构增强版 为了进一步优化计算资源利用率并改善模型性能,DeepSeek在其基于Transformer的设计之上加入了混合专家(MoE)组件。具体而言: - **多路径学习**:将整体网络分割成若干个独立运作却又相互协作的小型子网——即所谓的“专家”。这些专家各自负责不同类型的任务处理; - **稀疏激活机制**:并非所有专家都会参与到每一次推理过程之中;相反地,只有那些被认为最有可能提供有效输出结果的部分才会被唤醒工作。这种方式极大地减少了不必要的运算量,同时也提高了系统的响应速度; - **高效负载平衡策略**:采用了一种无需额外监督信号指导下的自动调度算法来确保各个节点间的工作负荷保持相对均匀分布状态,进而达到降低通讯成本的目的。例如,在名为`DeepSeek-V3`的具体实现版本里,总共存在有61层深度、每层配置了多达257位不同专长方向上的成员参与构成整个庞大而又灵活可变的整体结构体。这一体系中共计拥有约一万五千名活跃个体共同作用以完成复杂的认知任务[^3]。 ```python class MoELayer(nn.Module): def __init__(self, num_experts=256, d_model=1024): super().__init__() self.experts = nn.ModuleList([Expert(d_model=d_model) for _ in range(num_experts)]) def forward(self, x): # 动态路由选择合适的专家进行处理 selected_expert_indices = dynamic_routing(x) outputs = [] for idx in selected_expert_indices: expert_output = self.experts[idx](x) outputs.append(expert_output) return torch.stack(outputs).mean(dim=0) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值