Transformer自注意力,大脑般工作?
本文深入解析了Transformer中的注意力机制原理。核心要点包括:1)注意力通过计算查询向量(Q)和键向量(K)的点积衡量Token间相似度,经缩放和Softmax归一化形成权重;2)QK^T矩阵乘法构建n×n相似度矩阵,实现Token间的动态关注;3)注意力机制使模型能自主决定处理每个Token时对其他Token的关注程度,有效捕捉长距离依赖关系。文章还顺带提及了大模型学习资源,包括系统学习
一、简单理解
注意力就是计算各Token的相似度。
如何计算相似度?
向量的点积可以表示相似度。
对一个输入序列来说,可以使用矩阵乘法来计算相似度。
在Transformer中,每个Token会映射到Q、K、V三个向量。
这一输入序列的Token组合在一起,Q向量按行排列,形成Q矩阵。
K向量按行排列,形成K矩阵。
将K矩阵转置后,就变成列代表Token的向量。
这样Q矩阵和K矩阵转置进行矩阵乘法,就变成计算每个Token和其他Token的点积,也就是相似度,也就得到注意力分数了。
点积结果会随着向量维度 d_k(Key/Query的维度)的增大而变大。
所以,在计算点积后,通常会进行一个缩放操作:
ScaledScores = S / sqrt(d_k)
这有助于稳定的训练。
上面的注意力分数仅能表示相对相关性但不直接表示权重比例。
所以需要归一化。
通常对 ScaledScores 的每一行进行 Softmax。
也就是,将对第 i 个 Token 来说的所有注意力分数(S[i, :])转换成一个概率分布 AttentionWeights[i, :]。这个分布中的每个元素 w_{ij} 都是介于 0 和 1 之间的值,且所有 w_{ij}(对于该行)加起来等于 1。w_{ij} 就代表了第 i 个 Token 应该给第 j 个 Token 分配多少“注意力权重”。
“注意力” 通常指的是包括计算分数、缩放、归一化成权重、用权重对 Value 进行加权求和这个完整过程的最终输出。
二、重点理解
注意力机制的核心是让模型决定在处理序列中某个特定位置(Token)时,应该“关注”序列中所有其他位置(Token)的程度。这个“关注程度”就基于它们之间的“相似度”。
在 Transformer 的注意力机制中,查询向量(Query)和键向量(Key)的点积被用来表示两者之间的注意力分数(attention score),这个分数可以理解为查询(想要找什么信息)和键(存储了什么信息)的相似度或相关性。
点积 (q · k = q^T * k) 是计算两个向量相似度的一种常用且有效的方法:当两个向量方向相近时(相似度高),点积结果较大;方向相反(相似度低)时,点积结果较小甚至为负。
1、QK^T 的核心作用是什么?
- 为什么是 Q 和 K^T?
K 的转置使维度对齐,矩阵乘法 QKT 生成一个 n×n 的相似度矩阵,每个元素是成对点积,直接表示 token 间的相关强度。
- 为什么点积能工作?
点积本质上是一个相似度函数,查询和键的匹配程度被量化为注意力分数。
- 在自注意力中的意义
这个分数矩阵是注意力机制的核心,它决定了每个 token 如何“聚焦”于其他相关信息,使模型能动态捕获长距离依赖(如句子中关键词的关系)。
Q 与 K^T 矩阵乘,相当于在序列中分别计算各词元(token)的相似度。
-
矩阵乘法 Q * K^T 定义为:结果矩阵 A 中的元素 A[i][j] 是矩阵 Q 的第 i 行 (q_i) 与矩阵 K^T 的第 j 列 (k_j) 的点积:A[i][j] = q_i · k_j。
-
q_i:第 i 个 token 的 Query 向量(代表“我在寻找什么信息”)。
-
k_j:第 j 个 token 的 Key 向量(代表“我这里有什么信息”)。
- q_i · k_j:计算 Query i 和 Key j 的相似度或匹配度。
- 矩阵 A (QK^T) 的维度是 [n x n]:
| k_1 (Key^T col1) | k_2 (Key^T col2) | ... | k_j (Key^T colj) | ... | k_n (Key^T coln) | |
|---|---|---|---|---|---|---|
| q_1 (Q row1) | q1·k1 |
q1·k2 |
... |
q1·kj |
... |
q1·kn |
| q_2 (Q row2) | q2·k1 |
q2·k2 |
... |
q2·kj |
... |
q2·kn |
| ... (Q ...) |
... |
... |
... |
... |
... |
... |
| q_i (Q rowi) | qi·k1 |
qi·k2 |
... |
qi·kj |
... |
qi·kn |
| ... (Q ...) |
... |
... |
... |
... |
... |
... |
| q_n (Q rown) | qn·k1 |
qn·k2 |
... |
qn·kj |
... |
qn·kn |
- 每一行 i (A[i][:])
表示对于第 i 个 token(使用其 Query q_i),它与序列中所有 tokens(Key k_1 到 k_n)的相似度得分列表。这正好描述了目标位置 i(q_i的拥有者)对所有源位置 j(k_j的拥有者)的关注程度(原始分数)。
- 每个元素 A[i][j]
具体量化了位置 i(Query i) 对 位置 j(Key j) 的关注程度(关联度/相似度)。
三、矩阵乘法
矩阵乘法
任意两个矩阵相乘,只要A的列数与B的行数相同就行。相乘结果的行数与A相同,列数与B相同。
注意这里矩阵乘法是如何起到查找表的作用的。我们的A矩阵由一堆独热向量堆叠而成。这些独热向量分别在第一列、第四列和第三列的值为1。当我们进行矩阵乘法运算时,这会按顺序提取出B矩阵的第一行、第四行和第三行。利用独热向量提取矩阵特定行的技巧,是Transformer工作原理的核心。
注意力机制与矩阵乘法
现在我们专注于将所有操作都表示为矩阵乘法。我们可以采用上述的查找方法,将每个单词的掩码向量堆叠成一个矩阵,然后利用最近单词的独热表示法来提取相关掩码。
这种掩码查找操作在注意力公式中由这一项表示。
查询向量Q代表感兴趣的特征,矩阵K代表掩码集合。
大模型&AI产品经理如何学习
求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
1.学习路线图

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。


(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方图片前往获取
3.技术文档和电子书
这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。

4.LLM面试题和面经合集
这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集***
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)