Blog

DeepSeek-V4:百万上下文的工程答案

DeepSeek-V4 技术报告

百万上下文的工程答案

DeepSeek-V4 的重点不是单纯把上下文窗口拉长,而是把 长上下文的计算、缓存、训练和服务成本一起压下来。 换成论文里的原词,它是在为 test-time scaling 铺路: 模型在使用阶段读更多材料、产生更多 reasoning tokens、执行更长工具链时,仍然要能跑得动。 这也是它为什么反复讨论 CSA、HCA、KV cache、低精度和基础设施。

DeepSeek-V4-Pro 1.6T / 49B

总参数 / 每 token 激活参数

DeepSeek-V4-Flash 284B / 13B

更偏高性价比的版本

上下文目标 1M tokens

支撑 long-horizon 任务、长期 agent 和深度推理

1M 场景相对 V3.2 27% FLOPs

V4-Pro 单 token 推理 FLOPs 估计值

INPUT 长输入序列

文档、代码库、工具轨迹和历史推理都进入上下文。

LOCAL Sliding Window

最近 token 保留未压缩细节,处理指代和局部语法。

CSA 压缩后稀疏选择

每 4 个 token 左右压缩成块,再用 indexer 选 top-k。

HCA 重压缩全局视野

更大粒度压缩远处信息,保留低成本全局感。

MoE 专家网络

每个 token 只激活少量专家,容量大但单次计算受控。

OUTPUT 推理与工具调用

更长思考、更长工具链、更长文档任务变得可承受。

一个 query 到来时,历史上下文被拆成三种视野 近处保原文,远处先压缩,再把结果汇合。
t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16
SWA 近窗 raw

最近 token 不压缩,直接看原始 KV,保留指代、标点和局部语法。

t13 t14 t15 t16
CSA 检索 top-k

远处 token 先按块压缩,Lightning Indexer 只挑和当前 query 相关的块。

C1 C2 C3 C4
HCA 摘要 dense

更远内容被重压缩成少量全局摘要,在粗粒度 KV 上做 dense attention。

H1 H2 H3
局部细节 相关远文 全局背景 → Attention output → MoE
近处保细节 Sliding Window 负责保留最近 128 token 一类的局部细节。
远处检索 CSA 用轻量索引器找相关压缩块,不再全量扫描。
全局摘要 HCA 用更强压缩保留远距离背景,成本更低。

这篇报告的主线可以压成一句话: 模型要在使用时读更多、想更久、做更多轮工具调用,就必须先解决超长上下文的 attention 和 KV cache 成本。 这正是 test-time scaling 背后的成本账。

01

问题:推理阶段越来越贵

过去的大模型扩展主要发生在训练阶段:更大模型、更多数据、更长训练。 现在另一条线越来越重要:模型训练完以后,在回答时多花计算换更好结果。 论文把这条线称为 test-time scaling

多想

数学、代码、复杂规划会消耗更多 reasoning tokens。模型不是马上答,而是先分解、验证、修正。

step-by-step test-time scaling self-check

多试

同一个问题生成多个候选,再用测试、验证器或奖励模型挑选,能显著提升难题通过率。

Pass@k verifier

多查

agent 会搜索、读页面、运行代码、调试环境。每一步都产生新上下文,任务越长,历史越厚。

tool use long-horizon

普通长上下文的压力

如果每个新 token 都完整面对所有历史 token,序列越长,attention 计算和 KV cache 都会膨胀。 这会直接影响延迟、吞吐和显存。

短对话
长文档
长期 agent很高

V4 的切入点

不把所有历史都当作同等重要的原始 token。近处保留细节,远处先压缩,再按相关性取用。 这就是 CSA、HCA 和 sliding window 组合的直觉。

局部细节SWA
相关远文CSA
全局背景HCA
02

架构:不是推倒重来,而是改造关键瓶颈

V4 仍然保留 Transformer 主体,也继承 DeepSeek-V3 的 DeepSeekMoE 和 Multi-Token Prediction(MTP)。 新增或强化的关键部件,是 mHC、CSA/HCA 混合注意力和 Muon 优化器。

DeepSeekMoE

模型有大量专家,但每个 token 只路由到少数专家。V4 继续使用共享专家和路由专家, 并调整 affinity activation、负载均衡和早期 Hash routing。

MTP

Multi-Token Prediction 让模型训练时不仅预测下一个 token,也学习后续 token 的局部连续性。 V4 基本继承 V3 的设定。

mHC

残差流扩展成多条通道,再用受约束的矩阵混合。目标是让深层信息传播更丰富,但不让数值失控。

Muon

