【AI大模型】解锁AI智能:从注意力机制到Transformer,再到BERT与GPT的较量

么凹猫' 2024-08-20 17:01:01 阅读 92

在这里插入图片描述


文章目录

前言一、揭秘注意力机制:AI的焦点如何塑造智能1.什么是注意力机制?2.为什么需要注意力机制?

二、变革先锋:Transformer的突破与影响力1.什么是Transformer?2.为什么Transformer如此重要?

三、路径分岔:GPT与BERT的策略与应用对比1.BERT2.BERT vs GPT 差异3.BERT vs GPT 共识

四、一些概念的简单概述RNNEmbeddings

五、参考论文:


前言

在AI技术的迅猛发展中,注意力机制成为了关键驱动力,赋予机器高效处理复杂信息的能力。本文深入探索注意力机制及其核心应用——Transformer架构,解析其如何通过自注意力机制革新自然语言处理。同时,对比分析GPT与BERT两大热门模型,揭示它们在策略上的差异与共识,探讨其在未来智能技术中的潜力。此外,本文还将简要提及RNN与Embeddings等基础概念,为读者构建一个关于注意力机制及其应用的初步框架。期待通过本文,读者能对AI领域的这一重要技术有更深入的了解和启发。

在这里插入图片描述


一、揭秘注意力机制:AI的焦点如何塑造智能

1.什么是注意力机制?

两种不同的神经网络架构

首先,我们先了解一下下图中两种不同的神经网络架构:传统的编码器-解码器(<code>Encoder-Decoder)架构带有注意力机制的编码器-解码器架构。这两种架构常用于序列到序列(Sequence-to-Sequence,Seq2Seq)任务,如机器翻译。

在这里插入图片描述

以学生向教师传递信息举例:

传统的编码器-解码器(Encoder-Decoder)架构

传递信息时,类似->击鼓传花,A->B->C => 教师 带有注意力机制的编码器-解码器架构

传递信息时,(A,B,C)=>教师 (教师听每个人说什么,自己分析每人所说的重点)

对比传统编码器-解码器和带有注意力机制的编码器-解码器

在这里插入图片描述

a.左侧表格对比了传统编码器-解码器和带有注意力机制的编码器-解码器的函数和步骤:

<code>Encode:

传统编码器:每个输入元素

x

i

x_i

xi​更新隐藏状态

h

j

h_j

hj​带注意力的编码器:同上,但额外计算了注意力权重

α

i

j

α_{ij}

αij​并用于生成上下文向量

c

j

c_j

cj​ Context

传统编码器:将最后一个隐藏状态

h

T

h_T

hT​ 作为上下文向量。带注意力的编码器:通过加权平均所有隐藏状态

h

i

h_i

hi​ 来生成上下文向量

c

j

c_j

cj​。 Decode

传统解码器:使用上下文向量

c

c

c 和解码器的前一步隐藏状态

s

j

1

s_{j-1}

sj−1​ 更新解码器隐藏状态

s

j

s_j

sj​。带注意力的解码器:同上,但使用的是加权的上下文向量

c

j

c_j

cj​。 Generate

传统解码器:根据解码器隐藏状态

s

j

s_j

sj​ 和上下文向量

c

c

c 生成输出

y

j

y_j

yj​。带注意力的解码器:同上,但使用加权的上下文向量

c

j

c_j

cj​。

b.右侧图形展示了两种架构的详细流程

传统编码器-解码器(左半部分):

编码器将输入序列

x

1

,

x

2

,

x

3

x_1, x_2, x_3

x1​,x2​,x3​ 转换为隐藏状态

h

1

,

h

2

,

h

3

h_1, h_2, h_3

h1​,h2​,h3​。最后一个隐藏状态

h

3

h_3

h3​ 作为上下文向量

c

c

c 传给解码器。解码器根据

c

c

c 和前一个输出

y

j

1

y_{j-1}

yj−1​ 生成下一个输出

y

j

y_j

yj​。 带注意力的编码器-解码器(右半部分):

编码器同样将输入序列转换为隐藏状态

h

1

,

h

2

,

h

3

h_1, h_2, h_3

h1​,h2​,h3​。注意力机制计算出每个隐藏状态的注意力权重

α

i

1

α_{i1}

αi1​,

α

i

2

α_{i2}

αi2​,

α

i

3

α_{i3}

αi3​。根据注意力权重

α

i

j

α_{ij}

αij​ 计算加权的上下文向量

c

j

