Browse this library

Chinese source article

2 · 架构与算法

梳理 DeepSeek 从路由均衡, 稀疏注意力和条件记忆到生成式奖励与投机解码的方法论文.

View original Markdown ↗

旗舰模型报告呈现的是一组已经协同工作的机制, 方法论文则把其中一个变量单独展开. DeepSeek 的算法研究集中在三个持续出现的约束: 模型容量扩大后怎样控制每个 token 的计算与状态, 强化学习怎样获得便宜而可靠的训练信号, 推理吞吐怎样在保持目标分布时提升. 本章各篇论文围绕这些约束给出消融, 因而比版本报告更适合追踪设计选择的来由.

阅读方法论文时, 应先确认它替换了基线系统中的哪一部分. 路由算法改变 MoE 的专家分配, NSA 改变注意力读取上下文的方式, Engram 增加参数化主干之外的查找记忆, GRM 改变奖励生成, DSpark 改变解码执行而不改变目标模型. 作用位置不同, 指标与代价也不同, 不能只按最终准确率横向排序.

把这些工作放在一张坐标里, 横轴是它改动模型生命周期的哪个阶段: 预训练架构、专项微调、奖励构造或部署解码. 纵轴是它主要优化的量: 激活计算、KV读取、残差信号、静态知识容量、专家负载、可训练参数、反馈可靠性或串行解码步数. 同一篇论文可能同时移动两项成本, 但一定有一个直接作用点. 先找作用点, 再谈它与旗舰版本的关系, 可以少掉很多牵强的“技术路线”.

还有一条必须守住的证据边界. 方法论文在特定规模、数据和kernel上验证有效, 说明机制成立到那组实验为止; 旗舰技术报告或官方实现明确写入, 才能说它进入了某个版本. 时间接近、作者重合或概念相似都不够. 本章会说明哪些工作后来能在模型报告和官方仓库中找到对应物, 其余工作保留为独立研究结果.

从原理上看, 这些方法分别回答四类问题. 「算谁」由 MoE 路由和 ESFT 决定; 「读什么」由 NSA 与 Engram 决定; 「层间怎样传状态」由 mHC 决定; 「用什么信号训练、怎样把生成跑得更快」则落到 CodeI/O、GRM 与 DSpark. 四类问题能够组合, 评价指标却不能互换. 负载均衡好不代表语言损失更低, 稀疏率高不代表墙钟更快, 奖励判断更长也不代表更可靠, 接受率高也不必然带来更低延迟.

1. 条件计算的路由与专精

1.1. 无辅助损失的负载均衡

Auxiliary-Loss-Free Load Balancing 处理 MoE 路由中的基本冲突. 传统做法加入辅助均衡损失, 让各专家接收相近数量的 token; 但辅助目标会与语言建模目标共同反向传播, 权重过大会损害模型能力, 过小又压不住路由偏斜. 论文改用随负载动态更新的专家偏置, 将均衡控制从主损失中分离.

这项改动的关键是把「控制量」和「学习量」分开. 路由分数仍从模型表示产生, 专家偏置根据近期负载调整, 主模型只优化语言目标. 代价是系统必须维护稳定的负载统计和偏置更新节奏. 它与 V3 报告及 DeepEP 的关系很直接: 算法减少专家拥塞, 通信库负责高效执行已经形成的 token 分配.

这里的反例是“负载完全平均就一定最好”. 专家收到相同token数, 只说明设备工作量接近, 不说明路由选择最符合语义; 过强均衡会把token推给次优专家. 论文真正要解决的是在较少干扰主目标的前提下控制拥塞, 因此需要同时看负载波动、语言模型损失和专家通信, 不能只看一张均匀直方图.

1.2. ESFT 利用已有专家结构

ESFT 研究 MoE 模型的参数高效微调. 方法依据目标领域数据上的专家激活频率或路由亲和度, 选择部分专家更新, 其余参数保持冻结. 这样可以降低训练显存和通信开销, 也减少对无关专家的扰动.

专家选择并不等同于稳定的语义分区. 路由分布会随层, token 和数据集变化, 因而选择准则与覆盖比例是实验核心. 将 ESFT 与 DeepSeekMoE 合读, 可以区分预训练阶段的容量组织和下游阶段的参数更新: 前者形成条件计算结构, 后者利用结构缩小可训练集合.

ESFT优化的是「更新哪些参数」, 不改变基础模型每次前向如何路由token. 选择少量专家能够降低梯度、优化器状态和通信成本, 也可能漏掉目标领域实际依赖的专家. 随机选相同参数量、按激活频率选择和全参数微调之间的对照, 比“只训练了多少比例”更能说明专家结构是否真的提供信息.

2. 上下文读取从压缩走向稀疏

2.1. NSA 的分层选择

