NLP Academy · 课时

一步步理解自注意力

查询、键和值

第 2 / 4 课13 个步骤

一步步理解自注意力 是 CoddyKit 上的免费 NLP Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 NLP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 NLP Academy 课程共包含 4 节课。

什么是自注意力

在自注意力中,每个词都会查看同一句子中的其他词,从而构建出更丰富、能够感知上下文的自身表示。🔍

每个词的三种角色

每个词都会被映射为三个向量:查询、键和值。这三个角色共同驱动整个自注意力计算。

查询

查询表示一个词正在寻找什么。您可以把它理解为这个词针对句子其余部分提出的问题。

键和值

每个词还会提供一个键,用来表明自身包含的信息;同时提供一个值,其中保存着被选中后要传递的实际信息。

使用点积计算分数

使用点积将一个查询与每个键进行比较。点积越大,说明查询与键越匹配,因此该词应该获得更多关注。

scores = query @ keys.T

缩放分数

将分数除以键维度的平方根。这种缩放可以保持数值稳定,避免 softmax 变得过于尖锐。

scores = scores / (d_k ** 0.5)

使用 Softmax 计算权重

将缩放后的分数输入 softmax,得到注意力权重;这些权重在句子的所有词之间均为正数,且总和为 1。

weights = softmax(scores)

融合值

将每个值乘以对应的权重,再把它们相加。结果是一个新的向量,其中融合了最相关词语的信息。

output = weights @ values

完整公式

所有步骤可以合并为一个简洁的表达式:对查询、键和值执行缩放点积注意力,这一方法最早在 Transformer 论文中提出。

attn = softmax(Q @ K.T / d_k**0.5) @ V

为什么是自注意力,而不是交叉注意力

之所以称为自注意力,是因为查询、键和值都来自同一个序列,这使词语能够关注自身的邻近词。

消除歧义

在“it was tired”中,自注意力会通过为附近词赋予权重,将 it 与正确的名词联系起来,为每个词元提供更清晰的上下文。

快速检查

让我们确认一下自注意力的步骤。

回顾

您已经完整学习了自注意力:将词语转换为查询、键和值,计算分数,进行缩放,应用 softmax,然后融合各个值。这就是它的核心引擎。⚙️

免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「一步步理解自注意力」课时是免费的吗?

是的 — 「一步步理解自注意力」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 NLP Academy 课程的其余内容,请升级到 CoddyKit PRO。 NLP Academy 课程共包含 4 节课。

「一步步理解自注意力」这节课中我会学到什么?

查询、键和值 你通过在浏览器中直接运行的动手代码来练习 NLP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 NLP Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 NLP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「一步步理解自注意力」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 NLP Academy 课中编写并运行代码吗?

能。每节 NLP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 注意力机制的理念
  2. 一步步理解自注意力
  3. 多头注意力与位置信息
  4. Transformer 模块内部
← 返回 NLP Academy