c_j

cj​。解码器根据

c

j

c_j

cj​和前一个输出

y

j

1

y_{j-1}

yj−1​生成下一个输出

y

j

y_j

yj​。

c.关键区别:

传统编码器-解码器仅使用最后一个隐藏状态作为上下文向量。带注意力的编码器-解码器使用加权的上下文向量,其中权重取决于解码器的当前状态。

Encoder-decoder Architecture with Attention Model

在这里插入图片描述

输入序列:

输入序列经过编码器转换为隐藏状态。 注意力机制:

解码器的隐藏状态与编码器的隐藏状态相比较,计算注意力权重,这是由一个名为“alignment function”的函数完成的。注意力权重是通过比较查询(query)和键(key)的相似度得出的。注意力权重通常通过softmax函数进行归一化,以确保总和为1。 加权上下文向量:

加权上下文向量是通过将隐藏状态乘以其对应的注意力权重然后求和得到的。 解码器:

解码器根据加权上下文向量和前一个输出生成下一个输出。

学习注意力权重:

注意力权重的学习是一个迭代的过程,解码器通过反向传播算法调整权重,使其更加聚焦于输入序列中相关的信息。 额外的值向量:

在某些情况下,注意力机制还考虑额外的值向量,这可能会提供更多的信息来帮助解码器生成输出。

不同类型的对齐函数,进一步分析带注意力机制的编码器-解码器架构

在这里插入图片描述

2.为什么需要注意力机制?

注意力机制的特点和优势:

注意力机制有助于克服循环神经网络(<code>RNNs)的一些挑战,例如输入序列长度增加时性能下降和顺序处理输入导致的计算效率低下。在自然语言处理(NLP)、计算机视觉(Computer Vision)、跨模态任务和推荐系统等多个领域中,注意力机制已成为多项任务重的最先进模型,取得了显著的性能提升。注意力机制不仅可以提高主要任务的性能,还具有其它优势。它们被广泛应用于提高神经网络的可解释性,帮助解释模型的决策过程,使得原本被认为是黑盒模型的神经网络变得更易解释。这对于人们对机器学习模型的公平性、可追溯性和透明度的关注具有重要意义。

克服循环神经网络(RNNs)的一些挑战

解决传统编码器-解码器模型的挑战,避免信息损失和无法建模输入输出对齐的问题。允许解码器访问整个编码的输入序列,通过注意力权重选择性地关注相关信息。自动学习注意力权重,捕捉编码器和解码器之间的相关性。构建上下文向量,使解码器能够全面访问输入序列并重点关注相关部分。提高模型性能,改善输出质量,并提供更好的解释性。


二、变革先锋:Transformer的突破与影响力

1.什么是Transformer?

注意力建模技术的关键组成部分:

在这里插入图片描述

Encode-Decoder架构 与 Transformer架构

在这里插入图片描述

Transformer 架构

<code>Multi-Head Attention: Transformer的核心模块之一,它允许模型同时关注输入的不同方面。Feed Forward: 用于非线性变换的全连接层。Add & Norm: 添加残差连接和层归一化操作,有助于梯度流经深层网络。Positional Encoding: 添加到输入嵌入中的信号,使模型能够理解输入元素的位置信息。Linear: 线性变换,可能用于合并多头注意力的结果或其他目的。Softmax: 输出概率分布。

对比:

seq-aligned RNNs使用RNN作为编码器和解码器,而Transformer完全基于注意力机制。Transformer引入了多头注意力和残差连接,使得模型更易于训练和扩展。Transformer中的注意力机制不再局限于序列对齐,而是可以在整个输入序列上自由地分配注意力。

自注意力机制

Scaled Dot-Product Attention =>a 一种对齐函数

在这里插入图片描述

在这里插入图片描述

Transformer:Encoder-Decoder

在这里插入图片描述

2.为什么Transformer如此重要?

Attention is all you need:

<code>Transformer是第一个完全依赖自我注意力机制来计算输入和输出表示的转换模型,没有使用序列对齐的RNN或卷积运算。这意味着它能更好地处理长距离依赖关系,因为它可以直接关注输入序列中的任何部分,而不需要按照顺序处理。 GPU-friendly parallel computation:

Transformer的层高度并行化,导致更低的计算成本。由于注意力机制可以并行计算,因此在GPU上运行时速度更快,这对于大规模文本处理任务至关重要。 Sentence-level representations:

