< img id=”wx_img” src=” width=”400″ height=”400″>
技术报告发布一周,社区仍在拆解其中的工程哲学。
DeepSeek V4技术报告,还在被深挖。
常看常新的那种——一个引起关注的新发现是,V4在工程上为了保留核心设计「batch invariance」,都有点不计代价了。
怎么说?
DeepSeek V4同时做到了「超长上下文」「复杂后训练/推理管线」「自研高性能kernel栈」这几件很容易打架的事,而背后的关键,正是batch invariance(批次不变性)。
但batch invariance并非没有代价,甚至代价还挺大:GPU利用率、推理速度下降,工程复杂度还更高了……
所以,为什么DeepSeek V4会对这一设计如此执着?我们具体来拆析一下。
先来看看batch invariance的定义:
对于同一个token,无论它在批次里排第几、无论批次多大、无论和谁一起批处理,输出都能保持逐比特完全一致。
论文提到,其核心设计目的,是确保预训练、后训练和推理全流程的可复现性,保证各个环节之间的对齐。
这样做的好处是,首先,能保证线上推理结果稳定。
线上服务会动态batching,同一个用户请求,今天可能和A、B请求拼在一起,明天可能和C、D请求拼在一起。
如果没有batch invariance,同样的提示词就可能因为batch组合不同、底层kernel归约顺序不同等因素,被放大成完全不同的答案。
也就是说,batch invariance能让同一个输入,尽量得到严格一致的输出。
其次,保证预训练、后训练、推理之间的对齐。
DeepSeek V4有预训练、SFT、RL、on-policy distillation、推理服务等多条链路。
这就导致了一个问题:模型行为变化到底是来自数据、RL、蒸馏、量化,还是来自batch shape/ kernel路径变化?
有了batch invariance,工程团队更容易判断,是不是batch组织方式改变了数值结果。
当问题能够被准确定位,异常也就更容易复现,提高了可复现性和可调试性。
另外,batch invariance也是复杂上下文系统的底座之一。
V4同时用了长上下文attention、压缩KV、稀疏注意力、MoE、FP4/FP8、Muon、mHC、自研 kernel等很多复杂组件。
组件越多,数值不确定性的来源越多。batch invariance相当于给底层执行系统加了一条硬约束:可以优化性能,但不能因为batch变了,就让同一个token的结果变了。
batch invariance还能让后训练更稳定。
RL、蒸馏、长链推理对细微差异很敏感。一点点数值差异,可能改变采样路径;采样路径一变,reward、teacher-student对齐、训练信号都会变。
batch invariance能够减少随机数值扰动,让模型行为更可控。
总结一下,就是batch invariance是DeepSeek V4的底层工程稳定器,可以在在极复杂的长上下文训练、后训练和推理系统里,保证同一输入的数值行为不被batch组织、kernel调度和归约顺序污染,实现可复现、可调试、可对齐、可稳定部署的工程确定性。
这样看来,batch invariance确实很重要。
但,就像前面说的,代价不少。
为了batch invariance,V4不能随便使用一些常见性能优化了,比如split-KV、split-K。
在attention里,split-KV会把单条序列的注意力计算分摊到多个SM上,以提高负载均衡和GPU利用率。但这种做法会改变并行归约路径,难以保证同一个token在不同batch组织方式下的逐比特一致性。
在GEMM里,split-K的做法是把矩阵乘法的归约维度K切开并行计算。多路并行求和之后还要再归约,而浮点加法的归约顺序一变,最终结果的bi 就可能不同,因此也和batch invariance存在冲突。
为此,DeepSeek在attention侧提出了dual-kernel:为同一个注意力解码任务准备两套计算程序,分别处理“GPU吃得满”和“GPU吃不满”的情况,同时保证两套程序算出来的结果逐比特一致。
矩阵乘法方面,V4在大多数场景中放弃split-K,转而做更受约束的 batch-invariant GEMM。他们用自研DeepGEMM替代了通用的cuBLAS。
这些都导致了工程复杂度的明显上升:很多原本可以交给通用库或常规优化策略的工作,都必须由自研kernel和更严格的计算路径来承担。
如此种种,简单总结起来意味着DeepSeek V4在以下几个方面做了牺牲:
- GPU 利用率(波前量化问题)
- 小批量/短序列速度
- 原生算子兼容性
- 部分稀疏加速的自由度
以换取:
- 训练/推理/RL三阶段逐比特可复现
- 长上下文、Agent、RL训练稳定度
- 多机多卡跑出来的结果完全对齐
DeepSeek V4发布了这么些天,但这个技术报告属实是越挖越有。
看点还包括,把10个以上专家教师模型蒸馏成一个学生模型等等。
并且每个问题背后都有坚实的数学解释。
Hugging Face的Transformers负责人Arthur Zucker就感慨:
把数月乃至数年的努力全部免费公开,让任何人都能受益,这是真正的GOAT(Greatest of All Times)。
从这一系列工程取舍中可以看到,当前大模型研发正面临一个关键抉择:是追求极致性能、牺牲可复现性,还是像DeepSeek V4这样用部分效率换取确定性。batch invariance的坚持意味着,当系统复杂度上升到一定程度,数值稳定性可能比吞吐率更值得优先保障。这种思路对于需要长链推理、多轮Agent交互的场景尤其具有启发意义——毕竟,不可复现的错误几乎无法调试,而可复现的次优结果至少能持续优化。