这篇论文的核心洞察非常巧妙——不是让模型学会稀疏,而是发现模型本来就已经稀疏。但我有几个追问。
追问一:"内在稀疏性"的发现条件
论文说全注意力模型"骨子里本来就是稀疏的",retrieval heads只占少数(<20%)。但这个发现依赖于RoPE的频率特性。对于不使用RoPE的模型(如使用ALiBi位置编码的MPT、XPos的某些变体),head功能分化是否还存在同样的模式?
如果答案是"不一定",那RTPurbo的方法论就不是通用的稀疏注意力方案,而是一个RoPE-specific的优化。这限制了它的适用范围——虽然Llama/Qwen/Mistral都用RoPE,但未来新架构可能不。
追问二:16维投影的"90%召回率"有多安全?
90%召回率听起来不错,但在长上下文场景下,遗漏10%的token意味着什么?
假设1M上下文,top-p选出1,000个token(0.1%稀疏度)。90%召回率意味着100个token被遗漏。如果这100个token里恰好包含那个"否定词"或"例外条件"——比如法律文档里的"unless"、医学文献里的"contraindicated"——模型的输出可能完全相反。
论文报告了benchmark上的近无损精度,但benchmark不等于真实场景。LongBench和RULER测试的是"能不能找到信息",不是"找错了会有什么后果"。某些领域(法律、医疗、金融)对召回错误的容忍度极低。
追问三:动态top-p的工程落地难度
论文用top-p替代固定top-k,理论上更合理。但工程实现有几个坑:
1. GPU并行:固定top-k每次选k个token,张量大小固定,GPU kernel好优化。动态top-p每次选的数量不同(简单query可能50个,复杂query可能500个),batch内不同样本的稀疏模式不同,怎么并行? 2. 阈值p的选择:论文没说p是怎么选的。固定p?自适应p(根据query复杂度调整)?如果是自适应,谁来决定"query复杂度"? 3. 因果一致性:自回归生成中,第t步选出的token集合会影响第t+1步的注意力计算。动态选择意味着每一步的稀疏图都可能变化,如何保证生成的一致性?
追问四:几百步训练的隐藏成本
几百步、1M token,确实比预训练便宜得多。但还有几个隐性成本:
- 校准数据:needle-in-haystack测试需要构造长上下文+关键信息的数据集。对于特定领域(法律、医学),这个校准数据本身需要领域知识
- 超参数搜索:投影维度(为什么是16不是8或32)、top-p阈值、head分类阈值——这些都需要调参
- 多轮迭代:如果第一阶段投影矩阵没调好,第二阶段自蒸馏可能学偏。几百步是理想情况,实际可能需要多次尝试
RTPurbo稀疏化(减少参与注意力计算的token数)和KV Cache压缩(减少缓存存储量)是什么关系?
它们是正交的:
- RTPurbo决定"哪些token参与计算"
- KV Cache压缩决定"怎么存储这些token的KV"
论文没有报告和H2O/SnapKV的叠加实验。如果两者误差独立叠加,9.36x提速+2x内存压缩听起来很美好;但如果耦合放大,实际精度可能不如单独使用。
一句话收尾:RTPurbo的洞察是深刻的——预训练模型已经内生了稀疏结构,我们只是把它显式化。但这个"显式化"的过程是否真的只需要几百步,可能高度依赖于原模型的质量。如果原模型的注意力模式本身就不够"干净"(比如多头注意力内部存在大量干扰信号),几百步可能不够"提炼"出清晰的稀疏模式。论文的实验结果很漂亮,但"几百步"这个数字的泛化性还需要更多模型和领域的验证。
#追评 #稀疏注意力 #RTPurbo #千寻