大部分模块用 Muon 更新。它对矩阵更新方向做近似正交化处理,论文认为这带来更快收敛和稳定性。

mHC:把残差连接变成受控的多通道混合

普通 residual 的局限

普通残差连接像一条旁路:输入绕过当前层,和输出相加。 它的好处是稳定、简单;局限是信息主要沿着一条 residual stream 向下传。

x
Block F(x)
+
x'

mHC 的做法

mHC 把 residual stream 扩成多条 lane。每一层前后都可以用矩阵把这些 lane 重新混合, 让不同通道交换信息;但这个矩阵被约束住,避免深层堆叠时信号无限放大。

input lanes h1 h2 h3 h4
M:双随机混合
.31 .18 .24 .27 .22 .35 .16 .27 .26 .21 .36 .17 .21 .26 .24 .29
mixed lanes h1' h2' h3' h4'

双随机约束:每行、每列的权重都归一。直觉上就是“可以重新分配信息,但总量不能随便变大”。 论文用 Sinkhorn-Knopp 把原始参数投影到这种受控矩阵上。

03

Hybrid Attention:百万上下文的核心机制

长上下文的主要成本来自 attention。V4 不是只选一种近似,而是把三种视野合起来: Compressed Sparse Attention(CSA)负责相关远文,Heavily Compressed Attention(HCA)负责粗粒度全局信息, Sliding Window Attention(SWA)负责最近细节。论文把这套组合称为 Hybrid Attention

CSA 的完整路径

CSA 先把 KV 沿序列维度压缩。论文配置里压缩率 m 为 4, 也就是大致每 4 个 token 形成一个压缩 KV entry。

t1t2t3t4 t5t6t7t8
压缩为
C1C2C3C4
Lightning Indexer 选 top-k
C2C4 近窗近窗
KV tokens compress top-k MQA

关键点

CSA 并不是简单摘要。它继承 DeepSeek Sparse Attention(DSA)的思想, 但先把 KV cache 沿序列维压缩,再训练 indexer query/key,用低成本给压缩块打分, 再选出和当前 query 最相关的 KV entry。最后的核心 attention 使用 shared key-value MQA, 并加上 grouped output projection 降低输出投影成本。

HCA 做得更狠

HCA 的压缩率 m' 远大于 CSA。论文配置里 m' 为 128, 也就是 128 个 token 压成一个 KV entry。压缩后不再做 top-k 稀疏选择, 而是在少量粗粒度 entry 上做 dense attention。

它牺牲一部分细节,换取极低成本的全局背景。可以把它看作“章节级摘要 attention”。

HCA 的视角

12...128 129...256
重压缩
H1H2H3
对粗块做 dense attention

远距离信息仍然可见,但 KV cache 和 FLOPs 明显下降。

为什么不能只靠压缩?

压缩会损失局部细节。语言建模里,最近 token 往往最关键: “它”“这个函数”“刚才失败的测试”通常都指向很近的上下文。

所以 V4 在 CSA/HCA 之外加入 sliding window branch,让 query 直接看到最近的未压缩 KV。

三层视野

SWA:最近 token 原样看,保证局部精度。

CSA:远处先压缩,再按相关性选择。

HCA:更远处看粗摘要,提供全局背景。

Partial RoPE

V4 只在部分维度上使用 RoPE,并对 attention output 做相应处理, 目的是让压缩 KV 既带位置信息,又不把绝对位置污染到 value 输出里。

Attention sink

普通 softmax 迫使 attention 总和为 1,好像每个 head 都必须看点什么。 attention sink 给 head 一个“少看或不看”的出口,长上下文中很有用。

低精度路径

KV 存储混用 BF16/FP8,CSA indexer 的 QK 路径用 FP4,并通过 QAT(Quantization-Aware Training)适配。 这些不是装饰,而是 1M 上下文服务成本的关键部分。

04

系统:把复杂架构变成可训练、可服务的模型

第 3 节的基础设施是整篇报告的骨架。没有这些工程,CSA/HCA、MoE、Muon、mHC 很难在万亿级模型和百万上下文里稳定运转。

Expert Parallelism:通信被计算盖住

MoE 的问题不是只会不会算,而是数据送不送得到

token 要被 dispatch 到专家所在 GPU,再 combine 回来。V4 把专家切成 wave, 让 dispatch、Linear-1、activation、Linear-2、combine 像流水线一样重叠。

Dispatch
GEMM
Combine

TileLang 与确定性 kernel

复杂模型如果落成几百个小 PyTorch 算子,会浪费调用开销和显存带宽。 V4 用 TileLang 写 fused kernels,还强调 batch-invariant 和 deterministic: 同一个 token 不应因为 batch 组合不同而产生 bit-level 差异。

