像给高速列车加铺专用轨道:列车还是那辆列车,但再也不会在 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 通道”
-
Lightning Indexer(轻量索引器)
用极小的参数扫描历史序列,给每个 token 打“相关度”分; -
Top-k 筛选
只保留前 k(≈√L)个高相关 token 进入真正的 Attention; -
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 通道。