人工智能

NLP崛起与Transformer模型 | 对T5、BERT和GPT的全面分析

mm
Guide on NLP

自然语言处理(NLP)近年来经历了一些最有影响力的突破,主要归功于Transformer架构。这些突破不仅提高了机器理解和生成人类语言的能力,还重新定义了许多应用的格局,从搜索引擎到对话式人工智能。

为了充分理解Transformer的重要性,我们必须首先回顾一下为这个革命性架构奠定基础的前身和基础技术。

早期NLP技术:Transformer之前的基础

词嵌入:从One-Hot到Word2Vec

在传统的NLP方法中,词的表示往往是字面上的,缺乏语义或句法理解。One-Hot编码是一个典型的例子。

One-Hot编码是一个过程,通过将分类变量转换为二进制向量表示,其中只有一个位是“热”(设置为1),而其他位是“冷”(设置为0)。在NLP的背景下,词汇表中的每个词都由一个One-Hot向量表示,其中每个向量的大小等于词汇表的大小,每个词都由一个向量表示,该向量在对应于该词在词汇表中的索引处有一个1,其他地方都是0。

One-Hot编码示例

假设我们有一个只有五个词的微小词汇表:[“king”, “queen”, “man”, “woman”, “child”]。每个词的One-Hot编码向量如下:

  • “king” -> [1, 0, 0, 0, 0]
  • “queen” -> [0, 1, 0, 0, 0]
  • “man” -> [0, 0, 1, 0, 0]
  • “woman” -> [0, 0, 0, 1, 0]
  • “child” -> [0, 0, 0, 0, 1]

数学表示

如果我们用 表示词汇表的大小,用 表示词汇表中第i个词的One-Hot向量表示,则 的数学表示为:

其中第i个位置是1,其他位置都是0。

One-Hot编码的主要缺点是,它将每个词视为一个孤立的实体,没有与其他词的任何关系。这导致了稀疏和高维的向量,它们不能捕获词的语义或句法信息。

Word2Vec的引入,尤其是由Google的Tomas Mikolov领导的团队在2013年开发的Word2Vec,是NLP领域的一个重要时刻。Word2Vec将词表示为密集向量空间,捕获了词在大型文本语料库中上下文的语法和语义关系。

与One-Hot编码不同,Word2Vec生成的向量通常具有数百个维度。出现在相似上下文中的词,如“king”和“queen”,将具有在向量空间中更接近的向量表示。

为了说明,让我们假设我们已经训练了一个Word2Vec模型,并将词表示为一个假设的3维空间。嵌入(通常比3维,但这里简化)可能如下所示:

  • “king” -> [0.2, 0.1, 0.9]
  • “queen” -> [0.21, 0.13, 0.85]
  • “man” -> [0.4, 0.3, 0.2]
  • “woman” -> [0.41, 0.33, 0.27]
  • “child” -> [0.5, 0.5, 0.1]

虽然这些数字是虚构的,但它们说明了相似词具有相似的向量。

数学表示

如果我们将Word2Vec词嵌入表示为 , 且我们的嵌入空间有 维,则 可以表示为:

[v1,v2,,vd]

语义关系

Word2Vec甚至可以捕获复杂的关系,例如类比。例如,Word2Vec嵌入捕获的著名关系是:

vector(“king”) – vector(“man”) + vector(“woman”)≈vector(“queen”)

这是因为Word2Vec在训练过程中调整词向量,使得在语料库中共享上下文的词在向量空间中更接近。

Word2Vec使用两种主要架构来生成词的分布式表示:连续袋词(CBOW)和Skip-Gram。CBOW从上下文词预测目标词,而Skip-Gram则相反,预测上下文词。这种方法使得机器能够以更细致的方式理解词的使用和含义。

序列建模:RNNs和LSTMs

随着领域的发展,重点转向了理解文本序列,这对于机器翻译、文本摘要和情感分析等任务至关重要。循环神经网络(RNNs)由于其处理序列数据的能力而成为这些应用的基石。

然而,RNNs并非没有局限性。它们在处理长距离依赖时遇到困难,这是由于梯度消失问题引起的,信息在长序列中会丢失,使得学习事件之间的相关性变得困难。

