作者/机构: DeepSeek-AI
DeepSeek-V3是一个拥有6710亿总参数的强混合专家(MoE)语言模型,每个token激活370亿参数。为了实现经济高效的训练和推理,该模型继承并验证了DeepSeek-V2中的多头潜在注意力(MLA)和DeepSeekMoE架构。本文的核心问题是如何在提升模型性能的同时,实现极致的训练和推理效率。
研究目标是通过算法、框架和硬件的协同设计,在可控的成本内训练出性能顶尖的开源模型。
主要创新点如下:
1. 架构创新:新颖的负载均衡策略和训练目标
* 在DeepSeek-V2高效架构的基础上,首创了一种无辅助损失(auxiliary-loss-free)的负载均衡策略,旨在最小化因强制负载均衡对模型性能造成的负面影响。
* 研究并采用了一种多Token预测(Multi-Token Prediction, MTP)的训练目标,实验证明该目标有助于提升模型在各类评测基准上的性能,并可用于推理加速的推测解码。
预训练:追求极致的训练效率
后训练:从DeepSeek-R1蒸馏知识
核心评估结果总结
DeepSeek-V3的基础架构仍在Transformer【索引106,Attention is all you need,2017,Advances in neural information processing systems】框架内。为了实现高效推理和经济训练,DeepSeek-V3采用了已在DeepSeek-V2中充分验证的多头潜在注意力(MLA)【索引17,Deepseek-v2: A strong, economical, and efficient mixture-of-experts language model,2024c,CoRR】和DeepSeekMoE【索引14,Deepseekmoe: Towards ultimate expert specialization in mixture-of-experts language models,2024,CoRR】。与DeepSeek-V2不同的是,DeepSeek-V3为DeepSeekMoE引入了一种无辅助损失的负载均衡策略【索引107,Auxiliary-loss-free load balancing strategy for mixture-of-experts,2024a,CoRR】,以减轻为确保负载均衡而导致的性能下降。此外,还引入了多Token预测(MTP)训练目标,以提升模型在评测基准上的整体性能。
DeepSeek-V3的基础架构。该架构的核心是MLA和DeepSeekMoE,如图2所示。与DeepSeek-V2相比,一个关键区别是为DeepSeekMoE引入了无辅助损失的负载均衡策略,以缓解强制负载均衡带来的性能损失。
注意力机制采用MLA架构。设$d$为嵌入维度,$n_h$为注意力头数,$d_h$为每个头的维度,$h_i \in R^d$为第$i$个token的注意力输入。MLA的核心思想是对注意力的键(Key)和值(Value)进行低秩联合压缩,以减少推理过程中的键值(KV)缓存。
键(Key)和值(Value)的低秩压缩。通过下式计算压缩后的潜在向量$c_{kv} \in R^{d_{kv}}$,该向量用于生成键和值。其中$d_{kv} (\ll n_h d_h)$是KV压缩维度,$W_{down} \in R^{d_{kv} \times d}$是下投影矩阵,$W_{k,up}, W_{v,up} \in R^{n_h d_h \times d_{kv}}$分别是键和值的上投影矩阵。同时,使用一个独立的矩阵$W_{k,d} \in R^{n_h d_h \times d}$生成携带旋转位置编码(RoPE)【索引98,Roformer: Enhanced transformer with rotary position embedding,2024,Neurocomputing】的解耦键。在生成过程中,只有$c_{kv}$和$k_{d,i}$需要被缓存,这显著减少了KV缓存,同时性能与标准多头注意力(MHA)【索引106,Attention is all you need,2017,Advances in neural information processing systems】相当。
查询(Query)的低秩压缩。为了减少训练过程中的激活内存占用,对查询也执行了低秩压缩。压缩后的查询潜在向量为$c_{q,i} \in R^{d'_{kv}}$,其中$d'_{kv} (\ll n_h d_h)$是查询压缩维度。$W'_{down} \in R^{d'_{kv} \times d}$和$W'_{q,up} \in R^{n_h d_h \times d'_{kv}}$分别是下投影和上投影矩阵。$W'_{q,d} \in R^{n_h d_h \times d'_{kv}}$用于生成携带RoPE的解耦查询。
最终注意力输出的计算。将查询($q_{i,j}$)、键($k_{j,i}$)、值($v_{j,i}$)组合,计算最终的注意力输出$u_i$。其中$W_o \in R^{d \times n_h d_h}$是输出投影矩阵。
DeepSeekMoE的基础架构。在前馈网络(FFN)部分,DeepSeek-V3采用了DeepSeekMoE架构【索引14,Deepseekmoe: Towards ultimate expert specialization in mixture-of-experts language models,2024,CoRR】。与GShard【索引57,Gshard: Scaling giant models with conditional computation and automatic sharding,2021,ICLR】等传统MoE架构相比,DeepSeekMoE使用更细粒度的专家,并将部分专家隔离为共享专家。FFN的输出$h'_i$由共享专家和被路由的专家加权求和得到。其中,$N_s$和$N_r$分别是共享专家和路由专家的数量,$K$是激活的路由专家数量,$g_{i,j}$是门控值,$s_{i,j}$是token到专家的亲和度分数,通过sigmoid函数计算。与DeepSeek-V2稍有不同,DeepSeek-V3使用sigmoid函数计算亲和度分数,并在所有选定的亲和度分数之间进行归一化以产生门控值。
无辅助损失的负载均衡策略。为了解决专家负载不均衡可能导致的路由崩溃【索引94,Outrageously large neural networks: The sparsely-gated mixture-of-experts layer,2017,ICLR】和计算效率下降问题,DeepSeek-V3开创性地采用了无辅助损失的负载均衡策略【索引107,Auxiliary-loss-free load balancing strategy for mixture-of-experts,2024a,CoRR】。该策略通过为每个专家引入一个偏置项$b_j$,并将其加到亲和度分数$s_{i,j}$上来决定Top-K路由。偏置项仅用于路由决策,而用于加权FFN输出的门控值仍由原始亲和度分数$s_{i,j}$导出。训练中,在每个训练步骤结束时,如果某个专家过载,则其对应的偏置项减少$\eta$;如果欠载,则增加$\eta$,其中$\eta$是一个称为偏置更新速度的超参数。通过这种动态调整,模型在训练期间保持了专家负载的平衡,并取得了比纯辅助损失方法更好的性能。
补充性的序列级辅助损失。尽管主要依靠无辅助损失策略,为了防止任何单个序列内出现极端不平衡,DeepSeek-V3还采用了一个补充性的序列级平衡损失$L_{balance}$。该损失鼓励每个序列上的专家负载保持平衡,其中平衡因子$\alpha$被设置为一个极小的值。
节点限制路由(Node-Limited Routing)。类似于DeepSeek-V2中使用的设备限制路由,DeepSeek-V3也采用了一种受限的路由机制来限制训练期间的通信成本。具体来说,确保每个token最多被发送到$m$个节点,这些节点是根据分布在每个节点上的专家的最高$k_{max}$个亲和度分数之和来选择的。在这种约束下,MoE训练框架可以实现近乎完全的计算-通信重叠。
无Token丢弃。由于采用了有效的负载均衡策略,DeepSeek-V3在整个训练过程中保持了良好的负载平衡,因此不会丢弃任何token。此外,通过特定的部署策略确保了推理时的负载均衡,因此在推理过程中也不会丢弃token。
多Token预测(MTP)的目标与实现。受Gloeckle等人【索引28,Better & faster large language models via multi-token prediction,2024,ICML】的启发,DeepSeek-V3采用了多Token预测(MTP)目标,将预测范围扩展到未来的多个token。这不仅密集了训练信号,提高了数据效率,还可能使模型能够预先规划其表示,以更好地预测未来token。与Gloeckle等人并行预测额外token不同,DeepSeek-V3顺序地预测额外的token,并在每个预测深度保持完整的因果链。
MTP模块的构成与工作流程。MTP实现使用$D$个顺序模块来预测$D$个额外的token。第$d$-个MTP模块由共享的嵌入层Emb(·)、共享的输出头OutHead(·)、一个Transformer块TRM$_d$(·)和一个投影矩阵$W_d \in R^{d \times 2d}$组成。对于第$i$个输入token $x_i$,在第$d$个预测深度,首先将第$d-1$个深度的token表示$h^{d-1}_i$与第$i+d$个token的嵌入Emb($x_{i+d}$)通过线性投影结合起来。当$d=1$时,$h^{d-1}_i$指主模型给出的表示。这个组合后的表示$h'_{i,d}$作为第$d$个深度Transformer块的输入,生成当前深度的输出表示$h_{i,d}$。最后,共享的输出头根据$h_{i,d}$计算第$d$个额外预测token $P(x_{i+1+d})$的概率分布。这种维持预测因果链的原则与EAGLE【索引64,EAGLE: speculative sampling requires rethinking feature uncertainty,2024b,ICML】相似,但主要目标是改进训练,而非推测解码【索引58,Fast inference from transformers via speculative decoding,2023,ICML;索引113,Speculative decoding: Exploiting speculative execution for accelerating seq2seq generation,2023,EMNLP】。
MTP训练目标。对于每个预测深度,计算一个交叉熵损失$L_d^{MTP}$。最终,将所有深度的MTP损失取平均,并乘以一个权重因子$\lambda$,得到总的MTP损失$L_{MTP}$,作为DeepSeek-V3的额外训练目标。
MTP在推理中的应用。MTP策略主要旨在提升主模型的性能,因此在推理时可以直接丢弃MTP模块,主模型可以独立正常工作。此外,这些MTP模块也可以被用于推测解码,以进一步改善生成延迟。
HAI-LLM训练框架。DeepSeek-V3的训练由HAI-LLM框架支持,该框架采用16路流水线并行(PP)【索引79,Zero bubble pipeline parallelism,2023a,arXiv】、跨8个节点的64路专家并行(EP)【索引57,Gshard: Scaling giant models with conditional computation and automatic sharding,2021,ICLR】和ZeRO-1数据并行(DP)【索引83,Zero: Memory optimizations toward training trillion parameter models,2020,SC20】。
工程优化。为了实现高效训练,实施了以下优化:
1. 设计了DualPipe算法用于高效的流水线并行,该算法减少了流水线气泡,并通过计算-通信重叠解决了跨节点专家并行带来的重通信开销。
2. 开发了高效的跨节点all-to-all通信核函数,以充分利用InfiniBand(IB)和NVLink带宽。
3. 精心优化了内存占用,使得训练DeepSeek-V3无需使用昂贵的张量并行(TP)。
DualPipe算法解决通信开销。由于跨节点专家并行,DeepSeek-V3的计算与通信比约为1:1,导致效率不高。为解决此问题,设计了名为DualPipe的创新流水线并行算法。DualPipe通过有效重叠前向和后向的计算-通信阶段来加速训练,并减少流水线气泡。
DualPipe的核心思想与实现。DualPipe的核心思想是在一对独立的前向和后向块(chunk)内重叠计算和通信。每个块被分为四个部分:attention、all-to-all分发、MLP和all-to-all合并。在后向块中,attention和MLP进一步分为“为输入反向传播”和“为权重反向传播”。如图4所示,通过重新排列这些组件并手动调整GPU SM(流多处理器)用于通信与计算的比例,可以确保all-to-all和PP通信在执行期间被完全隐藏。
DualPipe调度策略。完整的DualPipe调度如图5所示,采用双向流水线调度,同时从流水线的两端输入微批次(micro-batch),大部分通信可以被完全重叠。这种重叠确保了即使模型规模进一步扩大,只要保持恒定的计算-通信比,仍然可以在跨节点部署细粒度专家的情况下,实现接近零的all-to-all通信开销。
DualPipe与其他PP方法的比较。如表2所示,与ZB1P【索引80,Zero bubble pipeline parallelism,2023b,URL https: //arxiv.org/abs/2401.10241】和1F1B【索引35,Pipedream: Fast and efficient pipeline parallel dnn training,2018,URL https://arxiv.or g/abs/1806.03377】相比,DualPipe显著减少了流水线气泡,而峰值激活内存仅增加了1/PP倍。虽然DualPipe需要保留两份模型参数副本,但这并不会显著增加内存消耗,因为训练中使用了较大的EP规模。与Chimera【索引61,Chimera: efficiently training large-scale neural networks with bidirectional pipelines,2021,SC ’21】相比,DualPipe对微批次数量的要求更宽松,且气泡和激活内存不会随微批次数量增长而增加。
定制通信核函数以保证计算性能。为了保证DualPipe有足够的计算性能,我们定制了高效的跨节点all-to-all通信核函数(包括分发和合并),以节省专用于通信的SM数量。核函数的实现与MoE门控算法及集群网络拓扑协同设计。具体来说,通过将每个token的分发限制在最多4个节点来减少IB流量。token首先通过IB传输到目标节点上具有相同节点内索引的GPU,到达后立即通过NVLink转发到托管目标专家的特定GPU。这样,IB和NVLink的通信被完全重叠,每个token可以高效地选择平均每个节点3.2个专家而没有额外的NVLink开销。这意味着,尽管DeepSeek-V3实际上只选择8个路由专家,但它可以将这个数量扩展到最多13个(4节点 × 3.2专家/节点)而通信成本保持不变。总体而言,仅需20个SM就足以充分利用IB和NVLink的带宽。
通信核函数实现细节。我们采用warp specialization技术【索引7,Singe: leveraging warp specialization for high performance on GPUs,2014,PPoPP ’14】,将20个SM划分为10个通信通道。在分发过程中,(1) IB发送、(2) IB到NVLink转发、(3) NVLink接收由各自的warp处理,warp数量根据实际工作负载动态调整。合并过程也类似。此外,为减少对其他SM计算核函数的影响,我们使用定制的PTX指令并自动调整通信块大小,从而显著减少了L2缓存的使用和干扰。
采用多种技术减少训练内存占用。
1. 重计算RMSNorm和MLA上投影:在反向传播期间重计算所有RMSNorm操作和MLA上投影,从而无需持久存储它们的输出激活值,以微小开销显著减少了激活内存需求。
2. CPU中的指数移动平均(EMA):在训练期间,我们将模型参数的EMA保存在CPU内存中,并在每个训练步骤后异步更新。这使得我们能够维护EMA参数而无需额外的内存或时间开销。
3. 多Token预测的共享嵌入和输出头:利用DualPipe策略,我们将模型的最浅层(包括嵌入层)和最深层(包括输出头)部署在同一个PP rank上。这使得MTP模块和主模型之间可以物理共享嵌入和输出头的参数及梯度,进一步提高了内存效率。
引入FP8混合精度框架。受低精度训练最新进展的启发,我们提出了一个利用FP8数据格式的细粒度混合精度框架来训练DeepSeek-V3。为了解决FP8格式动态范围有限的问题,我们引入了细粒度的量化策略:1x$d_{tile}$元素的tile-wise分组或$d_{block} \times d_{block}$元素的block-wise分组。相关的反量化开销在我们的高精度累加过程中被大部分缓解。此外,为了进一步减少MoE训练中的内存和通信开销,我们以FP8格式缓存和分发激活值,同时以BF16格式存储低精度优化器状态。与BF16基线相比,我们FP8训练模型的相对损失误差始终低于0.25%。
FP8训练的混合精度框架设计。该框架中,大部分计算密集型操作(如GEMM)在FP8中进行,而少数关键操作保持原始数据格式以平衡效率和数值稳定性,如图6所示。
FP8核心计算。为了加速训练,大多数核心计算核函数,即GEMM操作,都以FP8精度实现。这些GEMM操作接收FP8张量作为输入,并产生BF16或FP32的输出。与Linear算子相关的三个GEMM——Fprop(前向传播)、Dgrad(激活反向传播)和Wgrad(权重反向传播)——都在FP8中执行。这理论上使计算速度比原始BF16方法快一倍,并且FP8 Wgrad GEMM允许激活值以FP8格式存储,显著减少了内存消耗。
高精度组件保留。尽管FP8格式有效率优势,但某些对低精度计算敏感的算子仍需更高精度。因此,我们为以下组件保留原始精度(如BF16或FP32):嵌入模块、输出头、MoE门控模块、归一化算子和注意力算子。为了进一步保证数值稳定性,我们将主权重、权重梯度和优化器状态以更高精度存储。这些高精度组件带来的内存开销可以通过在分布式训练系统中的多个DP rank上进行有效分片来最小化。
细粒度量化。为了解决FP8动态范围有限导致的溢出和下溢问题,我们提出了一种细粒度的量化方法。如图7(a)所示,(1) 对于激活值,我们以1x128的tile为基础进行分组和缩放;(2) 对于权重,我们以128x128的块为基础进行分组和缩放。这种方法通过根据更小的元素组自适应调整缩放因子,使量化过程能更好地适应异常值。
高精度累加。我们观察到NVIDIA H800 GPU上的FP8 GEMM累加精度有限,这在内维度K较大时问题尤为突出。为了解决这个问题,我们采用了提升到CUDA Cores进行更高精度累加的策略【索引103,CUTLASS,2023,URL https://github.com/NVIDIA/cutlas s】。如图7(b)所示,在Tensor Cores上执行MMA(矩阵乘法累加)时,中间结果以有限位宽累加。当达到一个$K_{tile}$的间隔时,这些部分结果被复制到CUDA Cores上的FP32寄存器中,进行全精度FP32累加。我们的细粒度量化在内维度K上应用了每组的缩放因子,这些因子可以在CUDA Cores上高效地作为反量化过程的一部分被乘上,计算开销极小。我们设置$K_{tile}=128$个元素,这在不引入显著开销的情况下,能显著提高精度。
优先使用Mantissa而非Exponents。与先前工作不同,我们在所有张量上都采用E4M3格式(4位指数,3位尾数)以获得更高精度。这得益于我们的细粒度量化策略,即tile-wise和block-wise缩放,它通过在分组元素间共享指数位,有效缓解了动态范围有限的影响。
在线量化。我们为每个1x128的激活tile或128x128的权重块在线计算最大绝对值,并据此推导缩放因子,然后在线将激活或权重量化为FP8格式,以确保缩放因子的准确性并简化框架。
低精度优化器状态。我们采用BF16数据格式来跟踪AdamW【索引66,Decoupled weight decay regularization,2017,arXiv】优化器中的一阶和二阶矩,而没有观察到性能下降。但主权重和梯度仍保留为FP32。
低精度激活值。由于Wgrad操作在FP8中执行,我们将激活值以FP8格式缓存用于反向传播。但对于一些特殊算子,我们做了特别处理:(1) 注意力算子之后的Linear算子的输入,这些激活值也用于注意力算子的反向传播,对精度敏感,我们为其采用定制的E5M6数据格式。(2) MoE中SwiGLU算子的输入,我们缓存其输入并重计算其输出,这些激活值也以FP8存储。
低精度通信。为了缓解MoE模型训练中的通信瓶颈,我们将MoE上投影之前的激活值量化为FP8,然后应用分发组件。对于前向和后向的合并组件,我们将其保留在BF16中以保证关键部分的训练精度。
部署策略。我们在H800集群上部署DeepSeek-V3,采用分离预填充(prefilling)和解码(decoding)阶段的策略,以同时保证在线服务的服务水平目标(SLO)和高吞吐量。
预填充阶段的部署单元与并行策略。最小部署单元为4个节点共32个GPU。Attention部分采用4路张量并行(TP4)结合序列并行(SP),以及8路数据并行(DP8)。MoE部分采用32路专家并行(EP32),以确保每个专家处理足够大的批次大小。MoE的all-to-all通信方式与训练时相同。
负载均衡策略。为了实现MoE部分的负载均衡,我们引入了冗余专家部署策略。根据在线部署期间收集的统计数据,复制高负载专家并冗余部署它们。在部署DeepSeek-V3时,预填充阶段设置了32个冗余专家。
吞吐量优化。为提高吞吐量并隐藏通信开销,我们同时处理两个计算工作负载相似的微批次,将一个微批次的attention和MoE与另一个微批次的分发和合并操作重叠。
动态冗余策略探索。我们正在探索一种动态冗余专家策略,每个GPU托管更多专家(如16个),但在每个推理步骤中只激活9个,并动态计算全局最优路由方案。
解码阶段的部署与并行策略。解码阶段,我们将共享专家视为一个路由专家,因此每个token选择9个专家。最小部署单元为40个节点共320个GPU。Attention部分采用TP4+SP和DP80,而MoE部分使用EP320。每个GPU只托管一个专家。
负载均衡与通信。与预填充阶段类似,我们定期确定冗余专家集合。All-to-all通信通过IB上的直接点对点传输实现低延迟,并利用IBGDA技术【索引74,Improving network performance of HPC systems using NVIDIA Magnum IO NVSHMEM and GPUDirect Async,2022,NVIDIA】进一步优化。
吞吐量优化。我们也在探索在解码阶段同时处理两个微批次。与预填充不同,解码阶段attention消耗时间更多,因此我们将一个微批次的attention与另一个微批次的分发+MoE+合并操作重叠。由于MoE部分的瓶颈是内存访问而非计算,分配少量SM给它不会显著影响整体性能。
将通信任务从SM中卸载。当前的通信实现依赖于昂贵的SM,这限制了计算吞吐量。我们希望未来的硬件供应商能开发出将通信任务(如IB和NVLink之间的数据转发、聚合、reduce操作等)从计算单元SM上卸载的硬件,作为GPU协处理器或网络协处理器。
统一通信接口。我们期望这种硬件能从计算单元的角度统一IB(横向扩展)和NVLink(纵向扩展)网络,提供一个统一接口,使计算单元能通过简单的原语轻松完成跨整个IB-NVLink统一域的读、写、多播和reduce等操作。
更高的FP8 GEMM累加精度。我们建议未来的芯片设计增加Tensor Cores中的累加精度,以支持全精度累加,或根据算法的精度要求选择合适的累加位宽。
支持Tile-wise和Block-wise量化。我们建议未来的芯片支持细粒度量化,使Tensor Cores能够接收缩放因子并实现带组缩放的MMA,从而避免Tensor Cores和CUDA Cores之间频繁的数据移动。
支持在线量化。我们建议将FP8转换和TMA(Tensor Memory Accelerator)访问集成到单个融合操作中,或采用近内存计算方法,以避免频繁的内存读写。
支持转置GEMM操作。我们建议未来的芯片能够直接从共享内存中转置读取矩阵,并结合FP8格式转换与TMA访问的融合,以简化量化工作流。
硬件配置:
软件配置:
模型架构:
数据集:
训练超参数:
多Token预测(MTP)消融实验
无辅助损失的负载均衡策略消融实验
批级与序列级负载均衡对比
标准评测结果(表6):
开放式评估结果(表7):
MTP评估:
论文总结:
本文介绍了DeepSeek-V3,一个拥有6710亿总参数(370亿激活)的大型MoE语言模型,它在14.8T tokens上进行了训练。该模型在继承MLA和DeepSeekMoE架构的基础上,开创性地采用了无辅助损失的负载均衡策略和多token预测训练目标,以提升性能。得益于FP8训练支持和细致的工程优化,其训练成本效益极高。后训练阶段成功地从DeepSeek-R1系列模型中蒸馏了推理能力。全面评估表明,DeepSeek-V3是当前最强的开源模型,性能可与GPT-4o和Claude-3.5-Sonnet等顶尖闭源模型相媲美。尽管性能强大,其全部训练(包括预训练、上下文扩展和后训练)仅需278.8万H800 GPU小时,保持了极高的经济性。
局限性:
1. 部署门槛:为保证高效推理,推荐的部署单元较大,可能对小型团队构成负担。
2. 推理速度:尽管端到端生成速度已是DeepSeek-V2的两倍以上,但仍有进一步提升的空间。
这些局限性有望随着更先进硬件的发展而自然得到解决。
未来方向:
1. 模型架构:持续研究和改进模型架构,以进一步提高训练和推理效率,并探索突破Transformer架构限制的可能性。
2. 训练数据:不断迭代训练数据的数量和质量,探索更多维度的训练信号来源。
3. 深度思考能力:通过扩展模型的推理长度和深度,持续探索和迭代其深度思考能力。
4. 模型评估:探索更全面、多维度的模型评估方法,以避免对固定基准的过度优化,从而更真实地评估模型能力。
实验验证。我们在两个不同规模的基线模型上,将我们的FP8混合精度框架与BF16训练进行了比较。小规模模型约160亿总参数,训练了1.33T tokens;大规模模型约2300亿总参数,训练了约0.9T tokens。如图10的训练曲线所示,得益于我们的高精度累加和细粒度量化策略,相对误差保持在0.25%以下。
块级量化的挑战。虽然我们的tile-wise细粒度量化有效减轻了特征异常值引入的误差,但它需要为激活量化进行不同的分组(前向1x128,后向128x1)。一个直接的策略是像量化模型权重一样,对所有张量应用128x128的块级量化。然而,实验表明,计算激活梯度的Dgrad操作对精度高度敏感。对激活梯度进行块级量化导致一个约160亿参数的MoE模型在训练约3000亿tokens后发散。我们推测,这是因为激活梯度在token之间高度不平衡,导致了与token相关的异常值,而这些异常值无法通过块级量化方法有效处理。
专家特化模式分析。我们记录了一个160亿参数的基于辅助损失的基线模型和一个无辅助损失模型在Pile测试集上的专家负载。如图10所示,无辅助损失模型在所有层上都倾向于表现出更强的专家特化模式。