FP4 attention 在长上下文上是真的会塌。
Blackwell 上的 FP4 Tensor Core 算力是给够了,SageAttention3 那一代把 attention 整体压到 4-bit,短上下文跑分挺好看,一拉到长文本质量就开始掉,而且序列越长掉得越凶。这个事在推理优化群里聊过几轮,大家心里都有数。
ThriftAttention 这篇切入点蛮聪明:量化误差不是均匀分布的,集中在那几块 attention score 高、对输出影响大的 query-key 交互上。
那思路就顺了 👇
🔍 用一个超 cheap 的 heuristic 给每个 q-k block pair 打分(就是 query 块和 key 块的 token 均值点积),挑 top 5%
💡 这 5% 走 FP16,剩下 95% 走 FP4
📌 两条路径用 online softmax 合并成一个输出,跟 FlashAttention 那套 streaming 累加一个味儿
结果:只算 5% 的块在 FP16,把 FP4→FP16 的质量 gap 补回 89.1%,而且序列越长优势越大。
我比较欣赏的一点是它没去碰 sparsity 那条路。纯 sparsity 在 decode 阶段为了追平 FP4 latency 得丢掉 60%+ 的 KV block,丢掉的误差是不可恢复的;而 mixed precision 至少 FP4 那条路还在算,错也只是数值误差,不是信息缺失。
当然要持保留的是:那个 heuristic 在 GQA、MLA、不同 RoPE 长度外推下稳不稳,论文里 5% 是不是各模型各任务都够用,这种"小比例走高精度"的方案最怕的就是分布漂移把 top-k 选错。等代码放出来得真在 128k 上手撸一遍才知道。
但方向上我觉得这是对的——FP4 这条路不能莽推到底,得留个口子让重要的 token 走原精度。 arXiv: 2605.23081
