掘金 人工智能 5小时前
大模型算法架构:DeepSeek技术演进及剖析
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了DeepSeek大模型的发展历程,从早期的V1、V2、V3模型,到今年备受瞩目的R1模型。文章详细介绍了DeepSeek在模型架构、训练方法和推理能力提升方面的技术创新,特别是R1模型的训练流程和蒸馏方案,揭示了如何通过强化学习和知识蒸馏技术,在小模型上实现强大的推理能力。

🚀 DeepSeek-V1:采用了LLaMA的设计,使用Pre-Norm结构、RMSNorm函数和SwiGLU激活函数,并引入旋转位置编码。在67B模型中,DeepSeek通过增加网络深度而非FFN宽度来扩展参数,以提升性能。

💡 DeepSeek-V2:引入MLA(Multi Latent Attention)和DeepSeekMoE架构,MLA通过低秩KV联合压缩优化推理效率,DeepseekMOE通过细粒度专家拆分和共享专家隔离来改进传统MOE结构,降低训练成本,提高推理效率。

⚙️ DeepSeek-V3:沿用DeepSeek-V2架构,并引入MTP(Multi-Token Prediction)技术,通过预测多个未来Token增强训练信号和数据利用效率。同时,采用FP8混合精度训练框架,并使用创新的负载均衡策略,显著降低训练成本。

🧠 DeepSeek-R1:基于DeepSeek-V3,通过多阶段训练(冷启动、面向推理的强化学习、拒绝采样与监督微调、对所有场景进行强化学习)和蒸馏方案,显著提升了模型推理能力,性能比肩OpenAI o1正式版。R1开源了3类模型以及对应的训练方法,验证了纯强化学习激发LLM推理能力的可行性。

📚 DeepSeek-R1蒸馏方案:通过蒸馏技术,将R1的推理能力迁移到小模型上,显著降低计算成本和内存占用,同时保留了大部分教师模型的表现。蒸馏模型在多个基准测试中表现优异,证明了蒸馏在提升小模型推理能力方面的有效性。

随着 ChatGPT 迅速走红,这两年大家在日常工作中使用 LLM 进行的场景越来越多。本系列将针对主流算法架构进行讲解。

另外,我撰写的大模型相关的博客及配套代码均整理放置在Github:llm-action,有需要的朋友自取。

本文将讲述今年春节期间火遍全网的国产之光DeepSeek的技术演进及模型架构。

DeepSeek 发展历程

DeepSeek 从诞生至今,已经陆续发布了V1、V2、V3、R1等模型。

DeepSeek-V1

从微观上讲, DeepSeek-V1 遵循了LLaMA的设计,采用了Pre-Norm结构(使用RMSNorm函数),并使用SwiGLU作为 FFN 的激活函数。此外,该架构还采用了旋转位置编码(Rotary Embedding)来处理位置信息。为了优化推理成本,67B模型使用了分组查询注意力(GQA)来替代传统的多头注意力(MHA)。

从宏观上讲,DeepSeek LLM与LLaMA略有不同。具体来说,DeepSeek LLM 7B是一个30层的网络,而DeepSeek LLM 67B有95层。层的调整不仅保持了与其他开源模型的参数一致性,还便于模型的流水线分割,从而优化训练和推理过程。与大多数使用GQA的工作不同,在67B模型中通过增加网络深度而不是常见的扩展FFN中间层宽度来扩展参数,以实现更好的性能。

具体的模型参数规格以及模型类型如下:

DeepSeek-V2

DeepSeek-V2 是一种强大、经济且高效的 MOE 大语言模型,具备2360亿参数,其中,每个Token激活21亿参数,支持 128K Token 的上下文长度。它采用了MLA和DeepSeekMoE架构,实现了显著提升了推理效率,同时降低了训练成本。

具体模型规格如下:

而模型测评结果显示 DeepSeek-V2 Chat 对其他业界大模型相比,具备很强的竞争力:

此外,DeepSeek-V2 模型 的 API 定价远低于同行。

DeepSeek-V2 主要创新点为MLA与DeepseekMOE。

MLA,即 Multi Latent Attention,对传统多头注意力(MHA)的改进,利用低秩KV联合压缩来消除推理时KV Cache的瓶颈。其作用如下:

DeepseekMOE,则改进了传统MOE结构,传统MoE的缺陷如下:

DeepseekMOE的具体策略如下:

DeepSeek-V3

DeepSeek-V3 服用了DeepSeek-V2 的模型架构,此外,引入了MTP。

    Multi-head Latent Attention (MLA)

优势:保障模型同时关注输入的多个方面,同时使推理更高效。

    DeepSeekMoE

优势:训练更经济实惠。

传统的负载平衡方法可能会使用辅助损失函数来确保各个专家模块的负载均衡,但DeepSeek-V3开创了一种无需辅助损失的策略。这种策略可以均匀地分配计算负载,最大限度地减少了因鼓励负载均衡而导致的性能下降,使模型训练更加稳定,并且在推理阶段能够更准确地生成结果。

具体来说,该策略通过为每个专家添加一个偏置项,动态调整专家的负载,在训练过程中,如果某个专家的负载过高,则减少其偏置项;如果负载过低,则增加偏置项,从而避免了因负载不均衡导致的性能下降。

为了防止单个序列内出现极端的负载不均衡,DeepSeek-V3 还引入了一个序列级的辅助损失,但其权重非常小,主要用于微调负载均衡。

    Multi-Token Prediction (MTP)

引入 MTP 的目的是为了在每个位置预测多个未来的Token,而不是仅预测下一个Token。其优势在于能够增强模型的训练信号,提高数据利用效率,并可能使模型更好地规划未来的表示,从而提升整体性能;也可以用于推理加速的投机解码。

每个 MTP 模块包含一个共享的嵌入层、一个共享的输出头、一个 Transformer 块和一个投影矩阵。

在预测第 i 个额外Token时,将前一个预测的隐藏状态与当前Token的嵌入进行拼接,然后通过 Transformer 块和输出头进行计算。最终,通过计算每个 MTP 模块的交叉熵损失,并将其加权平均,作为模型的额外训练目标。

此外,DeepSeek-V3 具体模型规格如下:

与业界最先进模型的测评结果对比如下:

DeepSeek-V3 的训练过程:

    预训练:迈向极致的训练效率
    后训练:从 DeepSeek-R1 提取知识进行蒸馏

DeepSeek-V3 的训练成本:

其总训练成本仅为557万美元,远低于传统大模型数亿美元的训练成本,这使得其在资本和技术领域都获得了极大的竞争优势。

DeepSeek-R1

DeepSeek-R1基于DeepSeek-V3在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力。在数学、代码、自然语言推理等任务上,性能比肩 OpenAI o1 正式版。

R1的主要贡献为开源3类模型(共8个模型)以及对应的训练方法。

具体的蒸馏模型如下:

其中, 32B 和 70B 模型在多项能力上实现了对标 OpenAI o1-mini 的效果。

DeepSeek-R1 多阶段训练流程

DeepSeek-R1的多阶段训练流程如下:

阶段1:冷启动

使用少量(几千条)高质量长 CoT 数据,对DeepSeep-V3-Base进行微调,作为RL训练的初始起点。

冷启动数据的收集方法如下:

DeepSeek-R1 使用冷启动数据进行SFT,相比于DeepSeek-R1-Zero直接基于base模型进行强化学习,具有以下优势:

阶段2:面向推理的强化学习

在冷启动数据上对 DeepSeek-V3-Base 进行微调后,采用与DeepSeek-R1-Zero相同的强化学习方法GRPO进行训练。

此阶段侧重点是提升模型的推理能力,尤其是在编程、数学、科学和逻辑推理等推理密集型任务方面。

为缓解语言混杂的问题,在强化学习训练期间引入了语言一致性奖励。

尽管消融实验表明这种对齐会导致模型效果略有下降,但这种奖励对齐了人类偏好,使其更具可读性。

阶段3:拒绝采样与监督微调

在第二步强化学习收敛后,利用所得的checkpoint来收集监督微调(SFT)数据,并重新对DeepSeek-V3-Base模型进行SFT。

与最初侧重于推理的冷启动数据不同,此阶段引入了来自其他领域的数据,侧重点是提升模型的综合能力,使其在写作、事实问答等多种任务上表现良好。

具体收集的数据分为两个部分:推理数据与非推理数据。

对于推理数据,使用第二阶段强化学习训练后的checkpoint,通过拒绝采样生成推理轨迹。

