Qwen3-ASR 课程 · 第 2 课

注意力机制 —— Transformer 的心脏

⏱ 约 20–25 分钟 · 前置:第 1 课(ASR 全景) · 本课目标:理解注意力在做什么、为什么需要它,以及它在 Qwen3-ASR 的哪两处发光

上一课你知道了 Qwen3-ASR = 音频编码器 + 大语言模型。今天拆开看它们共同的心脏:注意力机制(Attention)。读懂这一课,你未来读 Qwen3-ASR 的代码时,那 90% 看不懂的部分就一下子少了一大半。

一、先解决一个前置问题:词怎么进电脑

神经网络只会算数字,所以任何东西进模型前都要先变成一串数字,也就是向量。把词元变成向量的过程叫嵌入(Embedding)。嵌入的好处在:意思相近的东西,向量距离也近——"手机"和"电脑"的向量很近,"手机"和"照片"就远一些。

但这里立刻冒出一个难题:

「我用苹果手机拍了一张苹果的照片」

两个"苹果"是同一个词,查词表只能得到同一个向量——可一个是品牌,一个是水果。谁来区分它们?答案是:靠周围的词。这就是注意力机制的使命。

二、注意力:每个词环顾四周,重新认识自己

一句话定义 注意力 = 每个词根据"谁跟我相关",把周围词的信息按比例 borrowed 进来,更新自己的表示。相关度越高,borrowed 越多。

下面这个演示是手造的示意数据,但逻辑与真实模型一致。点两个紫色的"苹果",看它们各自把注意力放在谁身上:

同一个词,因为关注的地方不同,获得了不同的含义表示。这就是注意力解决"一词多义"的方式——不查字典,查环境。

演示里的权重是手造的示意——但"相关度怎么变权重"这件事,三行 Python 就是真的。点积当打分,softmax 归一成比例,亲手改方向看权重变化:

import numpy as np def softmax(v): v = np.asarray(v, dtype=float) # 接受列表/数组都行 e = np.exp(v - v.max()) return e / e.sum() q = [0, 1] # 「苹果」的查询 Q(改我,转个方向试试) k_shouji = [0, 1] # 「手机」的键 K:与 Q 同方向 k_pingguo = [1, 0] # 「苹果」自己的键:与 Q 垂直 scores = [int(np.dot(q, k_pingguo)), int(np.dot(q, k_shouji))] print("打分:", scores) print("注意力权重:", softmax(scores).round(3), "(两项加起来是多少?)")
看穿注意力的最小机制 Q·K 点积 = 方向有多一致;softmax = 把一致性变成总和为 1 的分配比例。你刚才跑的这几行,就是 24 层 AuT、16 头注意力里每一头的全部数学。第 7 课会把完整的 Q/K/V 矩阵乘法摆上桌。

三、Q、K、V:注意力的三件套

那么"相关度"是怎么算出来的?每个词的向量会同时变换出三个角色:

苹果 手机 拍了 Q K V Q K V Q K V ① 苹果的 Q 去和所有 K 打分 ② 打分 → softmax 变权重 苹果 .12 · 手机 .74 · 拍了 .14 ③ 按权重混合各词的 V → 苹果的新表示(含"品牌"义)
Q/K/V 工作流:每个词派自己的 Q(uery) 去和每个词的 K(ey) 匹配打分;分数经 softmax 归一成权重;再按权重混合各词的 V(alue),得到吸收了上下文的新表示。

打个比方:你在图书馆找资料。你的查询(Q)是"品牌相关的词";每本书的书脊标签是键(K);书的内容是值(V)。你拿 Q 扫一圈所有 K,越匹配的书抽出来越多(V 按 weight 混合),最后你手里的资料就是"新表示"。

两个常见坑 ① 打分用的是 Q 和 K,取回来的信息是 V——"怎么找"和"找什么"是分离的。② 权重来自 softmax:把一堆分数压成"总和为 1"的百分比,这样注意力才能"按比例分配"。

四、自注意力、多头、位置:三块拼图补齐

自注意力(Self-Attention)

就是"序列自己问自己":句中每个词同时向所有词(包括自己)发出 Q,也在被所有词查询。上面的演示就是自注意力。音频也一样——AuT 编码器里,每一帧声音向前后所有帧查询,"分清同音字靠的就是前后帧"。

多头注意力(Multi-Head)

一组 Q/K/V 只能学一种关注模式。于是并行放好多组,各学各的:一头盯"语法搭配"(动词找宾语),一头盯"语义关联"(苹果找手机),一头盯"邻近位置"……最后把各头结果拼起来。Transformer 里动辄几十个头,Qwen3-ASR 的两个组件也不例外。

位置编码(Positional Encoding)

注意力的打分只看向量内容,天然不知道词的先后——"我打你"和"你打我"会得到一样的关注度!所以在向量进入注意力前,要把"我在第几位"的信息加进去。现代大模型(含 Qwen3 系列)多用 RoPE(旋转位置编码)实现,细节以后碰代码时再展开。

五、这一切长在 Qwen3-ASR 的哪里

位置注意力在干什么活
AuT 音频编码器音频按帧切成序列后,帧与帧之间做自注意力:每一帧吸收前后声音的信息,拼出"听懂了"的上下文表示——嘈杂环境、连读吞音,靠这个补全
Qwen3 LLM 解码器生成每个字时,注意力一边看向音频表示("我听到了什么"),一边看向已生成的文字("我说到哪了"),然后决定下一个字元
热词机制你提供的领域词表作为普通文字进入解码器,生成专有名词时注意力会落在热词上——这就是第 1 课示意图里那条虚线箭头
checkpoint 至此你已经能一句话讲清 Qwen3-ASR 的核心:"用注意力把声音听懂,再用注意力把字写成"。接下来两课补的最后地基:语音怎么变成特征(第 3 课)、Transformer 完整积木(顺带讲)。

检索练习

本课主读材料

去读(约 15 分钟)

The Illustrated Transformer — Jay Alammar

读法:这篇图多字少,正好对应今天的 Q/K/V 和自注意力。读时把图里的英文 token 换成今天的"苹果"句子脑内重演一遍。读不完没关系,读到"Multi-Headed"小节即可。

可选视频:3Blue1Brown 的注意力可视化(YouTube 搜 "3Blue1Brown attention")——睡前看,给直觉加固。

本课新术语已入 术语表:向量/嵌入、上下文、注意力、Q/K/V、自注意力、多头注意力、位置编码、softmax、Transformer。

我是你的老师,别客气 本课概念密度不低。Q/K/V 打比方能懂、一看公式就晕是完全正常的——把最晕的那一句原样贴回来,我给你换个角度讲。