混合线性注意力 KDA
Kimi K3 如何把 1M 上下文解码提速 6 倍

Kimi Delta Attention 线性注意力 长上下文 Kimi K3 架构

2026 年 7 月 16 日,Moonshot 发布 2.8 万亿参数的开源模型 Kimi K3,带着 100 万 token 上下文窗口。支撑这件事的核心技术,是一种叫 KDA 的混合线性注意力。这份文档从"注意力为什么会成为瓶颈"讲起,带你搞懂它的原理、用法和边界。

⏱️ 30 秒速览

KDA(Kimi Delta Attention)是 Moonshot(月之暗面)提出的一种线性注意力机制:它不像标准 Transformer 那样让每个新词回头看所有历史词,而是把历史压缩进一块固定大小的"记忆状态"里,边读边更新。这样计算量随文本长度只线性增长,而不是平方增长。

纯线性注意力记性不够好,所以实际模型采用混合(hybrid)架构:大部分层用 KDA 快速处理,周期性插入少量"全注意力"层负责精确回忆。按官方论文(arXiv 2510.26692)的数据,这套组合在相同训练配方下效果反超全注意力,同时 KV cache 省最多 75%、1M 上下文解码提速最高 6 倍;在 Kimi K3 中官方称解码提速最高 6.3 倍

超长文本进来了 全注意力(标准 Transformer) 每个新词都回看全部历史 计算 O(n²) · KV 缓存随长度膨胀 长文本下又慢又贵 💸 线性注意力(KDA 这一路) 历史压缩进固定大小的记忆状态 计算 O(n) · 缓存不随长度膨胀 代价:记忆有限,可能忘事 🤔
同一个长文本,两条技术路线的取舍。KDA 属于右边这条路,再用"混合架构"补上记性短板。

🧱 背景:注意力为什么会成为瓶颈

痛点从哪来

标准 Transformer 的注意力机制,本质是"每生成一个新词,都要和前面所有词算一遍相关性"。文本有 n 个词,总计算量就是 n×n 量级——业内叫 O(n²) 复杂度(读作"平方级复杂度",意思是文本长 10 倍,计算量涨 100 倍)。

还有第二个隐形成本:KV cache(键值缓存)。生成时为了不重复计算,模型要把每个历史词的中间结果(Key 和 Value 两组向量)全存在显存里。上下文越长,这块缓存越大——100 万 token 的上下文,光缓存就能吃掉大量显存,直接限制了并发和速度。

开会做记录有两种方式:全注意力像逐字速记——每说一句话都要翻遍前面全部记录找关联,会开得越久翻得越慢,笔记本也越堆越厚;线性注意力像只维护一页"会议要点"——每听一句就更新这一页,永远只有一页,翻阅速度恒定。代价是:三小时前某句原话的措辞,可能已经被要点覆盖掉了。

这条路线的发展脉络

2017 Transformer 全注意力时代 2020-23 早期线性注意力 快但效果差一截 2023-24 Mamba / DeltaNet / Gated DeltaNet 2025.10 Kimi Linear 论文 提出 KDA 2026.7.16 Kimi K3 发布 KDA 进旗舰模型
从全注意力到 KDA 进入 2.8T 旗舰模型的技术脉络(依据 arXiv 论文与 MarkTechPost 报道整理)。

早期线性注意力(2020 年前后)证明了"O(n) 是可能的",但语言能力明显落后;Mamba、DeltaNet 等状态空间/循环路线(2023-24)大幅缩小差距;Kimi Linear 论文(2025 年 10 月)官方宣称首次在公平对比下全面超过全注意力——注意这是 Moonshot 自己的实验结论,详见限制一节。到 2026 年 7 月的 Kimi K3,这套架构正式承载旗舰模型。

🧩 核心概念逐个拆

搞懂 KDA 需要四块积木,我们按"读者下一个自然会问什么"的顺序来。

积木一:线性注意力 = 把注意力变成一个 RNN

线性注意力(Linear Attention)
大白话:不再保存每个历史词,而是维护一个固定大小的矩阵 S(可理解为"记忆板")。每读一个新词,就往记忆板上写一点新信息;要用历史时,直接查记忆板,不回头翻原文。
为什么快:每步只操作固定大小的 S,与文本长度无关,所以总计算量 O(n)、生成时显存占用恒定——这正是 KV cache 不膨胀的原因。

这个"边读边更新一块固定状态"的模式,其实就是经典 RNN(循环神经网络)的思路。所以你会看到论文里把这类模型叫 finite-state RNN——有限状态的循环模型。问题随之而来:板子就这么大,写满了怎么办?

积木二:Delta 规则——"先擦再写"

Delta Rule(增量规则)
大白话:往记忆板写新内容前,先看看板上有没有关于"同一个 key"的旧内容,把旧的擦掉一部分,再写新的。写入的是"新旧之差"(delta),而不是无脑叠加。
解决什么:朴素线性注意力只加不擦,信息越叠越糊。Delta 规则让记忆板"可修正",同一话题的新信息能覆盖旧信息。

