Day 2 · 注意力机制:全班一起开「讨论会」
AI 是怎么「看完整段话」再开口的?
昨天学会了:AI 每说一个字,都在做「接龙」。但这里有个大问题——它接龙的时候,怎么知道该看前面的哪个词? 今天这一篇,就是 AI 大脑里最重要的一台机器:注意力 。
学完你能回答
为什么 AI 不能只看上一个词就接龙?
学完你能回答
为什么词的顺序很重要?K3 怎么处理?
0 起点:这些你早就会了
今天要讲的「注意力」,说穿了就是一件你每天都在做的事:听人说话时,抓重点 。先看对照表——没有一项超出高中课堂:
你已经会的 AI 世界里对应的东西
全班讨论:发言前先听听别人怎么说 注意力 :每个词「发言」前,先听一遍其他所有词,按相关程度取重点
上课提问:你问一个问题,觉得某个同学答得最对 Q / K / V :提问(谁答最相关)→ 亮名片(每个词的身份)→ 听内容(按相关度取重点)
语文课:这句话里的「它」指的是谁?要回头看前一句 指代 :AI 填「很甜」的空,线索可能藏在 5 个词之前——必须能「回头看」
广播体操:每个人站在固定位置,号一喊就有队形 位置信息 :同样的词换顺序意思就变,AI 必须知道谁在第几号位
一场班会开不完,要从纪律、卫生、学习几个角度分别讨论 多头注意力 :不只开一场会,而是好几场「分会」同时开,最后汇总
开会时一边听一边记笔记,重点记下来,不用抄全文 KDA(K3 的独门笔记法) :Day 3 的主角,今天先混个脸熟
看到没?注意力一点都不神秘——它就是「抓重点」。今天剩下的时间,把「抓重点」这件事讲具体。
1 问题:AI 接龙时,只看上一个词够吗?
先做个实验。读这句话:
「小明把苹果递给小红,因为_ 很甜。」
这个空,该填什么?正常人会填「苹果」。可你注意一下:「苹果」在空位前面 5 个词远的地方 ,紧挨着空位的词反而是「小红」。
如果 AI 真的只看上一个词就接龙,它会填「小红」——「小红很甜」?说不通。要填对,AI 必须有能力「回头看」整句话,在 5 个词之外找到那个真正相关的词 。
指代问题:答案线索在 5 个词之前
句子「小明把苹果递给小红,因为_很甜」,空位要填的词是前面第 3 个位置的苹果
AI 要填的空,线索却在前面 5 个词
小明
把
苹果
递给
小红
,
因为
_
线索在这里——隔了 5 个词!
只看上一个词
→ 会填「小红」——说不通 ❌
看完整句话
→ 会填「苹果」——对了 ✅
图 1 · 为什么要「回头看」: 「_很甜」的答案线索「苹果」在 5 个词之外。只看上一个词,AI 会填出「小红很甜」这种病句。所以 AI 必须能同时看见整句话 ,并且知道哪个词跟自己最相关——这就是注意力的用武之地。
打个比方
就像老师提问时,你脑子里会快速过一遍刚学的整段课文,找到跟问题最相关的那一句——你不会只看课本最后一行就作答。AI 的「整段课文」,就叫它的上下文 ;「找到最相关的那一句」,就是注意力。
进阶小注 · 这就是自回归模型的「条件」范围问题。早期 N-gram 模型只条件于最近 k 个词,指代长距离时无能为力;Transformer 让每个位置对全部历史位置 做注意力,一举解决长距离依赖。注意力的输出仍是一个与输入等长的序列,不会破坏「逐字接龙」的框架。
2 核心直觉:每个词发言前,先「听全班怎么说」
那注意力具体怎么「回头看」?把它想象成一场全班讨论会 :句子里的每一个词,都是一位同学。轮到谁发言时,它先不急着说,而是听一遍所有同学的话,掂量掂量谁跟自己的话题最相关 ,然后按相关程度,把大家的话「加权汇总」到自己心里,再决定自己说什么。
拿上句里的「递给」举例。它要发言,得先搞清楚一个问题:谁递给谁? 于是它听全班说——结果发现:「小明」跟「发出动作」最相关(0.45),「苹果」跟「被递的东西」很相关(0.35),「把」「小红」关系不大(各 0.10)。它心里就有了数。
注意力:中心词听取所有其他词并按相关度加权
「递给」听全班:小明 0.45、苹果 0.35、把 0.10、小红 0.10,权重合计约 100%
每个词发言前,先「听」全班,按相关度取重点
小明
把
苹果
小红
递给
0.45
0.10
0.35
0.10
权重 = 相关度:小明 0.45 + 苹果 0.35 + 把 0.10 + 小红 0.10 ≈ 100%
图 2 · 注意力的「加权汇总」: 「递给」把全班的话按相关度加权——线越粗,权重越高。相关度最高的是「小明」(谁的动作)和「苹果」(被递的东西)。这些权重不是人定的,是 AI 在训练里自己学出来的。
三个要记住的点:
① 每个词都要给其他所有词打分 (相关度),分数合计 = 100%;
② 打高分词的「内容」在最终理解里占的份量大——这就是加权汇总 ;
③ 「谁和谁相关」是 AI 从海量文章里自己学出来的 ,没有任何人手工标注。
进阶小注 · 注意力的数学就是 Attention(Q,K,V) = softmax(QKᵀ/√d_k)V:Q 与所有 K 做内积得到原始分,除以 √d_k 稳定方差,softmax 归一化成权重(即图 2 里的百分比),再对 V 加权求和。「听全班」= 对整行历史位置做这个运算。
3 一次「听讲」的完整流程:提问、亮名片、听发言
加权汇总具体是怎么做到的?把它拆成四步,每一步你都在课堂上见过:
注意力四步:提问、亮名片、比对打分、听发言
Q 当前词提问;K 每个词亮出身份标签;Q 与 K 比对打分;按分数对 V 加权汇总
一个词要「听明白」,走四步
① 提问(Q) 「递给」心里冒出一个问题:谁在发出动作?
② 亮名片(K) 每个词举起「身份标签」:小明 = 人名,苹果 = 物品……
③ 比对打分 拿「问题」跟每张名片比对:越相关,分越高
④ 听发言(V) 按分数高低听每个人的「内容」,加权汇总 → 得出答案
图 3 · 一次「听讲」的四步: 提问 → 亮名片 → 比对打分 → 按分听发言。注意看:「提问」和「名片」是用来算分的,真正被汇总的是「发言内容」 ——分数只是个「音量旋钮」,决定谁的话被放大、谁的话被压低。
打个比方
就像辩论赛:正方二辩先听清辩题 (提问),再看每位辩手立的是什么论点 (名片),判断「谁的论点和我的反驳最相关」(打分),最后把最相关辩手的话记下来用(听发言)。一场辩论下来,你不会记住所有人的话,只会重点记住相关的那几句。
进阶小注 · Q、K、V 分别是三个可学习的投影矩阵 W_q, W_k, W_v 对隐藏状态做线性变换得到(Query / Key / Value)。「名片」K 决定了「被谁关注」,「提问」Q 决定了「关注谁」,V 才是真正被加权的内容。三者各司其职,是注意力里最该记住的结构。
4 顺序很重要:AI 也得知道「谁在第几号位」
注意力的打分只看「词和词的相关度」——但有个坑:它分不清「猫追狗」和「狗追猫」 。这两个句子用的词一模一样,只是顺序反了,意思却完全相反。如果 AI 只把句子当成「一袋子词」,它就永远分不清谁在追谁。
顺序很重要:猫追狗 vs 狗追猫
同样的词不同顺序意思相反,AI 需要位置信息才能区分
同样的词,顺序一变,意思就反了
①
②
③
猫
追
狗
「猫」在 1 号位 → 猫在追
①
②
③
狗
追
猫
「狗」在 1 号位 → 狗在追
如果只把它们当「一袋子词」,AI 分不清谁追谁 → 必须给每个词发「座位号」
图 4 · 座位号(位置编码): 「猫」和「狗」本身没变,变的只是座位号。AI 必须把「词义」和「位置」两样信息都算进去,才能分清谁在追谁。给每个词发座位号的技术,叫位置编码 ——几乎所有主流 AI 都用它。
但这里有个有意思的例外,提前剧透给你:K3 不用显式座位号 。报告原文说,K3 靠它自己的「记笔记式注意力」(KDA)里的一个衰减机制,隐式地记住词的位置(报告 §2.1.2 和 §3.4 用的术语叫 NoPE )。好处是:把窗口一路拉到 100 万 token,也不用改动位置编码——这正是 K3 能接 100 万 token 长文的条件之一。今天先记住这个结论,机制 Day 3 讲透。
进阶小注 · 常见位置编码:绝对位置嵌入、以及旋转位置编码 RoPE (把位置信息乘进 Q/K 的旋转矩阵,主流模型标配)。K3 用 NoPE (No Position Encoding),靠 KDA 的循环门控与衰减隐式编码位置——这也是它上下文外推不用做 RoPE 重缩放(YaRN 等)的原因。
5 一场会不够:好几场「分会」同时开
一句话里要抓的「重点」其实不止一种。还是「小明把苹果递给小红」——这句话里,既有「谁的动作」这种语法问题,又有「苹果」和「递给」的语义搭配,还有整句话在讲什么的主题。一场讨论会顾不过来,所以 AI 的办法是:同时开好几场会,每场各管一个角度,最后把几场的结果拼起来 。
多头注意力:多场讨论会同时进行,各自关注不同角度
语法会关注动作发出者,指代会关注代词指谁,主题会关注句子主题,最后结果拼接
不是一场会,是好几场「分会」同时开
语法会
谁的动作?
小明
把
苹果
递给
关注:小明
指代会
「它」指谁?
它
跑
得
快
关注:往回找
主题会
整句讲什么?
他
在
看
书
关注:全局
几场会的结论 → 拼在一起 → 每个词都得到「立体」的理解
图 5 · 多头注意力: 「语法会」盯动作发出者、「指代会」盯代词指谁、「主题会」盯整句主题……几场会同时开、各管一摊 ,最后把结果拼起来。一个词在 AI 里的「理解」,其实是好几场会结论的合体。
进阶小注 · 这就是 Multi-Head Attention :把隐藏状态投影成 h 组 Q/K/V(每组叫一个 head,维度 d/h),h 个头并行做注意力,输出拼接后再线性投影。不同头在训练中会自发分化出不同的「关注偏好」——有的管语法、有的管指代,与图 5 的三个比喻对应。
6 上下文:AI 一次能「听」多长的发言?
注意力让每个词能「回头看」其他词——但能看多远?答案是:看模型允许看多长,就叫多长 。这个「允许看多长」的长度,专业名词叫上下文窗口(context window) ,通俗说就是 AI 的「听力范围」。
窗口内 :每个词都可以回头「听」窗口里的任何一个词——图 2 那种全班讨论,就是在这窗口里开的。
窗口外 :再早之前的话,AI「听不见」,会彻底忘掉。窗口越大,AI 能记住的上下文越长。
回想 Day 1 的数字:K3 的上下文窗口是 100 万 token ——约等于一整部《红楼梦》从头读到尾的量。为什么别的模型窗口一大就慢、就贵,K3 却能做到 100 万?这就要说到「注意力是要花钱的」:每个词都要跟窗口里所有词打分 ,窗口越长,打分次数越多,内存和算力都跟着涨。K3 怎么把这笔账省下来——就是明天的主题。
今天最重要的一个词
上下文(context) :AI 在接龙时能「回头看」的全部内容。它的长度上限 = 上下文窗口。你以后读任何 AI 文章看到「256K」「1M 上下文」这类说法,说的就是 AI 一次能听多长的发言——K3 是 100 万 token。
进阶小注 · 朴素全量注意力的时间复杂度是 O(L²)(L = 序列长度),空间上要存 L 个位置的 K/V。这就是「窗口越大越贵」的数学来源。如何把 O(L²) 打下来、把 K/V 缓存省下来,是 KDA、KV Cache 这些设计的出发点——Day 3 的主角。
7 映射到 K3:它的注意力是「双轨」的
注意力是 AI 的「看」。K3 在这件事上玩了个花样:它有两套「看」的机制,混着用 ——因为两套各有各的脾气,一套省地方但记不全,一套记得全但费地方。
K3 混合注意力:3 层 KDA + 1 层 MLA 循环
K3 骨干每 4 层一个循环:3 层 KDA(线性注意力,记笔记式)+ 1 层 Gated MLA(全局注意力,全记录式)
K3 的注意力:两套机制「混着用」
KDA
KDA
KDA
MLA
KDA
KDA
KDA
MLA
每 4 层一个循环:3 层 KDA(记笔记)+ 1 层 MLA(全记录),全网络重复
KDA · 记笔记式
边读边把重点写进「小本子」,省地方
MLA · 全记录式
把前面所有话都记下来,记得全但费地方
图 6 · K3 的双轨注意力: 蓝色 = KDA(记笔记式,Day 3 的主角),珊瑚色 = MLA(全记录式,今天讲的经典注意力)。K3 用 3:1 的比例混合——大部分层用省地方的 KDA,隔几层插一层 MLA 来「查漏补缺」。
K3 原文(§2.1 混合注意力)
「Kimi K3 采用线性注意力与全局注意力的逐层混合,将 KDA 与 Gated MLA 结合。每个块包含 3 个 KDA 层,其后接 1 个 Gated MLA 层,混合比例为 3:1。」
逐词翻译(今天你已经能读懂大半了):
线性注意力 / KDA :今天的「全班讨论」+ 昨天剧透的「记笔记」——一边听一边把重点压缩进一个小本子,不用抄下每个人的原话。省地方、省算力,适合铺满大多数层。
全局注意力 / Gated MLA :就是今天讲的经典注意力——每个词跟窗口里所有词挨个打分。记得全,但费地方,所以只占少数层。
3 : 1 :每 4 层里,3 层记笔记(KDA)+ 1 层全记录(MLA)。一个省钱一个保底,搭配起来:又省又能看 100 万 token 。
3 : 1
每 4 层注意力里 3 层 KDA + 1 层 MLA
NoPE
不显式发「座位号」 靠 KDA 隐式记住位置
为什么混着用能省钱? 打个比方:开会记纪要,聪明的做法是——大部分时间只记重点(KDA) ,但每隔几轮,让速记员把全场原话完整录一遍(MLA)校对一下有没有漏掉关键细节。全程只抄原话会累死,全程只记重点又怕漏——3:1 混搭,两边的好处都拿到了。
一句话总结今天的 K3 印象
注意力 = AI 的「抓重点」。K3 把「抓重点」升级成了双轨制:大部分层用记笔记式的 KDA(省地方),隔几层插一层全记录式的 MLA(保底),比例 3:1——这正是它「又省又能记住 100 万字」的地基。KDA 怎么记笔记、为什么省地方,就是明天的课。
8 自测题(先自己答,再点开看解析)
Q1 为什么 AI 接龙时不能只看上一个词?
因为答案的线索常常藏在很远的词 那里。「小明把苹果递给小红,因为_很甜」——只看上一个词会填「小红」(小红很甜?说不通),必须「回头看」到 5 个词之外的「苹果」才能填对。所以 AI 要能同时看见整句话,并对每个词「抓重点」。
Q2 「注意力权重」是什么?它加起来等于多少?
注意力权重 = 当前词和其他每个词的相关度打分 ,所有分数的总和约等于 100% 。打高分词的「内容」在最终理解里占的份量大(加权汇总)。这些分数不是人标的,是 AI 从海量文章里自己学出来的。
Q3 用「提问 / 名片 / 发言」打比方,说说 Q、K、V 各自干什么?
Q(提问) :当前词心里的问题——「谁跟我相关?」K(名片) :每个词亮出的身份标签——「我是谁」。把问题和名片比对 就得到相关度分数。V(发言) :每个词要说的实际内容——按分数加权汇总,得出当前词的新理解。记住:Q 和 K 用来算分,V 才是真正被汇总的内容。
Q4 为什么词的顺序很重要?K3 是怎么处理顺序的?
「猫追狗」和「狗追猫」用词完全相同,顺序一换意思就反了——如果 AI 只把它们当「一袋子词」就分不清谁在追谁,所以必须知道每个词的位置。主流 AI 用「座位号」(位置编码),K3 是个例外 :它不显式发座位号(NoPE),而是靠 KDA 里的衰减机制隐式记住位置,好处是不用为位置编码费内存、上下文想拉多长拉多长。
Q5 K3 的「3:1 混合注意力」是什么意思?为什么要混?
K3 每 4 层注意力里,3 层是 KDA(记笔记式,省地方)+ 1 层是 MLA(全记录式,记得全) ,全网络重复。KDA 负责省钱省算力(这是它能看 100 万 token 的关键),MLA 负责「保底」,每隔几层完整回顾一遍,防止只记重点漏掉关键细节。一个省钱一个保底,3:1 混搭两边好处都拿到。
明日预告 · Day 3
Kimi 的看家本领:一口气记住 100 万字
为什么「记得越多越慢越贵」?「便签本」KV Cache 是什么?KDA 怎么做到不抄全文、只记重点?
开始 Day 3 →