一、简单理解

注意力就是计算各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%免费】🆓

Logo

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

更多推荐