积木三:Gated DeltaNet——再加一个"遗忘阀门"

Gated DeltaNet(门控增量网络)
大白话:在"先擦再写"之外,再装一个遗忘门(gate):每一步都让整块记忆按一定比例自然衰减——不重要的旧信息随时间淡出,给新信息腾地方。NVIDIA 2024 年提出,是 KDA 的直接前身。
局限在哪:它的遗忘是按注意力头(head)为单位的——一整个头共用一个衰减比例,想保留头里某些信息、丢弃另一些,做不到。

积木四:混合架构——线性层打工,全注意力层查档案

Hybrid Attention(混合注意力)
大白话:模型几十层里,大部分层用线性注意力(快),每隔几层插一个全注意力层(记性好)。日常处理靠线性层,需要"精确回忆原文第 3 段说了什么"时靠全注意力层。
为什么必须混合:固定大小的记忆状态在"精确回忆(recall)"类任务上有天然上限(详见第 8 节),少量全注意力层正好补这个短板。Kimi Linear 采用 KDA 与 MLA(DeepSeek 系的省显存全注意力变体)的层间混合。
模型层堆叠(示意):多数 KDA 层 + 周期性插入全注意力层 KDA 层 ⚡ KDA 层 ⚡ KDA 层 ⚡ 全注意力 MLA 🔍 KDA 层 ⚡ KDA 层 ⚡ KDA 层 ⚡ 全注意力 MLA 🔍 ⚡ 线性层:O(n) 快速处理、状态固定    🔍 全注意力层:保留精确回忆能力
层间混合示意图(比例为示意,非精确配比)。研究表明全注意力层占比对 recall 能力影响显著,见第 8 节。

🔬 KDA 究竟改了什么

有了上面四块积木,KDA 的创新一句话就能说清:

KDA = Gated DeltaNet 的细粒度门控升级版——遗忘不再"整头一刀切",而是每个通道(channel,即向量的每一维)各自决定忘多少、忘多快。官方论文称之为 finer-grained gating,让有限的记忆状态被更高效地利用。
Gated DeltaNet:按头遗忘 通道 1 ── 衰减 0.9 通道 2 ── 衰减 0.9(被迫一样) 通道 3 ── 衰减 0.9(被迫一样) 一个头一个阀门,粒度粗 KDA:按通道遗忘 通道 1 ── 衰减 0.99(慢忘) 通道 2 ── 衰减 0.60(快忘) 通道 3 ── 衰减 0.85(中速) 每个特征维度自己控制记忆寿命 → 同样大小的记忆板,KDA 能存得更"精打细算"
KDA 与前身 Gated DeltaNet 的核心区别:遗忘门的粒度从"每头一个"细化到"每通道一个"(依据 arXiv 2510.26692 摘要整理,衰减数值为示意)。
还是那页"会议要点":Gated DeltaNet 相当于规定"整页笔记每小时统一淡化 10%";KDA 则允许"决策事项那几行永不褪色、寒暄闲聊几分钟就淡掉"。同一页纸,后者显然能装下更多真正有用的东西。

工程上如何做到不变慢

细粒度门控听起来会增加计算,论文的解法有两点(均来自 官方摘要):

-75%
KV cache 用量最多可减少(Kimi Linear 论文)
1M 上下文解码吞吐最高提升(论文)
6.3×
Kimi K3 官方称的百万上下文解码提速上限
48B/3B
论文验证模型:总参数/激活参数

🚀 在 Kimi K3 中的落地

2026 年 7 月 16 日发布的 Kimi K3,是 KDA 第一次进入旗舰级模型(此前 Kimi Linear 只是 48B 的研究验证模型)。K3 的整体配置(来源:MarkTechPost 2026-07-16,一手信息见 Moonshot 官方博客):

2.8T
总参数,官方称首个开放 3T 级模型
16/896
MoE 每次激活的专家数(Stable LatentMoE)
1M
token 上下文窗口,原生视觉
2.5×
相对 K2 的整体 scaling 效率提升(官方)

KDA 在其中负责"长上下文不爆炸";与它配套的还有两个架构组件(均为官方说法):AttnRes(Attention Residuals)在深度方向选择性检索各层表征,称带来约 25% 训练效率提升、额外成本低于 2%;Quantile Balancing / Per-Head Muon / SiTU 等则解决极稀疏 MoE 的路由与优化问题。这些超出本文主题,点到为止。

效果如何(官方基准,注意甄别)

官方口径:K3 整体仍落后于最强闭源模型(Claude Fable 5、GPT-5.6 Sol),但在 Program Bench、SWE Marathon、BrowseComp、OmniDocBench 等基准领先,FrontierSWE 和 HLE-Full 落后于 Fable 5。值得注意的细节:BrowseComp 得分 91.2 是在 300K token 触发上下文压缩的配置下取得的,不压缩时反而是 90.4——说明百万级上下文的实际使用仍需上下文管理策略配合。