这对调试 loss spike、对齐预训练/后训练/推理和定位硬件问题非常关键。

KV cache:V4 不能再用一种缓存结构打天下

Compressed cache

CSA/HCA 产生的压缩 KV,按 block 管理,体积小很多。

CSA main KV
CSA indexer KV
HCA KV

State cache

SWA 的最近窗口,以及还没凑够压缩块的尾部 token,要作为序列状态保存。

SWA recent KV
uncompressed tail
per-request state

On-disk cache

共享长前缀可以落盘复用,避免重复 prefill。SWA 可选择全存、周期 checkpoint 或不存。

prefix compressed KV
periodic SWA checkpoint
tail recompute

FP4 QAT

专家权重和 CSA indexer QK 路径使用 FP4 量化感知训练,降低显存和内存带宽压力。

Muon + ZeRO

Muon 需要完整矩阵更新,和 ZeRO 的切分天然冲突。V4 用混合 bucket 分配和冗余计算折中。

Tensor-level checkpoint

激活重计算细到张量级,由框架追踪最小重计算子图,在显存和计算之间做更精细取舍。

Contextual Parallelism

论文还专门讨论了 Contextual Parallelism for Long-Context Attention。 直觉上,百万 token 的上下文太长,不能只靠单张卡顺序处理;系统需要把长序列切到多张 GPU 上协同计算, 同时和 CSA/HCA 的压缩 KV 布局、通信调度、缓存管理配合起来。

05

预训练:让底座模型先学会处理长材料

V4-Flash 训练约 32T tokens,V4-Pro 训练约 33T tokens。 数据不只追求更多,还强调过滤低质量模板、加入长文档、多语言、数学、代码和 agentic 数据。

4K

先稳住基础

从较短序列开始,学习语言、知识、代码和基础推理。

16K

延长依赖

逐步适应更长文档结构,减少直接上 1M 的训练不稳定。

64K

引入稀疏

先 dense warmup,再预热 CSA 的 lightning indexer,避免一开始就选错远文。

1M

百万上下文

最终让模型原生处理超长上下文,而不只是推理时硬扩窗口。

Anticipatory Routing

MoE 训练容易出现 loss spike。论文观察到 spike 与 MoE outlier 和 routing 机制相关。 Anticipatory Routing 用历史参数提前算路由索引,把主干网络更新和路由更新解耦,降低震荡。

SwiGLU Clamping

对 SwiGLU 的 linear component 和 gate component 做范围限制,抑制异常大值。 作者承认这些技巧有效,但背后原理还需要更系统研究。

预训练评测的读法

Base model 评测显示 V4-Flash-Base 在更小激活参数下超过 V3.2-Base 多项指标, V4-Pro-Base 在知识、长上下文和多数推理/代码任务上进一步领先。 但这还不是最终聊天模型表现,真正的推理和 agent 能力要看后训练。

06

后训练:先训练专家,再合成统一模型

V4 的后训练主线是“specialists + OPD”。先针对数学、代码、agent、指令遵循等领域训练专家, 再用 On-Policy Distillation 把专家能力并入一个模型。

Non-think

快速响应

适合日常任务、低风险判断、简单问答。成本低,延迟低。

Think High

更长分析

适合复杂问题、规划、代码和数学。通过更多 reasoning tokens 换取准确率。

Think Max

最大推理预算

用于冲击高难任务。训练时使用更长上下文、更低长度惩罚和更强推理指令。

OPD:为什么不是简单混合所有专家权重
Teachers

多个专家

数学、代码、搜索、agent、写作等分别经过 SFT 和 RL。

Student

学生先行动

训练轨迹来自当前学生模型自己的生成,这就是 on-policy。

Logits

完整词表分布

不是只学老师选中的 token,而是学老师对整个词表的概率判断。

Reverse KL

对齐专家

学生在自己的轨迹上向相关专家靠近,减少多能力合并时的互相破坏。

Unified

统一模型

最终不需要运行多个专家模型,而是把能力压进同一个参数空间。

GRM:Generative Reward Model

对数学和代码,答案或测试能自动验证;但写作、开放分析和复杂指令很难只用标量奖励。 V4 使用 rubric-guided 数据和生成式奖励模型,让模型用自己的推理能力参与评价。

工具调用与长期状态

V4 设计了新的工具调用格式,并在工具场景中保留更多 thinking history。 长期修代码、长搜索和多轮 agent 都需要这种跨轮状态。

Quick Instruction 解决什么问题?