Transformer结合了位置编码,可以通过考虑标记的相对位置来捕获长程依赖关系。这意味着它不仅能捕捉单词间的直接联系,还能理解句子级别的语境信息。

在这里插入图片描述

三、路径分岔:GPT与BERT的策略与应用对比

在这里插入图片描述

1.BERT

<code>BERT (Bidirectional Encoder Representations from Transformers) 是一种深度学习预训练模型,由Google的研究人员在2018年提出,并且在自然语言处理(NLP)领域产生了重大影响。

BERT 的创新之处在于它使用了双向的Transformer编码器来生成词的上下文嵌入,这意味着它可以同时考虑一个词前后的上下文信息,从而获得更准确的语言理解能力。

BERT : Pre-training + Fine-Tuning Paradigm

在这里插入图片描述

BERT 独特价值

1. 全方位上下文理解: 与以前的模型(例如 <code>GPT )相比,BERT 能够双向理解上下文,即同时考虑一个词的左右边的上下文。这种全方位的上下文理解使得 BERT 能够更好地理解语言,特别是在理解词义、消歧等复杂任务上有明显优势。

2. 预训练+微调(Pre-training + Fine-tuning)的策略: BERT 模型先在大规模无标签文本数据上进行预训练,学习语言的一般性模式,然后在具体任务的标签数据上进行微调。这种策略让 BERT 能够在少量标签数据上取得很好的效果,大大提高了在各种 NLP 任务上的表现。

3. 跨任务泛化能力: BERT 通过微调可以应用到多种 NLP 任务中,包括但不限于文本分类、命名实体识别、问答系统、情感分析等。它的出现极大地简化了复杂的 NLP 任务,使得只需一种模型就能处理多种任务。

4. 多语言支持: BERT 提供了多语言版本(Multilingual BERT),可以支持多种语言,包括但不限于英语、中文、德语、法语等,使得 NLP 任务能够覆盖更广的语言和地区。

5. 性能优异:BERT 模型提出以来,它在多项 NLP 基准测试中取得了优异的成绩,甚至超过了人类的表现。它的出现标志着 NLP 领域进入了预训练模型的新时代。

6. 开源和可接入性: BERT 模型和预训练权重由 Google 公开发布,让更多研究者和开发者可以利用 BERT 模型进行相关研究和应用开发,推动了整个 NLP 领域的发展。

2.BERT vs GPT 差异

特性 BERT GPT
训练方式 自编码(Autoencoding 自回归(Autoregressive
预测目标 给定上下文,预测其中一个或多个缺失单词 在给定前面的单词时,预测下一个单词
输入处理 双向,可以同时考虑一个词的左右上下文 单向(从左到右或者从右到左)
适用场景 适合理解上下文,有助于信息提取、问答系统、情感分析等 适合生成式任务,如文章生成、诗歌创作等
架构 基于Transformer的编码器 基于Transformer的解码器
语言模型 判别式(Discriminative 生成式(Generative
优点 对上下文理解能力强 预测的连贯性强
缺点 生成的文本连贯性较弱 对上下文理解能力相对较弱

3.BERT vs GPT 共识

模型架构 Transformer
数据预处理 都需要对数据进行Tokenization,一般使用词片方法(Subword Tokenization
模型训练 均使用了大量的无标签数据进行预训练
任务迁移 都可以通过Fine-tuning方式进行任务迁移
训练目标 都试图通过预训练理解语言的一般模式,如语法、语义、上下文关系等
多语言支持 均支持多语言模型训练

四、一些概念的简单概述

RNN

循环神经网络(RNN) 是一种专为序列数据设计的神经网络模型,它通过在隐藏层中引入循环连接来保持对先前输入的记忆,从而能够处理可变长度的数据序列。 RNN广泛应用于自然语言处理、语音识别和时间序列预测等领域,但由于梯度消失/爆炸问题,在实际应用中常被LSTMGRU等更先进的变种所取代。

Embeddings

Embeddings 是一种将文本中的单词或短语转换为连续向量的技术,这些向量能够捕捉词汇间的语义和句法关系,从而帮助解决数据稀疏性问题并量化词汇间的相似性和差异性,在自然语言处理任务如文本分类、命名实体识别、机器翻译等场景中有广泛应用。常见的创建方法包括 Word2VecGloVeFastTextBERT 等,可以通过预训练或与具体任务模型联合训练的方式获得。

五、参考论文:

An attentive survey of attention models Attention Is All You NeedVisual Attention Methods in Deep Learning An In-Depth Survey


在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。