问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Transformer模型详解:从基础架构到交互式可视化

创作时间:
作者:
@小白创作中心

Transformer模型详解:从基础架构到交互式可视化

引用
1
来源
1.
https://www.tech-odyssey.cn/2024/09/06/AI/Transformer-Explainer/

Transformer模型是当前人工智能领域最核心的技术之一,广泛应用于自然语言处理、图像识别等多个领域。本文将通过Transformer Explainer这一交互式工具,深入浅出地介绍Transformer模型的工作原理,帮助读者理解其核心技术。

部署说明

要使用Transformer Explainer,需要确保Node.js版本大于20.0。以下是部署步骤:

git clone https://github.com/poloclub/transformer-explainer.git
cd transformer-explainer
npm install
npm run dev

对于Windows用户,可能需要使用以下命令来安装sharp模块:

cnpm install --platform=win32 --arch=x64 sharp

中文演示与互动功能

Transformer Explainer是一个交互式的工具,可以帮助用户探索Transformer模型的内部工作原理。以下是其主要功能:

  • 输入文本序列:用户可以输入自己的文本序列,观察模型如何处理并预测下一个单词。同时,可以探索注意力权重、中间计算过程,以及最终输出概率的计算方式。
  • 温度控制:通过滑动条控制模型预测的随机性。调整温度值可以改变模型输出的确定性或创造性。
  • 注意力图交互:用户可以与注意力图进行交互,查看模型如何关注输入序列中的不同标记。通过鼠标悬停在标记上,可以突出显示其注意力权重,从而探索模型如何捕获上下文和单词之间的关系。

什么是Transformer?

Transformer模型首次出现在2017年的开创性论文《Attention is All You Need》中,此后成为深度学习模型的首选架构。它不仅支持OpenAI的GPT、Meta的Llama和Google的Gemini等文本生成模型,还被应用于音频生成、图像识别、蛋白质结构预测等多个领域,展现了其在众多领域的多功能性。

从根本上讲,文本生成Transformer模型的核心任务是下一个单词预测:给定用户的文本提示,模型需要预测最有可能的下一个单词。Transformer的核心创新在于其自注意力机制,这使得模型能够更有效地处理整个序列并捕获长距离依赖关系。

GPT-2系列模型是文本生成Transformer的杰出代表。Transformer Explainer基于GPT-2(small)模型,该模型包含1.24亿个参数。虽然它不是最新或最强大的Transformer模型,但其架构组件和原理与当前最先进的模型相似,因此是理解Transformer基础知识的理想起点。

Transformer架构

每个文本生成Transformer模型都由三个关键组件组成:

  1. 嵌入(Embedding):将文本输入划分为更小的单位(标记),并将其转换为数值向量,以捕获单词的语义信息。
  2. Transformer Block:模型的基本构建块,用于处理和转换输入数据。每个块包括注意力机制和MLP层。
  3. 输出概率:通过最后的线性层和softmax层将处理后的嵌入转换为概率,使模型能够对序列中的下一个标记做出预测。

嵌入过程

假设用户输入提示词:“Data visualization empowers users to”。为了使模型能够理解和处理这些文本,需要将其转换为数字表示。以下是嵌入过程的四个步骤:

步骤1:标记化

标记化是将输入文本分解为更小、更易于管理的部分(称为标记)的过程。这些标记可以是单词或子单词。例如,单词“Data”和“visualization”对应于唯一标记,而单词“empowers”则被拆分为两个标记。GPT-2的词汇表包含50,257个唯一标记。

步骤2:Token嵌入

GPT-2 Small将词汇表中的每个标记表示为一个768维向量。这些嵌入向量存储在一个形状为(50,257, 768)的矩阵中,包含大约3900万个参数。这个矩阵允许模型为每个标记分配语义含义。

步骤3:位置编码

位置编码用于捕捉标记在输入序列中的位置信息。GPT-2通过训练自己的位置编码矩阵来实现这一点,将其直接集成到训练过程中。

步骤4:最终嵌入

将标记嵌入和位置编码相加以获得最终的嵌入表示。这种组合表示既捕获了标记的语义含义,也捕获了它们在输入序列中的位置。

Transformer块

Transformer的核心处理单元是Transformer块,它由多头自注意力和多层感知器(MLP)层组成。大多数模型由多个这样的块堆叠在一起,使模型能够对每个标记建立复杂的理解。