Native Sparse Attention 面向长上下文训练和推理, 将注意力读取拆成压缩, 选择与局部窗口等路径. 压缩路径保留全局概况, 选择路径取回与当前查询更相关的块, 局部路径保证邻近 token 的细节. 这些路径共同限制实际参与注意力计算的键值数量.

NSA 的贡献不只在稀疏模式, 还包括面向训练的可实现性. 稀疏索引, 块大小和 kernel 布局必须配合, 否则理论计算量下降未必转化为墙钟时间改善. 阅读实验时应同时看长上下文质量, 训练吞吐和解码阶段开销. V3.2 中的稀疏注意力可作为模型级应用对照.

NSA改动的是注意力的邻接图. 压缩分支给每个query保留低分辨率全局视野, 选择分支补回少量高分辨率块, 窗口分支承担局部连续性. 三者缺一时会出现不同失败: 只有窗口看不到远程证据, 只有选择容易在训练早期漏掉关键块, 只有压缩会损失细节. 因此消融要看质量、选块召回与实际kernel成本三者.

官方 DeepSelect 与 FlashMLA 后来分别公开了DSA使用的Top-K和稀疏attention执行路径, 这为“索引成本是否兑现”提供了实现证据. 它能支撑对应版本的kernel能力, 不能反向证明NSA论文里的每一种分支设计都被后续旗舰原样采用.

2.2. Engram 增加条件记忆

Engram 将部分常见局部模式交给确定性 N-gram 寻址表. 输入片段经过哈希定位记忆项, 查得的向量再并入网络表示. 这种设计把一部分知识容量从每 token 都参与计算的参数中移到条件读取的存储中, 形成计算与容量的新分配方式.

查表记忆的收益依赖命中分布, 哈希冲突, 内存层级和数据覆盖. 高频短语容易受益, 需要组合推理的新模式仍要依靠主干网络. Engram 与 MoE 都属于条件激活, 但选择对象不同: MoE 路由到可计算的参数子网, Engram 寻址到已存储的向量条目. 合读两者有助于理解“稀疏容量”并非单一架构.

Engram官方仓库把它称为与条件计算互补的「条件记忆」, 并在等参数、等FLOPs设置下比较容量分配. 确定性寻址接近 O(1)O(1), 但大表放到主机内存后仍要付出数据搬运和命中延迟. 它优化的是常见模式的存取方式, 并没有让网络获得任意长期记忆; 未见过的组合仍依赖神经主干完成泛化.

2.3. mHC 控制跨层混合

mHC 研究超连接带来的表示混合与训练稳定性. 多条残差流可以提高网络的信息交换能力, 但无约束的混合矩阵会改变信号尺度, 使深层训练更难控制. mHC 将混合映射约束在具有稳定性质的矩阵集合上, 在增加连接自由度的同时限制数值漂移.

这篇论文适合与归一化和残差结构一起读, 关注层与层之间怎样传递和组合状态. 评估时除了最终损失与任务成绩, 还要看深度扩大后的稳定性、额外状态带来的显存开销, 以及混合计算能否被高效实现.

mHC处理同一token跨层流动的残差状态, 与token之间的attention属于不同轴. 多条残差流增加可学习的混合自由度, 双随机约束则限制混合矩阵持续放大或压缩信号. 把它归入“更强注意力”会弄错作用层. 即使后续模型采用类似连接, 也要由对应技术报告或实现确认, 不能仅凭发布时间推断.

3. 奖励与可验证训练信号

3.1. CodeI/O 从执行关系构造数据

CodeI/O 使用代码的输入输出关系作为训练信号. 可执行程序能够生成大量输入与对应输出, 模型既可以从程序预测结果, 也可以从示例关系推断程序行为. 这种数据把自然语言描述之外的执行语义带入训练, 并借助运行结果进行自动检查.

自动执行降低了标注成本, 也引入运行环境, 测试覆盖和程序质量约束. 一个程序通过有限样例, 不代表模型学到了完整语义; 随机输入的分布也会改变任务难度. 因此 CodeI/O 应与代码沙箱和 Coder 系列合读: 数据方法决定生成什么训练对, 基础设施决定能否安全而大规模地执行验证.

CodeI/O改动的是「训练样本怎样构造」, 没有直接替换Transformer层. 从程序生成输入输出对, 可以扩大有自动检查的监督; 若测试输入太窄, 模型可能记住表面对应而没有掌握程序语义. 评测需要加入分布外输入、等价程序和反例, 并把执行失败、超时与错误输出分开.

3.2. GRM 让奖励模型进行生成式评审

DeepSeek-GRM 将奖励判断改写为生成过程. 模型先生成评价原则或批判内容, 再依据这些内容给出判断; 多次采样还可以在 TestingTime 汇总, 用额外计算提高奖励可靠性. 相比直接输出一个标量, 生成轨迹提供了更丰富的条件信息.

