DesspSeek架构是原本GPT的架构,但是,对该架构中每一层都做了创新,下文,逐一介绍每一层中相关创新点。
模型训练
GPT采用Next Token Prediction(自回归预测)作为基础训练方式,这是一种基于序列生成的核心技术。在该机制下,模型会基于已生成的token序列,逐个预测下一个最可能的token,通过这种逐步递进的方式完成整个文本的生成。由于语言本身的复杂性和上下文的多变性,每次预测时模型内部的计算过程都会受到不同因素的影响(如注意力权重分配、概率分布采样等),这使得相同的输入可能会产生不同的输出结果,这种特性也导致了模型表现存在一定局限性,比如可能出现逻辑不一致、事实性错误等问题。
尽管如此,当前主流的大模型预训练仍沿用这一范式,主要原因包括:1)自回归预测能有效模拟人类语言生成过程;2)该范式已被证明在捕捉长距离依赖关系方面表现优异;3)现有的计算框架和优化算法都围绕这一范式进行了深度优化。例如,GPT-3、PaLM等千亿参数规模的模型都采用了这种训练方式。
在完成预训练后,会通过Supervised Fine-tuning(SFT)阶段进行优化,这一过程也称为Instruction Tuning Stage。该阶段的主要目的是将原始互联网数据(通常是无结构、质量参差不齐的网页文本)转化为更优质的训练格式。具体来说:1)人工标注者会创建高质量的问答对和指令样本;2)将原始文本重构为"指令-响应"的标准格式;3)通过监督学习微调模型参数,使其输出更符合人类期望。例如,OpenAI在GPT-3后发布了基于SFT优化的InstructGPT模型,其输出质量显著提升。这一阶段通常还会配合人类反馈强化学习(RLHF)进一步优化模型表现,RLHF被认为是通往强人工智能的途径,这个方法具体会在下文讲述。
Mixture of Experts
在大语言模型(如GPT架构)中,Transformer的前馈网络(Feed-Forward Network, FFN)层承担着对特征进行深度非线性变换的关键任务。随着模型规模的扩大,隐藏层的表示维度往往远超基础的768维(例如扩展至数千维)。在这种高维空间下,如果继续采用传统的全连接层设计,其参数量和计算量将呈爆炸式增长,导致模型面临极高的算力消耗和推理延迟。
为突破这一瓶颈,DeepSpeed等框架引入了混合专家模型(Mixture of Experts, MoE)架构。MoE的核心思想是将原本庞大的单一前馈网络替换为多个相对较小的专业化“专家”网络,并通过一个路由机制(Router)动态地为每个输入Token分配最合适的专家进行处理,从而在保持模型总参数容量庞大的同时,大幅降低单次推理的实际计算开销。
根据专家激活策略的不同,MoE主要分为两种实现类型:
全加型
在全加型架构中,输入的 Token 会同时传递给门控网络(Gate)和所有的专家模型(全连接层)。Gate 网络会计算并输出一个针对各专家的得分表(通常经过 Softmax 归一化),这一过程在逻辑上类似于注意力机制(Attention)。最终,模型会将各个专家的输出结果与 Gate 给出的对应得分进行加权求和,得到最终输出。然而,由于每个 Token 都需要激活所有专家参与计算,这种设计导致计算量并未得到有效降低,违背了 MoE 旨在减少计算成本的设计初衷。因此,在实际的大模型落地中,它通常被更高效的稀疏型 MoE 所替代。
挑选型
针对全加型计算开销过大的痛点,挑选型方案引入了“稀疏激活”机制,即每个 Token 仅选择部分专家参与计算。其具体流程为:Token 首先输入 Gate 网络生成适配得分,随后仅筛选出得分最高的 Top-K 个专家进行处理,最后将这 K 个专家的输出进行加权聚合。在工程实现上,如果采用按 Token 遍历的方式,由于需要频繁循环,计算效率较低。因此,现代框架通常采用“专家主动挑选 Token”的反向分配逻辑,即按专家维度遍历所有 Token,从而显著提升并行计算效率。这也是目前如 Mixtral 等主流大模型采用的基础架构。
混合型
混合型架构结合了稀疏与密集的特点,也是 DeepSeek 等前沿大模型当前采用的版本。在该机制下,模型不仅包含按需激活的“路由专家”,还设置了处理通用知识的“常驻专家(Shared Experts)”。每个 Token 在仅选择部分路由专家的同时,必定会经过常驻专家的处理,从而兼顾了特定领域的专业性与通用任务的稳定性。此外,为了防止门控网络在训练中出现“偏好效应”(即所有 Token 都扎堆选择某几个最知名的专家,导致其他专家被闲置),通常会在损失函数(Loss)中引入负载均衡辅助损失(Auxiliary Loss)。该机制通过惩罚专家激活频率的方差,强制所有专家得到相对均匀的训练与调用,从而保障模型整体的知识表达能力与系统稳定性。
MOE的作用
传统稠密模型(Dense)的前馈网络(FFN)在处理每个Token时,都需要激活全部参数。例如,一个拥有100B参数的传统FFN,每次预测都需要消耗100B FLOPs的算力。相比之下,混合专家模型(MoE)虽然在总参数量上可以扩展至236B,但得益于稀疏激活(Sparse Activation)机制,每个Token在实际推理时仅需激活其中约21B的参数,计算量大幅减少了79%。因此,MoE的核心优势并不在于缩减模型的总体规模,而是在于通过“按需激活”有效降低了单次推理的计算开销。
这种“用空间换时间”的设计,深刻契合了现代AI基础设施的成本结构特征:
- 存储资源相对廉价:随着硬件技术的发展,硬盘、内存(RAM)以及显存(VRAM)等存储介质的成本相对较低。这使得系统能够轻松容纳MoE模型庞大的参数池,将其作为静态的“知识仓库”驻留在内存中。
- 计算资源极其昂贵:GPU的运算时间、集群通信带宽以及电力消耗构成了AI模型训练与推理的主要成本。每一次浮点运算(FLOP)都意味着真金白银的开销。
通过MoE架构,模型成功地将“模型容量”与“计算成本”解耦。它允许我们在不增加实际计算负担的前提下,堆叠更多的参数以获取更强大的知识表达能力,从而完美平衡了模型的高性能与低算力消耗。
Rotary Position Embedding(rope)旋转位置编码
RoPE 并不像传统方法那样将位置向量直接“加”到词嵌入上,而是通过左乘一个与位置相关的正交旋转矩阵,对查询向量(Q)和键向量(K)进行几何空间上的旋转变换。在这一过程中,向量旋转的角度严格取决于该 Token 在序列中的绝对位序(位置索引)。
这种设计的数学精妙之处在于:当模型计算注意力分数(即旋转后的 Q 与 K 的点积)时(计算公式如下图所示),由于正交矩阵的转置等于其逆矩阵,绝对位置参数在运算中会被自然抵消,使得最终的点积结果仅依赖于两个 Token 之间的相对位置差(即相对距离)。
这种方式可以通过如下矩阵运算转化矩阵。这种方式更能体现位置之间的相对位置关系。
KV cache
由于生成任务采用大模型的自回归方式,整个计算过程是串行进行的。以翻译模型为例,输入"I love you"时,解码器的输出过程如下:
- 第一次计算:start 标记与【start】的KV进行注意力计算
- 第二次计算:start 标记与【start,我】的KV进行注意力计算
- 第三次计算:start 标记与【start,我,爱】的KV进行注意力计算
- 第四次计算:start 标记与【start,我,爱,你】的KV进行注意力计算
当输入文本较长时,这种重复计算会显著增加计算量。为了优化这一过程,KV缓存技术应运而生,它通过存储历史KV值来避免重复计算。
KV cache的优化
最初,每个token都拥有独立的 key 和 value,这导致存储空间占用较大。为此,研究者们提出了共享 key-value 的方案。后来,又发展出了混合型的存储方式,如下图所示。
LORA(Low Rankl Adaptation)低秩适配器
该方法旨在优化存储空间利用率。例如,对于一个10000×10000的全连接层,直接存储整个矩阵会占用过多内存。通过使用两个全连接层的组合结构(如下图所示),可以在保持输出维度不变的同时显著减少存储需求。
Multi-head Latnt Attention(MLA)多头潜在注意力
MHA(多头注意力)为每个注意力头分配独立的 K 和 V 矩阵进行运算;MQA(多查询注意力)通过让所有查询头共享同一组 K 和 V 矩阵,大幅减少了存储开销;而 MLA(多头潜在注意力)则借鉴了低秩压缩的思路,其核心机制如下:
在训练阶段,模型会学习一套专门的投影矩阵。首先,通过一个联合下投影矩阵( WDKV ),将原始的高维特征向量压缩映射到一个低维的潜在空间,生成紧凑的潜在向量;随后,在计算注意力前,再利用两个独立的上投影矩阵( WUK和 WUV )将潜在向量分别重构为全维度的 K 和 V 向量。这些投影矩阵作为模型的可学习参数,在预训练过程中通过反向传播进行端到端的联合优化,使模型自动学会保留核心语义信息。
在推理阶段,模型不再缓存完整的高维 K 和 V 矩阵,而是仅存储低维的潜在向量,从而在保持模型性能的同时显著降低显存占用。当需要进行注意力计算时,再按需将潜在向量解压还原为全维度的 K 和 V。
矩阵吸收(Matrix Absorption)是 MLA 在推理阶段实现“极致省显存且不拖慢速度”的核心数学技巧,其本质是利用矩阵乘法的结合律,将“解压”操作巧妙合并到 Query(Q)的计算和 Output(O)的输出中,从而在物理上彻底省去生成巨大高维 K 和 V 矩阵的过程。在计算注意力分数(Q × K^T)时,模型预先将 K 的上投影矩阵(W_UK)与 Q 的投影矩阵相乘,生成一个吸收后的新矩阵 Q_absorb,推理时直接用 Q_absorb 乘以低维的潜在向量(C_kv)即可一步得出分数,完全无需生成高维 K 矩阵;同理,在提取内容信息时,V 的上投影矩阵(W_UV)被提前吸收进最终的输出投影矩阵(W_O)中,模型直接用注意力分数与低维 C_kv 相乘,再经过吸收后的输出层得出结果,全程无需生成高维 V 矩阵。通过这种“用计算换显存”的机制,高维的 K 和 V 仅存在于数学推导中,物理显存中从未被真正解压和存储,使 MLA 能够以极低的显存占用跑出媲美甚至超越传统 MHA 的效果,该过程如下图所示。
然而,DeepSeek 采用了上述的 RoPE 方法,这导致无法通过矩阵吸收进一步简化存储空间。因此,通常的做法是按比例混合使用 RoPE 和非 RoPE 的计算方式,最终将结果合并。
激活函数
DeepSeek模型采用了Swiglu激活函数,其结构可以分解为右侧的门控机制。这个门控部分能够动态调节信息x的通过比例。通过引入可学习的参数W和V,模型能够自动调整激活程度,在保留原有思想的基础上实现了更灵活的调节机制。
RMSNorm
该层对应于原本gpt架构的归一化层,批归一化在批次维度上归一化,更适合图像网络;层归一化对单一样本归一化,求出该样本各个token均值方差,适合transformer;Rms是简化的层归一化,不减去均值,仅缩放。
RLHF人类反馈强化学习
在完成有监督微调后,模型在接收输入时会生成多个候选回答。随后,评估人员会对每个回答进行多维度评分(包括实用性、安全性等指标),这些反馈数据将用于模型的持续优化。该训练过程采用PPO(近端策略优化)算法,通过强化学习机制实现智能提升。与传统基于损失函数的惩罚机制不同,PPO采用正向奖励机制来引导模型训练,这种模式更接近人类基于动机驱动的学习方式。
如图所示,R代表奖励值,其计算原理可概括为:在特定状态下采取某个动作的概率乘以该动作带来的预期奖励值。算法通过神经网络的softmax层直接输出各动作的概率分布,并通过梯度更新使模型更倾向于选择高奖励的动作。这种机制使模型能够自主学习最优策略。