对于非推理数据,比如,写作、事实问答、自我认知和翻译,采用了 DeepSeek-V3 的流程,并重用了 DeepSeek-V3 的 SFT 数据集的部分内容。对于某些非推理任务,在回答问题之前,通过 DeepSeek-V3 并使用提示词来生成一个潜在的思维链。但更简单的查询:比如“你好”;在响应过程中则不会生成 CoT。总共收集了约 20 万个与推理无关的训练样本。

对于写作、事实问答、自我认知和翻译等任务,这些任务通常不需要复杂的逻辑推理或多步计算,更强调信息的准确性、语言流畅性或创造性。生成潜在思维链(CoT)的动机如下:

而简单的查询不生成 CoT 的原因:

最终,第三阶段使用大约80万个样本(60w推理+20w通用)对DeepSeek-V3-Base模型进行了2个eopch的 SFT。

阶段4:对所有场景进行强化学习

在上一阶段 SFT 模型的基础上进行 RL 训练,侧重点是使模型在所有场景下都能表现良好,包括推理任务和非推理任务,并且保证模型的安全性和无害性。

通过奖励信号组合和多样化的提示词分布来训练模型。

最终,奖励信号的融合与多样化的数据分布使训练出的模型在推理方面表现出色,同时优先考虑帮助性和无害性。

DeepSeek-R1 蒸馏方案

大模型蒸馏简介

什么是蒸馏?

蒸馏是一种机器学习技术,使用一个较小的模型(学生模型)进行训练去模仿一个较大的模型(教师模型)的行为。

在AI中,蒸馏技术通过以下三步实现知识传递:

举个实际例子:

为什么需要蒸馏?

其目标是在显著降低计算成本和内存占用的同时,保留大部分教师模型的表现。

蒸馏类型

大模型的蒸馏大致可以分为以下几类:

DeepSeek R1的蒸馏

蒸馏小模型

为了获得更高效的小模型,并使其配备像 DeekSeek-R1 的推理能力,直接对 Qwen 和 Llama 等开源模型进行了微调,使用的是上面用于 SFT DeepSeek-R1 的80万数据。使用的基座模型有:

结果表明,这种直接蒸馏方法显著提高了小模型的推理能力。

蒸馏模型评估

通过对蒸馏模型进行评估发现:

选择蒸馏还是强化学习?

通过蒸馏 DeepSeek-R1,小模型取得了显著成效。然而,这引发了一个疑问:小模型是否能在不依赖蒸馏的情况下,仅凭大规模强化学习训练就达到类似的性能水平?

为了解答这一疑问,DeepSeek 对 Qwen-32B-Base 进行了超过 10,000 步的大规模强化学习训练,最终得到了DeepSeek-R1-Zero-Qwen-32B。如表 6 所示,经过大规模强化学习训练后,其性能与 QwQ-32B-Preview 相当。然而,通过蒸馏 DeepSeek-R1 得到的 DeepSeek-R1-Distill-Qwen-32B 在所有基准测试中的表现均明显优于DeepSeek-R1-Zero-Qwen-32B。这表明,在小参数模型上,直接进行强化学习训练的效果不如通过蒸馏DeepSeek-R1。

为什么直接用 RL 在小模型上训练不如先做大模型再蒸馏?

此外,DeepSeek-R1训练过程本身也包含了数据蒸馏。比如:DeepSeek-R1训练流程的第一阶段冷启动需要收集数千条带长思维链的数据,主要是通过之前纯RL得到的DeepSeek-R1-Zero 来合成。通过使用带有长链思维(CoT)示例的少样本提示,直接提示模型生成包含反思和验证的详细答案,以可读格式收集 DeepSeek-R1-Zero 的输出,并通过人工标注者的后处理优化结果;又比如:第三阶段的拒绝采样方法在第二阶段的模型的大量输出上,使用多种方式(如:“规则判断”、“将真实值和模型预测输入 DeepSeek-V3 进行判断”、“过滤掉混合语言、长段落和代码块的思维链”等)过滤数据,并添加额外的非推理数据。最后基于DeepSeek-V3-Base进行训练,可以认为是数据合成或数据蒸馏,通过这个过程实现了从Zero到R1的“去其糟粕,取其精华”。

总结

本文主要介绍了DeepSeek的发展历程,从V1、V2、V3到R1;同时,介绍了DeepSeek R1的多阶段训练方法以及 DeepSeek R1 的蒸馏方案。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

DeepSeek 大模型 LLM 推理能力 蒸馏
相关文章