多头自注意力

自注意力机制使模型能够专注于输入序列的相关部分,从而捕获复杂的关系和依赖关系。以下是自注意力计算的三个主要步骤:

第一步:查询、键和值矩阵

每个标记的嵌入向量被转换为三个向量:Query (Q)、Key (K)和Value (V)。这些向量是通过将输入嵌入矩阵与学习到的权重矩阵相乘得出的。

这里有一个网络搜索类比,可以帮助理解这些矩阵:

  • Query (Q):相当于用户在搜索引擎中输入的搜索文本。
  • Key (K):相当于搜索结果窗口中每个网页的标题。
  • Value (V):相当于网页显示的实际内容。

通过使用这些QKV值,模型可以计算注意力分数,这决定了每个标记在生成预测时应该获得的关注度。

第二步:掩码自注意力机制

掩码自注意力机制允许模型通过关注输入的相关部分来生成序列,同时阻止访问未来的标记。

  • 注意力分数:通过计算Query和Key矩阵的点积,确定每个查询与每个键的对齐方式,从而产生一个反映所有输入标记之间关系的方阵。
  • 掩码:对注意力矩阵的上三角应用掩码,以防止模型访问未来的标记,并将这些值设置为负无穷大。
  • Softmax:经过掩码处理后,注意力得分通过softmax运算转换为概率,确保每一行总和为1,并表示其左侧每个其他标记的相关性。
第三步:输出

模型使用掩码后的自注意力得分,并将其与Value矩阵相乘,以获得自注意力机制的最终输出。GPT-2有12个自注意力heads,每个head捕获token之间的不同关系。这些head的输出被连接起来并通过线性投影。

多层感知器

在多个自注意力机制捕获输入token之间的不同关系后,连接的输出将通过多层感知器(MLP)层,以增强模型的表示能力。

MLP块由两个线性变换组成,中间有一个GELU激活函数。第一个线性变换将输入的维数从768增加到3072,第二个线性变换将维数降低回768,确保后续层接收一致维度的输入。与自注意力机制不同,MLP独立处理token并简单地将它们从一种表示映射到另一种表示。

输出概率

在输入经过所有Transformer块处理后,输出将通过最后的线性层,为标记预测做好准备。此层将最终表示投影到50,257维空间中,词汇表中的每个标记都有一个对应的值,称为logit。然后,应用softmax函数将logit转换为总和为1的概率分布。最后,通过调节temperature参数,可以从该分布中采样生成下一个标记。

  • temperature = 1:对softmax输出没有影响。
  • temperature < 1:较低的温度通过锐化概率分布使模型更加自信和确定。
  • temperature > 1:较高的温度会产生更柔和的概率分布,从而允许生成的文本具有更多的随机性。

高级架构功能

层归一化、Dropout和残差连接是Transformer模型中的关键组件,尤其是在训练阶段。

层归一化

层归一化有助于稳定训练过程并提高收敛性。它通过对特征之间的输入进行归一化来工作,确保激活的均值和方差一致。每个Transformer块中都会应用两次层归一化,一次在自注意力机制之前,一次在MLP层之前。

Dropout

Dropout是一种正则化技术,通过在训练期间随机将模型权重的一部分设置为零来防止神经网络过度拟合。这鼓励模型学习更稳健的特征并减少对特定神经元的依赖,帮助网络更好地推广到新的、未见过的数据。

残差连接

残差连接于2015年首次在ResNet模型中引入。这种架构创新通过实现非常深的神经网络的训练,彻底改变了深度学习。在GPT-2中,每个Transformer块内使用两次残差连接,以确保梯度更容易流动,并且较早的层在反向传播期间获得足够的更新。

Transformer Explainer的构建

Transformer Explainer具有一个可直接在浏览器中运行的实时GPT-2(小型)模型。该模型源自Andrej Karpathy的nanoGPT项目PyTorch GPT实现,并已转换为ONNX Runtime实现以实现浏览器内无缝执行。该界面使用JavaScript构建,借助Svelte作为前端框架以及使用D3.js创建动态可视化。数值根据用户输入实时更新。

开发团队

Transformer Explainer的开发团队包括Aeree Cho、Grace C. Kim、Alexander Karpekov、Alec Helbling、Jay Wang、Seongmin Lee、Benjamin Hoover以及佐治亚理工学院的Polo Chau。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号