以上分数全部来自 Moonshot 自家评测套件与选定 harness(KimiCode / Claude Code / Codex 不一),发布还不满 48 小时,暂无独立第三方复测。判断真实水平请等 LMArena 等第三方榜单更新。

🛠️ 怎么用(上手)

路线 A:直接调用 Kimi K3 API(用它,不改它)

K3 兼容 OpenAI SDK,换个 base_url 即可。示例代码来自 MarkTechPost 报道(与官方文档口径一致):

from openai import OpenAI
import os

client = OpenAI(api_key=os.environ["MOONSHOT_API_KEY"],
                base_url="https://api.moonshot.ai/v1")

completion = client.chat.completions.create(
    model="kimi-k3",
    reasoning_effort="max",   # K3 只支持 max;不要再传 K2.x 的 thinking 参数
    messages=[{"role": "user", "content": "用一句话介绍 Kimi K3。"}],
)
print(completion.choices[0].message.content)
参数规矩:temperaturetop_pn 是固定的,直接省略;max_completion_tokens 默认 131072,上限 1048576。
多轮/工具调用:必须把完整的 assistant 消息原样传回,不能裁剪。
算账先看缓存命中率:定价不按上下文长度分级——缓存命中输入 $0.30/M、未命中 $3.00/M、输出 $15.00/M。官方称编码类负载缓存命中率可超 90%,成本大头取决于你的 prompt 结构是否缓存友好(稳定前缀放前面,可变内容放后面)。

路线 B:研究或自部署 KDA(改它、学它)

🎯 什么场景真正受益

KDA 的收益全部来自"长"——上下文越长、输出越长,相对全注意力的优势越大;几千 token 的短对话里体感差别不大。官方列举并被报道的典型场景:

一句话判断:你的负载是否"读得多、写得长、会话久"?是,混合线性注意力的成本/速度优势是数量级的;否,它对你只是个透明的实现细节。

⚖️ 对比与选型:长上下文的四条技术路线

路线代表思路强项弱项
全注意力 + 省显存变体MLA(DeepSeek)、GQA不改 O(n²),压缩 KV cache精确回忆无损,生态最成熟长度上来后依然又慢又贵
稀疏/滑窗注意力滑动窗口、NSA 等只看部分历史实现简单,短程任务几乎无损窗口外信息直接不可见
纯线性/状态空间Mamba、RWKV、DeltaNet固定状态,O(n)速度和显存最优精确回忆(recall)有硬上限
混合线性(本文主角)KDA+MLA(Kimi)、Gated DeltaNet-2 等多数层线性 + 少数全注意力层速度接近纯线性,回忆能力大体保住架构/推理栈更复杂,生态尚新

怎么选:做应用——你其实不用选,选模型即可,架构是厂商的事;真正要看的是价格、长上下文实测质量和缓存命中率。做训练/研究——2026 年的社区共识是混合路线最务实:《A Systematic Analysis of Hybrid Linear Attention》系统实验发现,语言建模能力对线性:全注意力比例不敏感,但精确回忆能力随全注意力层占比明显变化,比例低于 3:1(即全注意力层多于四分之一)时 recall 提升显著;Hazy Research 的 BASED 论文更早指出了"状态大小 ↔ 回忆能力"这条根本取舍曲线。同期还有 Gated DeltaNet-2(把"擦"和"写"解耦)等平行探索,说明这个方向远未收敛。

🕳️ 常见坑与限制

坑 1:固定状态 ≠ 无限记忆。学界已明确:固定大小的循环状态做"精确关联回忆"有理论上限(BASED 论文称之为 recall-throughput tradeoff)。表现出来就是:大海捞针式的"逐字找回 50 万 token 前的一句话",混合模型依赖那少数几层全注意力,极端场景仍可能不如纯全注意力稳。对 Agent 工程的含义:关键信息别指望模型"记得",该外置到记忆系统/文件的照样外置
坑 2:"超过全注意力"目前主要是厂商自证。Kimi Linear 论文说"公平对比下首次超越 full attention",实验设计和评测都由 Moonshot 完成;K3 的基准同样是自家套件、发布未满 48 小时。社区独立复现之前,措辞上应保持"官方宣称"。
坑 3:推理基础设施的隐性差异。KDA 的循环状态让 prefix caching、投机解码等常规优化都要专门适配(Moonshot 已给 vLLM 提交了实现)。自部署时如果用了未适配的推理栈,可能出现缓存失效、吞吐不升反降的情况。K2.x 的调用习惯(thinking 参数、自定 temperature)在 K3 上会直接报错。
坑 4:教程时效。线性注意力领域 2024-2026 迭代极快,DeltaNet → Gated DeltaNet → KDA → GDN-2 一年多连跳数代。读到不带日期的"线性注意力不行"或"线性注意力已解决一切"的文章,先查发布时间——2025 年 10 月(Kimi Linear)之前和之后的结论差别很大。

📚 学习资源