type
Post
status
Published
date
May 13, 2026
slug
deepseek-v4
summary
deepseek v4设计思路 | CSA | HCA | SWA | mHC | Muon
tags
实用
category
技术分享
titleIcon
password
icon
insider
💫
deepseek v4设计思路 | CSA | HCA | SWA | mHC | Muon

参考源

混合注意力架构

注意力机制的计算开销与KV Cache存储瓶颈

注意力计算机制

  • AI阅读用户输入的过程不同于人线性扫一遍,AI扫到每一个词都需要回看该词以前的所有词(Causal Mask + Attention),以”The cat didn't cross the street because it was too tired”为例,当模型读到“it”时,向回看之前所有的词,逐一比对以弄清楚指的是cat还是street。

机制带来的计算开销

  • 以上述机制,如果在第10万个词,该词本身就需要进行10万次比对,如果推到1M Token,最后一词比对次数也会变到1M,考虑到每个词都需要与前面所有比较,计算次数会是Token数平方的关系。

机制带来的存储开销

  • 在推理阶段,由于模型参数本身是冻结不变的,多次对话时用户旧输入作为出现过的前缀可以通过KV Cache复用结果避开重复运算,但中间结果的存储在1M Token规模下占用极大。

[DeepSeek]混合注意力架构(Hybrid Attention Architecture)

理念与效果

  • 模型从一开始就不需要去看所有的东西,以看书为喻,人不会反复重读看过的每一页,而是会略读、总结,并在需要时才回翻。对应下方SWA - 书的最后几页,最直接原始的上下文;HCA - 前序章节的宏观总结;CSA - 过往的highlight标注,快速定位特定需要的细节
  • 效果展示(3.7x smaller单token计算量 9.5x smaller KV Cache大小)
notion image

具体设计

  • 压缩稀疏注意力(Compressed Sparse Attention, CSA)
    • 分组压缩:一般而言每个Token单独存储,CSA则将4个为一组合并压缩成一个单一的、更密集的表示形式,将序列长度缩小了4倍,大幅减少了比对次数和内存占用。
    • 稀疏检索:当模型处理新Token时,不扫描整个历史记录,转而使用Lightning Indexer,快速对所有压缩块进行评分,仅仅挑选出与当前上下文最相关的一小部分,其余的完全忽略。
  • 重度压缩注意力(Heavily Compressed Attention, HCA)
    • 有时模型需要对之前的全部内容有一个宏观的理解。HCA采用更激进的压缩方式,将128个Token压缩成一个表示。通过过往的部分细节丢失换更小的序列长度。
  • 滑动窗口注意力(Sliding Window Attention, SWA)
    • 为了弥补HCA丢失的近期细节,引入了SWA,用于持续追踪最近处理的Token(例如最近的128个词),逐字保留,不进行任何压缩(Full exact fidelity)。

信号稳定性

信号稳定问题与一般处理方法

  • 单次乘法x0.1会造成一次数量级上变化,在数十层网络堆叠成的模型中,可能导致严重的数值爆炸与损失函数发散,导致整个训练过程崩溃。
  • 针对性的方法一般包括:残差连接(Residual connections),让原信号同时跳过某些层以保持稳定。超连接(Hyper-connections),加宽了残差的通道数。
  • 当参数规模足够大时,标准的超连接也不足以解决问题。

流形约束超连接(Manifold-Constrained Hyper-Connections, mHC)

设计思想

  • 在信号残差传递过程中通过数学性质约束总信号量。

具体实现

  • 双重随机矩阵(Doubly Stochastic Matrices):残差流矩阵必须符合每一行相加等于1,每一列相加等于1。
  • Sinkhorn-Knopp算法:在信号被每一层处理之前运行一个快速的行列归一化序列(大约20次迭代),直到矩阵完美满足约束条件。
  • 底层算子优化:将上述算法涉及的多个操作合并为单一指令,将占比控在了整体运行时间的6.7%。

Muon 优化器(Muon Optimizer)

设计思路

  • 类似HNSW的向量检索思路,两阶段先粗粒度调后细粒度调

具体实现

  • 粗调:大幅度、粗略的调整,激进地将系统推向收敛的方向。
  • 微调:微小、精确的调整来稳定系统,精准找到收敛点。

跨硬件通信

通信延迟

  • 训练中GPU Rack间需要通过线缆传输数据,如果等待整批数据传输完成再计算可能导致GPU计算时间窗口出现空白

数据编排

  • 编排数据传输流水线:不再等待一批数据全部到达后再开始计算,直接将数据切分成小的、连续的波次(Sequential waves)。
  • 流水线掩盖延迟:当Wave 1的数据到达时,GPU满载计算,在GPU计算Wave 1的同时,Wave 2的数据在网络线缆中传输。以流水线方式(同时间不同组件可以并行)将计算与通信在时间上重叠。
  • 形式化验证(Z3 SMT Solver):为了在微观并发操作中防止出现千分之一概率的致命错误,通过TileLang的定制语言,引入Z3 SMT 求解器(Z3 SMT solver)。用数学逻辑证明代码正确性。

训练稳定性策略

基本思路

  • 循序渐进,不是一蹴而就

具体设计

课程训练(Curriculum Training)

  • 学习窗口循序渐进:训练初始阶段,模型只能看到短序列(约4,000Tokens),仅够它学习基础的语法和局部结构。随着训练的稳定,上下文窗口被逐渐拉长至 16K、64K,最终一路扩展到完整的1M tokens window。在学习思考过程中,缓慢扩大工作记忆容量。

预期路由(Anticipatory Routing)

  • 应对训练崩溃(损失尖峰):在1M压力下模型偶尔出现“损失尖峰(Loss spike)”导致崩溃。如果停止训练,回滚到之前的存档点重新来过,既昂贵又不治本。
  • 预期路由(Anticipatory Routing):以股票市场为例,每日的股价波动是充满噪音和混乱的,但如果移动平均线(基于历史数据的平滑曲线),即潜在趋势是明了的。
  • 自我稳定机制:系统持续监控内部的统计数据,侦测到损失尖峰的早期预兆时激活预期路由,利用较早时间点(稍旧但更稳定)的参数快照来稳定信号。等稳定后交还控制权。这使得模型在训练期间具备了自动的自我稳定能力。
 
[IN PROGRESS]Video精读 - LLM服务的幕后[IN ACTIVE PROGRESS]CC源码与Codex源码阅读
Loading...
2024-2026CamelliaV.

CamelliaV | Java;前端;AI;ACGN;