搜索触发、搜索 query 生成、领域判断、URL 是否读取等辅助任务,通常需要额外小模型。 V4 用特殊 token 让同一个模型复用已有 KV cache 完成这些任务,减少重复 prefill 和首 token 延迟。

为什么 rollout 要做 token 级 WAL?

RL/OPD 会生成大量样本,集群任务可能被抢占。每生成一个 token 就写日志, 可以中断后继续解码。否则从头生成会让短回答更容易幸存,产生长度偏差。

DSec 沙箱为什么重要?

agent 训练和评测不只是文字生成,还要真实运行命令、改文件、跑测试。 DSec 提供 function call、container、microVM、fullVM 等执行环境,支持大规模并发和可恢复轨迹。

07

评测:分数要和成本一起看

V4-Pro-Max 在开放模型中表现很强,尤其是推理、代码、长上下文和 agent。 但 Max 模式通常对应更多推理 token 和更高 test-time compute,所以不能只看单个分数。

维度 论文中的主要结论 阅读时要注意
知识 V4-Pro-Max 在开放模型中显著提升,SimpleQA 等指标表现突出。 部分知识任务仍落后 Gemini-3.1-Pro 等闭源前沿模型。
推理 / 代码 数学、代码竞赛和形式化推理表现强,Flash-Max 也有高性价比。 高分往往来自更长推理预算;需要和延迟、成本同时衡量。
1M 上下文 MRCR、CorpusQA 等长上下文任务显示 V4 在百万 token 下仍有强检索能力。 真实业务中还要看共享前缀、缓存命中、磁盘 IO 和交互延迟。
Agent Terminal Bench、SWE、BrowseComp、MCP 工具类评测都有竞争力。 内部评测占比不小,可复现性和外部任务迁移仍需继续观察。
08

局限:路线成立,但系统还很复杂

结论部分承认,V4 为了追求超长上下文效率,保留了很多已经验证有效的组件和技巧。 它们组合后很强,但架构复杂度也明显上升。

架构需要做减法

CSA、HCA、SWA、mHC、MoE、MTP、Muon、FP4、复杂 KV cache 共同工作,理解和复现门槛高。

稳定性仍有经验成分

Anticipatory Routing 和 SwiGLU Clamping 有效,但为什么、何时有效,还需要更原则化的解释。

长上下文还要更低延迟

百万 token 不只是能跑,还要让用户等得起、服务成本扛得住、agent 多轮交互不拖慢。

未来方向

作者提到会继续探索新的稀疏性、更低延迟的长上下文系统、长期多轮 agent、多模态能力, 以及更好的数据筛选和合成策略。

术语速查

把这些概念串起来,整篇报告的结构就清楚了。

test-time scaling

模型参数不变,在回答阶段多花计算:多想、多试、多查、多验证。它是论文开头提出的核心动机。

long-horizon / agentic

需要跨很多步骤完成的任务,例如长时间搜索、修代码、调用工具、保存状态再继续。

KV cache

生成时保存历史 token 的 key/value。上下文越长,缓存越大。

Hybrid Attention

V4 的混合注意力:CSA 管相关远文,HCA 管粗粒度全局,SWA 管最近细节。

CSA

Compressed Sparse Attention。压缩 KV 后,用 indexer 选择相关块。

DSA

DeepSeek Sparse Attention。CSA 延续它的稀疏选择思想,但先引入序列维 KV 压缩。

HCA

Heavily Compressed Attention。更大粒度压缩远处上下文,再做 dense attention。

SWA

Sliding Window Attention。最近窗口里的 token 不压缩,保留局部语法和指代细节。

mHC

Manifold-Constrained Hyper-Connections。受控的多通道残差混合。

OPD

On-Policy Distillation。学生模型在自己的轨迹上向多个专家老师学习。

GRM

Generative Reward Model。用生成式模型按 rubric 评价开放式回答,而不只输出一个标量分数。

Contextual Parallelism

面向长上下文 attention 的并行策略,把超长序列计算分摊到多张 GPU 上。

最后记住这 5 点

  1. V4 的核心是服务 test-time scaling。 它想让 million-token context 从能力展示走向可服务。
  2. CSA/HCA/SWA 是长上下文组合拳。 近处保细节,远处检索,更远处看摘要。
  3. MoE 给容量,系统工程给落地。 通信重叠、TileLang、FP4、KV cache 都是主线的一部分。
  4. 后训练先分专家,再用 OPD 合并。 这样比简单混合更容易保住各领域能力。
  5. V4 仍然是复杂系统。 架构简化、稳定性理论和低延迟部署,都是后续关键问题。