长短期记忆网络(LSTMs),由Sepp Hochreiter和Jürgen Schmidhuber于1997年提出,通过更复杂的架构解决了这个问题。LSTMs具有控制信息流动的门:输入门、遗忘门和输出门。这些门决定了什么信息被存储、更新或丢弃,使得网络能够保留长距离依赖并显著提高了在广泛NLP任务上的性能。

Transformer架构

NLP领域在2017年Vaswani等人发表的“Attention is All You Need”论文中引入Transformer模型后发生了戏剧性的变化。Transformer架构偏离了RNNs和LSTMs的序列处理,转而使用一种称为自注意力的机制来加权输入数据的不同部分的影响。

Transformer的核心思想是,它可以同时处理整个输入数据,而不是顺序处理。这使得模型可以更好地并行化,从而在训练速度上获得了显著的提高。自注意力机制使得模型可以在处理输入数据时关注不同的部分,这对于理解上下文和词之间的关系至关重要,无论它们在文本中的位置如何。

Transformer中的编码器和解码器:

在原始Transformer模型中,如Vaswani等人在论文“Attention is All You Need”中所述,架构分为两个主要部分:编码器和解码器。两部分都由具有相同一般结构但服务于不同目的的层组成。

编码器:

  • 角色:编码器的角色是处理输入数据并创建一个捕获元素之间关系的表示。这个Transformer部分不生成任何新内容;它只是将输入转换为解码器可以使用的状态。
  • 功能:每个编码器层都具有自注意力机制和前馈神经网络。自注意力机制允许编码器中的每个位置关注前一层编码器中的所有位置——因此,它可以学习每个词周围的上下文。
  • 上下文嵌入:编码器的输出是一系列向量,它们在高维空间中表示输入序列。这些向量通常被称为上下文嵌入,因为它们不仅编码个别词,还编码它们在句子中的上下文。

解码器:

  • 角色:解码器的角色是根据从编码器接收的输入和到目前为止生成的内容,顺序地生成输出数据,一次一个部分。它的设计目的是用于文本生成等任务,其中生成顺序至关重要。
  • 功能:解码器层也包含自注意力机制,但它们被掩蔽以防止位置关注后续位置。这确保了对特定位置的预测仅取决于之前的已知输出。另外,解码器层包括一个关注编码器输出的第二个注意力机制,将输入的上下文整合到生成过程中。
  • 顺序生成能力:这指的是解码器根据已经生成的内容,逐步生成序列的能力。例如,在文本生成时,解码器根据编码器提供的上下文和已经生成的词序列,预测下一个词。

编码器和解码器中的每个子层对于模型处理复杂NLP任务的能力至关重要。多头注意力机制特别允许模型选择性地关注序列的不同部分,从而对上下文有更深入的理解。

流行的使用Transformer的模型

Transformer模型最初成功后,基于其架构的新模型如雨后春笋般涌现,每个模型都有其创新和针对不同任务的优化:

BERT(来自Transformer的双向编码器表示):由Google于2018年推出,BERT通过在大型文本语料库上进行掩码语言模型和下一句预测的预训练,彻底改变了语言表示中上下文信息的集成方式。BERT捕获了丰富的双向上下文,并在广泛的NLP任务中取得了最先进的结果。

BERT

BERT

T5(文本到文本转换Transformer):由Google于2020年推出,T5将所有NLP任务重新表述为文本到文本问题,使用统一的基于文本的格式。这种方法简化了将模型应用于各种任务的过程,包括翻译、摘要和问答。

T5架构

T5架构

GPT(生成式预训练Transformer):由OpenAI开发,GPT模型系列从GPT-1开始,到2023年已经发展到GPT-4。这些模型使用无监督学习在大量文本数据上预训练,并针对各种任务进行微调。它们生成连贯且上下文相关的文本的能力使它们在学术和商业AI应用中都非常有影响力。

GPT架构

GPT架构

以下是T5、BERT和GPT模型在各个维度上的更深入比较:

1. 分词和词汇

  • BERT:使用WordPiece分词,词汇表大小约为30,000个标记。
  • GPT:使用字节对编码(BPE),词汇表大小很大(例如,GPT-3的词汇表大小为175,000)。
  • T5:使用SentencePiece分词,将文本视为原始文本,无需预分词。

2. 预训练目标

  • BERT:掩码语言模型(MLM)和下一句预测(NSP)。
  • GPT:因果语言模型(CLM),其中每个标记预测序列中的下一个标记。
  • T5:使用一种去噪目标,其中随机的文本跨度被替换为一个哨兵标记,模型学习重构原始文本。

3. 输入表示

  • BERT:标记、段和位置嵌入的组合来表示输入。
  • GPT:标记和位置嵌入的组合(没有段嵌入,因为它不是为句对任务设计的)。
  • T5:仅使用标记嵌入,并在注意力操作期间添加相对位置编码。

4. 注意力机制

  • BERT:使用绝对位置编码,并允许每个标记关注左侧和右侧的所有标记(双向注意力)。
  • GPT:也使用绝对位置编码,但限制注意力仅在之前的标记(单向注意力)。
  • T5:实现了一种变体的Transformer,使用相对位置偏差而不是位置嵌入。

5. 模型架构

  • BERT:仅编码器架构,具有多层Transformer块。
  • GPT:仅解码器架构,也具有多层,但设计用于生成任务。
  • T5:编码器-解码器架构,其中编码器和解码器都由Transformer层组成。

6. 微调方法

  • BERT:将预训练模型的最终隐藏状态适应于下游任务,根据需要添加输出层。
  • GPT:在Transformer上添加一个线性层,并使用相同的因果语言模型目标对下游任务进行微调。
  • T5:将所有任务转换为文本到文本格式,模型通过生成目标序列从输入序列进行微调。

7. 训练数据和规模

  • BERT:在BookCorpus和英文维基百科上训练。
  • GPT:GPT-2和GPT-3在互联网上提取的多样化数据集上训练,GPT-3在一个名为Common Crawl的更大语料库上训练。
  • T5:在“Colossal Clean Crawled Corpus”上训练,这是一个大型且干净的Common Crawl版本。

8. 上下文和双向性的处理

  • BERT:旨在同时理解上下文的双向性。
  • GPT:训练为理解左到右的上下文。
  • T5:能够在编码器中建模双向上下文,在解码器中建模单向上下文,适合序列到序列任务。

9. 适应下游任务

  • BERT:需要针对每个下游任务进行特定任务的头层和微调。
  • GPT:具有生成性质,可以通过最少的结构修改提示执行任务。
  • T5:将所有任务视为“文本到文本”问题,使其在适应新任务方面具有固有的灵活性和适应性。

10. 可解释性和可说明性

  • BERT:双向性质提供了丰富的上下文嵌入,但可能更难解释。
  • GPT:单向上下文可能更容易理解,但缺乏双向上下文的深度。
  • T5:编码器-解码器框架提供了处理步骤的清晰分离,但由于其生成性质,可能更复杂,难以分析。

Transformer对NLP的影响

Transformer通过使模型能够并行处理序列数据,从而以以前无法想象的速度和效率训练大型神经网络,彻底改变了NLP领域。它们引入了自注意力机制,使模型能够根据输入数据的不同部分的重要性进行加权。这导致了NLP任务(包括但不限于翻译、问答和文本摘要)上的前所未有的改进。

研究继续推动基于Transformer的模型的边界。GPT-4及其同代人不仅规模更大,而且由于架构和训练方法的进步而更高效、更强大。少样本学习(模型仅使用少量示例执行任务)和更有效的迁移学习方法是当前研究的前沿。

基于Transformer的语言模型从数据中学习,这些数据可能包含偏见。研究人员和实践者正在积极地识别、理解和减轻这些偏见。技术从策划训练数据集到针对公平性和中立性的后训练调整都有所不同。

我已经沉浸在了令人着迷的机器学习和深度学习世界中五年了。我的热情和专业知识让我为超过50个不同的软件工程项目做出了贡献,特别关注AI/ML。我的持续的好奇心也让我对自然语言处理产生了兴趣,这是一个我渴望进一步探索的领域。