斯坦福和 UC Berkeley 的研究人员发布了 TokenGate,一个用于长上下文预填充的模块。TokenGate 学习式 token 剪枝让现有 LLM 能够略读其输入。只有重要的 token 才会得到完整处理。研究团队报告称,首个 token 生成时间(TTFT)加快了 1.4 倍到 11.3 倍,且没有精度损失。预填充峰值内存下降了 1.5 倍到 3.4 倍。代码和检查点已在 GitHub 上以 Apache-2.0 协议发布。

TL;DR

MLP 门控:在 Qwen3-1.7B 或 Qwen3.5-2B 上添加一个小型 MLP 门控和 LoRA(r=16)。在最长 128k token 的上下文上进行了测试。

运行环境:论文中的计时使用 1 块 A100、批大小为 1。训练使用 4 块 A100。

性能:在 5 项任务上相对 6 个基线达到帕累托最优。

最佳:NIAH 16k 上 TTFT 加快 11.3 倍、内存降低 3.42 倍。在 128k 时 TTFT 增益达到 13.0 倍。

最差:在某些任务上加速比降至 1.4 倍。

什么是 TokenGate?

TokenGate 是一个即插即用组件,为预训练 LLM 添加可训练的 token 剪枝。Transformer 会让每个 token 经过每一层。注意力成本随长度呈二次增长。免训练剪枝成本低,但在高剪枝率下会损失精度。架构改动通常需要从头预训练。

TokenGate 的学习式 token 剪枝是如何工作的?

前向传播分为 3 个阶段:

标准前向:门控层 L 以下的层照常处理全部 N 个 token。

门控模块:一个 MLP 根据第 L 层注意力后的残差为每个 token 打分。一个 top-K 选择器保留得分最高的 token。

剪枝前向:L 以上的层只处理这 K 个 token,且从不为被剪枝的 token 创建 KV 条目。

只有提示词中的文档部分可被剪枝。问题部分永远不会被剪枝。

什么是 token 门控注意力?

Top-K 选择不可微,这阻碍了端到端训练。TokenGate 借用了混合专家(MoE)路由器的技巧。每个被保留 token 的得分会成为门控之上注意力 logits 的偏置。该偏置为梯度提供了一条回到打分器的路径。

一个可学习的逐头增益和一个可学习的温度对此进行细化。温度用于校正每个查询看到的键更少这一情况。训练使用普通的下一 token 损失。每一步对全上下文损失和随机预算损失取平均。因此 1 个训练好的门控可适用于多种预算。

TokenGate 在基准测试上的表现如何?

研究团队在 RepoBench-P、2WikiMultihopQA、MultiNews、BioDEX 和 needle-in-a-haystack(NIAH)上测试了 Qwen3-1.7B。基线为 FastKV、SlimInfer、DASH、GemFilter、FlexPrefill 和 MInference,均在同一 LoRA 主干上。

相比完整预填充:TTFT 快 1.4 倍到 11.3 倍,内存低 1.5 倍到 3.4 倍。

相比次优基线:TTFT 快 1.2 倍到 6.4 倍,内存最多低 2.1 倍。

2WikiMultihopQA:在达到完整上下文准确率 95% 时,预填充运行快 3.0 倍,内存少 2.7 倍。

更长上下文:在 16k 上训练的 gate 在 32k 时达到 12.8 倍,在 64k 和 128k 时达到 13.0 倍。内存节省保持在接近 3.43 倍。

学习到的选择器在同一层上优于 FastKV 的启发式方法。即使在 TokenGate 主干上,随机 K 选择得分也更高。研究团队将其归功于主干协同适应。

它在混合注意力模型上有效吗?

有效,Qwen3.5-2B 混合了 Gated DeltaNet 和全注意力层。在 NIAH 32k 上,第 3 层的 TokenGate 达到了与完整预填充相同的准确率。它比完整预填充快 3.8 倍,比 FastKV 快 2.1 倍。在第 1 层或第 2 层进行门控达到 7.8 倍,准确率差距在 6% 以内。FastKV 只能剪枝注意力层。

TokenGate 对比 FastKV、SlimInfer、GemFilter 和 DASH

特性TokenGateFastKVSlimInferGemFilterDASHToken 选择学习到的 MLP gate来自最后查询的注意力块注意力,多阶段过滤层上的最后查询注意力隐藏状态稳定性是否需要训练是(gate + LoRA r=16)否否否否TokenGate 的 Qwen3-1.7B 运行中的剪枝层113(默认)8、17、251211是否在 Gated DeltaNet 层剪枝是(仅注意力层)否未披露未披露未披露最佳自报预填充增益(自有设置)11.3 倍 TTFT,3.4 倍内存1.82 倍预填充2.53 倍 TTFT(LLaMA3.1-8B,RTX 4090)相比 SOTA 快 2.4 倍,GPU 内存少 30%未披露代码GitHubGitHubGitHubGitHub已公布

自报增益使用不同设置,因此不能直接比较。剪枝层来自 TokenGate 的附录 C.2。

如何部署 TokenGate?

GitHub 仓库需要 Python 3.10+ 和 CUDA PyTorch 2.9+。可选的 FlashAttention-2 key-bias 内核可加速稠密 Qwen3。其开销是普通调用的 1.0 倍到 1.1 倍。没有它时,推理回退到 FlexAttention。

一个 {state} 占位符标记可剪枝的文档。generate 接受一个 max_kept_prefill_tokens 预算。检查点覆盖 Qwen3-1.7B 上的全部 5 个任务,外加一个 Qwen3.5-2B NIAH 门控。示例:liana313/tokengate-niah-qwen3-1.7b。

训练方式与 TRL/PEFT 配方一致。每一步比普通 LoRA 慢 1.3 倍。在 5 个任务中有 4 个收敛更快。平均训练时间为 1.8 对 2.2 A100 小时。

关键要点

TokenGate 通过一个小型门控和 LoRA,为现有 LLM 添加可学习的 token 剪枝。

预填充速度提升 1.4 倍到 11.3 倍,峰值内存降低 1.5 倍到 3.4 倍。

Token 门控注意力让 top-K 选择变得可训练,类似 MoE 路由器。

在 TTFT 上,它比次优的剪枝基线最高快 6.4 倍。

它在混合架构 Qwen3.5-2B 上有效,而 FastKV 无法剪枝 DeltaNet 层。

查看论文、GitHub 仓库和 Hugging Face 论文页面。另外,欢迎在 Twitter 上关注我们,别忘了加入我们 150k+ 的 ML SubReddit 并订阅我们的新闻通讯。等等!你在 Telegram 上吗?现在你也可以在 Telegram 上加入我们。

需要与我们合作推广你的 GitHub 仓库、Hugging Face 页面、产品发布或网络研讨会等?联系我们

这篇题为《来自斯坦福和 UC Berkeley 的研究人员推出 TokenGate:Token 门控注意力让长上下文预填充最高快 11.3 倍》的文章首先发表于 MarkTechPost。