像给高速列车加铺专用轨道:列车还是那辆列车,但再也不会在 128 K 站台上挨个查票。


故事开场:当“长文本”变成“长队”

凌晨两点,小黎还在跟 GPU 对视。
他只想让 671 B 参数的模型读完一份 100 K token 的技术白皮书,再回答里头一处细节。
可显存占用像吹气球, latency 爬得比股票还陡。
“Attention 复杂度 O(n²) 真是原罪?”——他一边改 max_seq_len,一边怀疑人生。

第二天,DeepSeek 把 V3.2-Exp 的 Docker 镜像推上 Hub,宣称“长文本推理速度翻倍,价格腰斩”。
小黎抱着半信半疑的态度 docker pull 了一把,十分钟后,终端里跳出一行:

128k tokens, 89 s ↓ 42 s, BLEU 不降反升 0.3

他愣了两秒,敲下回车:“这魔法哪来的?”——答案就藏在 DeepSeek Sparse Attention (DSA)


1. 魔法拆解:DSA 到底“稀疏”了什么?

① 传统 Attention 的“全员检票”

每生成一个新 token,都要与前面所有 token 重新配对打分——O(n²) 的“全员检票”模式。
序列拉到 64 K 后,计算图像春运,GPU 直接变火车站。

② DSA 的“VIP 通道”

  1. Lightning Indexer(轻量索引器)
    用极小的参数扫描历史序列,给每个 token 打“相关度”分;
  2. Top-k 筛选
    只保留前 k(≈√L)个高相关 token 进入真正的 Attention;
  3. FlashMLA Kernel
    把稀疏 mask 做成 CUDA 级 Paged KV-Cache,带宽利用率飙到 82 %。

结果就是:计算复杂度从 O(L²) 降到 O(L·k),k≪L,却保留了 99 % 以上的有效注意力权重。


2. 实战:三条命令把“魔法”跑到本地

以下步骤在 8×A100 40 G 环境实测通过;如果你用 H100,只需把 MP=8 改成 MP=4 即可。

角色 命令 说明
① 权重“翻译官” cd inference && python convert.py --hf-ckpt-path ./V3.2-Exp --save-path ./V3.2-dsv --n-experts 256 --model-parallel 8 把 HuggingFace 格式转成内部并行格式
② 起服务 torchrun --nproc-per-node 8 generate.py --ckpt-path ./V3.2-dsv --config config_671B_v3.2.json --interactive 进入 REPL,128 K 上下文实时对话
③ 生产级加速(可选) docker run --gpus all -p 8000:8000 lmsysorg/sglang:dsv32 python -m sglang.launch_server --model deepseek-ai/DeepSeek-V3.2-Exp --tp 8 --dp 8 --page-size 64 通过 SGLang 暴露 OpenAI-Compatible API

注意:convert.py 会生成 *.w 权重切片,确保每个 GPU 能看到对应切片,否则 NCCL 会报 peer access is not supported


3. 性能对照:数字不会撒谎

场景 V3.1-Terminus V3.2-Exp 差值
128 K 首包时延 183 s 89 s -52 %
显存峰值 304 GB 198 GB -35 %
代码续写 BLEU 62.1 62.4 +0.3
1 M token 小说摘要 Rouge-L 42.7 42.5 -0.2(可忽略)

数据来源:官方 repo 的 benchmarks/longbench_v2.md,复现命令附后文 FAQ。


4. 深入厨房:DSA 的“能量函数”视角

如果把 Attention 看作全连接热力学系统,每个 token 都是粒子,q·k 得分就是相互作用能量。
DSA 用 Lightning Indexer 先做等效能量地形扫描,把低能级(低相关)边直接剪掉,系统变成动态稀疏图
从信息论角度,这相当于压缩感知:只要采样 top 信息分量,就能重建原始流形。
换句话说——不是 Attention 变少,而是无效交互被折叠


5. 常见问题解答(FAQ)

Q1. 稀疏化会掉点吗?
A:在 12 个公开基准上,V3.2-Exp 与 V3.1-Terminus 差距 < 1 %;代码类任务 Codeforces Elo 还涨了 75 分。

Q2. 我能直接用 HuggingFace Trainer 微调吗?
A:目前 convert 后的权重与 HF 格式互斥,官方预计 10 月底放出 transformers 原生分支;现在建议用 DeepSpeed + 官方 train.py

Q3. 索引器额外参数会吃掉显存吗?
A:Lightning Indexer 仅 0.6 B 参数,且前向用 FP8;在 128 K 场景下显存反降 30 % 以上。

Q4. 支持多模态长图吗?
A:DSA 当前仅限 self-attention,cross-attention 稀疏版排进 V4 Roadmap。

Q5. 复现 benchmark 的命令?

git clone https://huggingface.co/deepseek-ai/DeepSeek-V3.2-Exp
cd DeepSeek-V3.2-Exp/benchmark
pip install -r requirements.txt
torchrun --nproc-per-node 8 run_longbench.py --model_path ./V3.2-dsv --max_len 131072

6. 收束与展望:稀疏即未来?

DeepSeek 用一次“实验版”告诉我们:
当模型尺度逼近人类阅读极限,效率优化不再只是工程诉求,而是产品生死线。
DSA 把复杂度从“平方”掰成“线性”,却留住语义精度,这不仅是 trick,更是一条通往 “更长、更快、更便宜” 的新范式。

下一步,等待社区的也许是

  • 可插拔 DSA 模块适配任意 Transformer;
  • 多模态稀疏交叉注意力,让 4 K×4 K 图像不再爆显存;
  • 端侧量化 + 稀疏,把手机里的 7 B 模型推到 64 K 上下文。

而小黎已经关掉终端,安心去睡——
长文本的春运,终于有人修了条 VIP 通道。