文章目录
- 一、Transformer就在你身边
- 二、Transformer基本概念
- 1. 多头注意力机制
- 2. 位置编码
- 3.残差连接
- 三、Transformer的结构
- 1.纯 Encoder 模型(例如 BERT)
- 2.纯 Decoder 模型(例如 GPT)
- 3.Encoder-Decoder 模型
- 四、应用案例
- 1.机器翻译
- 2.文本生成
- 3.问答系统
- 四、面试会用到
- 1. self-attention机制是什么?(高频)
- 2. 为什么Transformer需要位置编码?以及常见的位置编码有哪些?
- 3. 残差链接的作用?
- 4.解释多头注意力机制?
- 5.Transformer和RNN、LSTM相比,优势在哪?
- 后记
自从 BERT 和 GPT 模型取得重大成功之后, Transformer 结构已经替代了循环神经网络 (RNN) 和卷积神经网络 (CNN),成为了当前 NLP 模型的标配。
一、Transformer就在你身边
标题怎么说?被说烂的GPT里面的“T”就是Transformer本尊啦。GPT的全称是the Generative Pretrained Transformer(生成式预训练变换器)。那么问题来了。GPT与Transformer有什么关系呢?
Transformer是一种自注意力机制的深度学习模型框架,目前广泛应用在处理文本(自然语言处理)中。
而GPT是OpenAI开发的一种大语言模型,使用了Transformer架构,并在大量的数据上进行训练。从而有了强大的语言理解和生成能力。
简单的说,GPT的核心就是Transformer。
具体的说呢,GPT使用了Transformer中的编码器部分,比如,增加了更多的参数和训练数据,从而提高了模型的性能和效果。
二、Transformer基本概念
Transformer由一个编码器和解码器组成,编码器里面有多头注意力和前馈神经网络,分别都有残差连接,这样的n个transformer block就组成了编码器。解码器是在编码器的基础上多了带掩码的多头自注意力。
1. 多头注意力机制
让模型处理文本时关注时,能同时关注不同位置的信息。它能让模型学习到文本中的长距离依赖关系,更好的理解和处理语言。
2. 位置编码
Transformer无法感知单词顺序。位置编码就是给单词富裕位置信息,让模型能捕捉到句子结构和意义。
3.残差连接
是为了防止模型训练时出现梯度消失的问题。简单来讲,就是模型的每一层之间添加了一条捷径,让信息能更顺畅的流动。这样呢,模型可以训练的更深,效果也会更好。
三、Transformer的结构
标准的 Transformer 模型主要由两个模块构成:
Encoder(左边):负责理解输入文本,为每个输入构造对应的语义表示(语义特征);
Decoder(右边):负责生成输出,使用 Encoder 输出的语义表示结合其他输入来生成目标序列。
这两个模块可以根据任务的需求而单独使用:
1.纯 Encoder 模型(例如 BERT)
纯 Encoder 模型只使用 Transformer 模型中的 Encoder 模块,也被称为自编码 (auto-encoding) 模型。在每个阶段,注意力层都可以访问到原始输入句子中的所有词语,即具有“双向 (Bi-directional)”注意力。适用于只需要理解输入语义的任务,例如句子分类、命名实体识别。
BERT 是第一个基于 Transformer 结构的纯 Encoder 模型,它在提出时横扫了整个 NLP 界,在流行的 GLUEhttps://arxiv.org/abs/1804.07461 基准上超过了当时所有
的最强模型。随后的一系列工作对 BERT 的预训练目标和架构进行调整以进一步提高性能。
2.纯 Decoder 模型(例如 GPT)
纯 Decoder 模型只使用 Transformer 模型中的 Decoder 模块。在每个阶段,对于给定的词语,注意力层只能访问句子中位于它之前的词语,即只能迭代地基于已经生成的词语来逐个预测后面的词语,因此也被称为自回归 (auto-regressive) 模型。
纯 Decoder 模型的预训练通常围绕着预测句子中下一个单词展开。纯 Decoder 模型适合处理那些只涉及文本生成的任务。对 Transformer Decoder 模型的探索在在很大程度上是由OpenAI 带头进行的,通过使用更大的数据集进行预训练,以及将模型的规模扩大,纯 Decoder 模型的性能也在不断提高。适用于生成式任务,例如文本生成。
3.Encoder-Decoder 模型
Encoder-Decoder 模型或 Seq2Seq 模型(例如 BART、T5):适用于需要基于输入的生成式任务,例如翻译、摘要。
四、应用案例
1.机器翻译
Transformer让机器翻译更自然准确,像谷歌翻译这些主流翻译系统等都用了它。
2.文本生成
相信这块大家都不陌生了。Transformer可用于新闻写作、故事创作和诗歌生成。
3.问答系统
最常见的就是智能客服、智能助手、语音助手等。
四、面试会用到
1. self-attention机制是什么?(高频)
self-attention机制是Transformer核心,它能让模型在处理序列数据时,为不同位置信息分配权重,通过生成查询向量Q、键向量K和值向量V,计算点积、归一化得到权重,在对值向量加权求和,以此捕捉长距离依赖关系,提升模型性能。
2. 为什么Transformer需要位置编码?以及常见的位置编码有哪些?
因为Transformer本身无法处理序列顺序信息,而位置编码能赋予其顺序信息,这对语义理解很关键。
常见的位置编码有正弦位置编码(预先计算生成位置向量,处理长序列效果好)和学习位置编码(模型训练时自动学习位置编码,比较灵活)。
3. 残差链接的作用?
主要是解决深度模型训练时的梯度消失和梯度爆炸问题。
在深度网络中,如果层数太多,随着训练的进行,梯度在反向传播过程中可能会变得很大或很小,导致模型难以训练。残差连接通过在网络层间添加捷径,让梯度能够更顺畅的反向传播,这样模型就可以训练的更深,提高模型的表达能力和训练效果。简单来说,就是帮助深度模型更好的学习和收敛。
4.解释多头注意力机制?
多头注意力机制是同时用多个注意力头,每个头独立学习不同特征。将输入分配到各头进行self-attention计算后拼接,再线性变换输出。它能让模型多角度关注序列,捕捉丰富复杂特征和依赖关系,增强表达能力,提升任务性能。
5.Transformer和RNN、LSTM相比,优势在哪?
Transformer相比RNN、LSTM有不少优势。
首先是并行计算能力强,RNN这类模型按顺序处理序列,难以利用并行计算加速,而Transformer能同时处理序列中各个位置,大大节省空间。
其次,它对长序列数据的处理效果更好,RNN和LSTM在处理长序列时容易出现梯度消失或梯度爆炸问题,导致难以捕捉长距离依赖关系,Transformer的self-attention机制则能有效解决这个问题,能直接建模序列中任意位置间的依赖,更好的理解长序列语义。
后记
这本来是一个前记,但是一不小心写多了放到前面不妥,写成了年度总结?或许是日记?又或许是…写都写了,删了又不太好叭?!哈哈,所以就诞生出一个后记。
时隔半年,我又回来啦!看到最新一篇笔记,半年前发生的事情恍如昨日。历历在目间让我发觉记录的必要性,所以重新提笔,想要记录这美好的但又不怎么美好的一切。这半年发生了很多事情,小到我自己的抓马生活,大到AI界的重大突破DeepSeek。万幸的是,今年是一个旺我的年哈哈,我非常期待,我满怀热情与信心。
身为一个理工女,我没有华丽的辞藻,没有优美的比喻,只有袒露赤城。有着不该从理工女身上看到的感性,感性到什么程度呢?大概就是早高峰在公交车上,耳机里传来那首“西安人的城墙下是西安人的歌”的前奏就已经泪流满面(包括正在写这句话此刻的我),从那之后我不敢再去听这首歌,前奏一起就忍不住了,对这首歌有了后遗症。害,乱七八糟说了这么多。我相信所有的经历都是为了雕刻出更好的自己,希望大家都能成为更好的自己。那就从学习万能的Transformer开始叭!我们都是坠坠棒的!