AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


可视化理解Transformer中的Attention机制
发布日期:2024-06-21 03:24:46 浏览次数: 1826


3blue1brown



编者按:本文是3blue1brown出品的第6章内容Visualizing Attention, a Transformer's Heart | Chapter 6, Deep Learning.讲解什么是GPT?通过图形化的方式来理解Transformer中的注意力机制。此次节选PART为回顾前一篇文章的Embeddings嵌入技术,并引入案例,解释为何关注注意力机制。

by Grant Sanderson

小编跟踪译文整理,供参考学习





回顾



在上一章中我们探讨了Transformer的内部运作机制,作为大语言模型中关键的技术组成部分,也被广泛应用于现代AI领域的诸多工具中。它首次亮相是在2017年一篇广为人知的论文Attention is All You Need中,本章我们将深入探讨这种Attention注意力机制,以及可视化展示它如何处理数据。

图 1: Attention Is All You Need论文

图 2: Transformer模型架构

在此想快速回顾一些重要的背景信息:正在研究的模型的目标是读取一段文本并预测下一个词。输入文本被分割成称之为Tokens的小部分,它们通常是完整的单词或单词的一部分。但为了让我们在这个视频中的例子更加简单易懂,让我们假设Token总是完整的单词。

嵌入技术(Embeddings)



Transformer的第一步是将每个Token与一个高维向量关联,这就是我们所说的嵌入向量。我希望你能理解的关键概念是,如何理解在所有可能的嵌入向量所构成的高维空间中,不同的方向能够代表不同的语义含义。

在上一章中给出了一个例子,说明了方向如何对应性别,即在这个空间中添加一定的变化可以从一个男性名词的嵌入转到对应的女性名词的嵌入。


这只是一个例子,可以设想在这样一个复杂的空间中有无数的方向,每一个都可能代表着词义的不同方面,Transformer的目标是逐步调整这些嵌入,使之不仅仅编码单词本身,而是包含更丰富、更深层次的上下文含义。

词嵌入Embedding是将每个 Token 映射到高维向量——词向量。


图中每个词表示一个Token(视频为了展示效果,用单词作为Token)。所有可能的 embedding 构成的高维空间(词向量空间)中,方向可以对应语义含义。

方向对应性别的示例:(?(?????)−?(???)) 的向量的方向表示性别,因此 ?(????) 在叠加上该向量后,近似于 ?(?????)。


transformer的目标是逐步调整这些embedding,使它们不仅仅编码单词本身,而是融入更加丰富、更深层次的上下文语义。

注意力机制Attention



深入到计算细节和矩阵运算之前,有必要先了解一些我们期望注意力机制能实现的行为示例。


考虑以下短语:

  • American shrew code:美国真鼹鼠(mole)

  • One mole of carbon dioxide:一摩尔(mole)二氧化碳

  • Take a biopsy of the more:对肿瘤(mole) 进行活检

在不同的上下文环境下,"mole"这个词会有不同的意思。然而在Transformer的第一步中,文本被拆分,每个Token都被关联到一个向量,这时"mole"这个词对应的向量在所有情况下都是相同的,因为初始的Token嵌入向量本质上是一个不参考上下文的查找表。直到Transformer的下一步,周围的嵌入才有机会向这个Token传递信息。可以想象嵌入空间里有多个不同的方向,这些方向分别编码了"mole"这个词的多种不同含义。如果Token经过了良好的训练,注意力模块就可以计算出需要根据上下文在通用嵌入向量中添加什么内容,使其指向其中一个特定的方向。

再来看一个例子,比如单词"Tower"的嵌入向量,这可能是个非常通用、不特定的方向,与许多大型、高大的名词关联。如果"Tower"前面是"埃菲尔",你可能希望更新这个向量,使其更具体地指向埃菲尔铁塔的方向,可能与巴黎、法国或者钢铁制品相关的向量有关。如果前面还有"微型"这个词,那么这个向量应该进一步更新,使其不再与大型、高大的事物相关。

更进一步讲,注意力模块不仅可以精确一个词的含义,还能将一个嵌入向量中的信息传递到另一个嵌入向量中,即使这两个嵌入向量相距很远,信息也可能比单一单词要丰富得多。如我们在上一章中看到的,所有向量通过网络流动,包括经过许多不同的注意力模块后,预测下一个Token的计算过程完全取决于序列中的最后一个向量。例如,你输入的文字是一整部悬疑小说,到了接近尾声的部分,写着"所以,凶手是"。

蓝色游荡生物



如果模型要准确地预测下一个词,那么这个序列中的最后一个向量,它最初只是嵌入了单词"是",它必须经过所有的注意力模块的更新,以包含远超过任何单个单词的信息,通过某种方式编码了所有来自完整的上下文窗口中与预测下一个词相关的信息。

但为了逐步解析计算过程,我们先看一个更简单的例子。假设输入包含了一个句子,"a fluffy blue creature roamed the verdant forest.一个蓬松的蓝色生物在葱郁的森林中游荡"。假设我们此刻关注的只是让形容词调整其对应名词的含义的这种更新方式。我马上要讲的是我们通常所说的单个注意力分支,稍后我们会看到一个注意力模块是由许多不同的分支并行运行组成的。

高维向量



需要强调的是,每个词的初始嵌入是一个高维向量,只编码了该特定词的含义,不包含任何上下文。实际上,这并不完全正确。它们还编码了词的位置。关于位置如何被编码的细节有很多,但你现在只需要知道,这个向量的条目足以告诉你这个词是什么,以及它在上下文中的位置。让我们用字母 E 来表示这些嵌入。

我们的目标是,通过一系列计算产生一组新的、更为精细的嵌入向量,比如这样做可以让名词的嵌入向量捕捉并融合了与它们相对应的形容词的含义。而在深度学习的过程中,希望大部分的计算都像矩阵 - 向量的乘积,其中的矩阵充满了可调的权重,模型将根据数据来学习这些权重。

需要明确的是构造这个形容词调整名词的例子,只是为了说明可以设想一个注意力分支可能做的事情。正如深度学习常见的情况,真实的行为更为复杂,因为它涉及到调整和微调海量参数以最小化某种成本函数。

下一章:Attention工作原理



逐一审视这一过程中涉及的各种参数矩阵时,设想一个具体的应用场景能帮助我们更好地理解其背后的逻辑。

膜拜大佬



原文视频是3Blue1Brown出品,是由斯坦福大学的数学系学生Grant Sanderson创建的YouTube频道。该频道从独特的视觉角度解说高等数学,内容包括线性代数、微积分、神经网络、黎曼猜想、傅里叶变换以及四元数等等。

原文链接



https://www.3blue1brown.com/lessons/attentionhttps://arxiv.org/pdf/1706.03762https://www.youtube.com/watch?v=eMlx5fFNoYc


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询