生成式奖励扩大了任务覆盖面, 也把奖励判断变成一项新的推理负载. 每个候选回答需要额外 token, 多采样会继续放大推理开销, 评价原则本身还可能出现偏差或相互冲突. 这项方法适合与 R1 的规则奖励对照: 规则奖励便宜且精确, 但覆盖面有限; 学习式生成奖励能够处理开放问题, 同时需要校准与鲁棒性检验.

GRM优化的是奖励估计, 最终语言模型能否受益还隔着数据分布和RL训练. 更长的批判文本可能提高可解释性, 也可能只是增加自洽措辞. 与人工偏好、可验证任务和对抗样本比较, 才能判断生成式评审是否真的降低误判; 测试时多采样的收益也要和额外token成本一起报告.

4. 解码阶段的计算重排

4.1. DSpark 的投机解码框架

DSpark 面向投机解码的研究和部署. 投机解码让较便宜的草稿过程先提出若干 token, 再由目标模型并行验证; 被接受的 token 减少了目标模型逐步解码次数. 最终分布保持目标模型定义, 加速取决于草稿成本, 接受率和验证批次之间的平衡.

框架价值在于统一不同草稿策略, 缓存管理与验证流程. 单看接受率不足以判断端到端收益, 因为较复杂的草稿模型可能用更多时间换来更高接受率. 评估需要同时报告延迟, 吞吐, batch 条件, 上下文长度和硬件. DSpark 与 FlashMLA 等 kernel 优化作用在不同层次: 前者减少串行解码步数, 后者降低每一步注意力执行成本.

投机解码的正确性依赖验证规则保持目标模型分布. 在这个约束内, 核心交换是草稿成本、一次提议长度和接受率. 草稿过弱会频繁拒绝, 草稿过强又吃掉节省的计算; batch增大后, 并行验证的优势也会变化. DSpark提供研究与实现框架, 不等于任何草稿策略都能获得相同加速.

4.2. 从机制论文回到模型和系统

本章的方法可按模型生命周期定位. mHC, NSA, Engram 和负载均衡进入架构与预训练阶段; ESFT 处理下游微调; CodeI/O 和 GRM改变训练数据或奖励; DSpark 作用于部署解码. 确认位置以后, 才能选择正确的上下游材料与评测指标.

还可以按“改变模型函数”与“保持目标函数重排计算”区分. NSA、mHC、Engram和路由规则会改变模型内部函数, 需要重新训练并验证质量; ESFT改变哪些参数被更新; CodeI/O与GRM改变学习信号; 严格投机解码在验证正确时保持目标分布, 主要评估端到端速度. 这条边界比把所有论文统一叫作效率优化更准确.

不同方法也有不同的反例入口. NSA需要面对分散的多证据和选择器漏召回, Engram需要面对低频组合与哈希冲突, mHC需要证明深层稳定性收益能够覆盖多流状态成本, 负载均衡要防止“平均负载、错误专家”, ESFT要防止目标领域覆盖不足. CodeI/O可能被有限测试样例诱导, GRM可能生成看似完整却判断错误的评语, DSpark则可能因低接受率和高草稿成本失去加速. 反例与平均成绩一起看, 才能划出适用范围.

旗舰版本的连接证据分成三档. 技术报告明确列入并给出实验, 可以说“采用”; 官方仓库提供对应执行路径, 可以说“存在公开实现”; 只有独立方法论文时, 只能说它探索了某种可能. 这套措辞区分很重要, 因为后来公开的kernel、接口或相似结构, 无法自动证明早期训练已经使用.

共同问题坐标最终落到三类量: 质量指标记录目标函数和任务是否改善, 计算指标记录激活FLOPs与串行步骤, 状态指标记录KV、残差流、记忆表和优化器占用. 通信与存储是后两类指标在集群上的物理表现. 一项方法若只报告其中一类, 结论就停在对应层级, 不能替它补出端到端收益.

还要检查优化量有没有被转移. MoE降低单token激活参数, 会增加专家通信; 稀疏注意力减少KV读取, 会增加索引和不规则kernel; Engram扩大静态容量, 会增加内存层级压力; GRM提高奖励的表达能力, 会增加评审token; 投机解码减少目标模型串行步数, 会增加草稿与验证. 转移后的成本若没有进入实验, “更高效”只能理解为局部结论.

这些方法无需排成一条演进序列. 选定一个约束, 沿模型函数、训练信号和物理执行来回核对, 既能看见它们真正共享的问题, 也能避免把独立论文的好结果提前写进旗舰版本历史.

一条紧凑的阅读路线可以从 DeepSeekMoE 与 V3 进入负载均衡和 ESFT; 沿 V2 的 MLA 进入 NSA 与 Engram; 沿 DeepSeekMath、R1 进入 CodeI/O 与 GRM; DSpark则同第四章的推理 kernel 对照. 这种顺序把机制的原始实验, 旗舰模型中的组合效果与工程实现连接起来, 同时保留各论文的适用边界.