Transformer常用知识点

1. Transformer 整个框架结构

Transformer 是一个完全基于注意力机制的神经网络架构,主要用于处理序列数据(如文本)。它由 编码器(Encoder)解码器(Decoder) 两大模块组成。编码器负责将输入序列(比如一句话)转换成一种“深度理解”的表示形式,而解码器则根据编码器的输出逐步生成目标序列(比如翻译后的句子)。每个编码器和解码器都由多个相同的层堆叠而成(例如原始论文用了6层),每层内部又包含 自注意力机制前馈神经网络 两个核心组件。


2. Tokenization - 文本变成 Token

Tokenization(分词) 是将原始文本拆分成更小单元(Token)的过程。例如:

  • 单词级分词:将句子拆分成单词(如 “I love AI” → [“I”, “love”, “AI”])。
  • 子词级分词:解决未登录词问题(如 “unhappy” → [“un”, “happy”])。
  • 字符级分词:每个字符作为一个 Token(如 “A” → [“A”])。

常用算法包括 BPE(Byte-Pair Encoding)WordPiece。这一步的目的是让模型能处理离散的文本符号。


3. Embedding - Token 变成向量

每个 Token 会被转换成一个固定长度的向量(例如512维),这一步称为 Embedding。嵌入层本质上是一个查表操作:每个 Token 对应一个向量,这个向量在训练过程中会不断调整,最终能捕捉 Token 之间的语义关系(例如 “king” 和 “queen” 的向量方向相似)。


4. Positional Encoding - 在向量中加入位置信息

Transformer 没有循环结构(如 RNN),无法天然感知顺序,因此需要通过 Positional Encoding 给每个 Token 的向量添加位置信息。具体做法是:

  • 生成一组与位置相关的数值(通过正弦和余弦函数计算)。
  • 直接叠加到 Token 的嵌入向量上。
    这样模型既能知道每个词的含义,也能知道它的位置(比如第一个词和第五个词的区别)。

5. Encoder & Decoder - 深度理解语义

  • 编码器(Encoder)
    每个编码器层包含 自注意力(Self-Attention)前馈神经网络(Feed Forward)。自注意力让每个 Token 能够关注整个序列中的其他 Token,从而捕捉上下文信息;前馈神经网络则对每个 Token 独立进行非线性变换。

  • 解码器(Decoder)
    解码器比编码器多了一个 交叉注意力(Cross-Attention) 层,用于关注编码器的输出。此外,解码器的自注意力是“掩码的”(Masked Self-Attention),防止模型在生成当前 Token 时偷看未来的信息(保证预测只能依赖已生成的部分)。


6. Linear - 生成“下一个字”的权重分布

解码器的输出是一个向量(表示当前已生成序列的语义),需要通过 Linear 层(全连接层)将这个向量映射到词表大小的维度。例如,如果词表有3万个词,Linear 层会输出一个3万维的向量,每个维度对应一个词的“得分”。


7. Softmax - 将权重分布转换成概率分布

Linear 层的输出是未归一化的“得分”,通过 Softmax 函数 将这些得分转换成概率分布。例如,模型可能认为下一个词是“猫”的概率为70%,是“狗”的概率为20%,其他词占10%。最终,模型会根据概率分布采样(或直接取最高概率)生成下一个 Token。


8. 文字序列要解决的语义问题

Transformer 的核心任务是建模序列之间的依赖关系,例如:

  • 长距离依赖:句子开头的一个词可能影响结尾的词。
  • 歧义消解:例如“苹果”是水果还是公司,需要结合上下文判断。
  • 生成连贯性:生成的文本需符合语法和逻辑。

9. Attention - 注意力机制

注意力机制 的核心思想是:在处理某个位置的信息时,动态地为其他位置分配不同的重要性权重。例如翻译“我爱AI”为英文时,生成“AI”时可能需要更关注输入中的“AI”而不是“我”。


10. Self Attention - 自注意力机制

自注意力(Self-Attention) 是注意力机制的一种特例,指序列内部元素之间的注意力。具体步骤:

  1. 对每个 Token 生成三个向量:Query(查询)、Key(键)、Value(值)。
  2. 计算 Query 和所有 Key 的点积,得到注意力分数。
  3. 分数经过 Softmax 归一化后,加权求和 Value 向量。

通过这种方式,每个 Token 都能“看到”整个序列的信息。


11. Multi-Head Self Attention - 多头自注意力机制

多头自注意力 将自注意力拆分成多个“头”(例如8个头),每个头独立学习不同的注意力模式。例如:

  • 一个头关注语法结构。
  • 另一个头关注语义关联。
    最后将所有头的输出拼接起来,经过线性变换得到最终结果。多头机制增强了模型捕捉多样化特征的能力。

12. Feed Forward - 前馈神经网络

每个编码器和解码器层都包含一个 前馈神经网络(Feed Forward Network)。它由两层全连接层和激活函数(如 ReLU)组成,对每个 Token 独立处理。它的作用是进一步融合自注意力层提取的特征,增加非线性表达能力。


13. 编码器与解码器的区别

  1. 输入不同:编码器处理输入序列(如源语言句子),解码器处理目标序列(如目标语言句子)。
  2. 注意力机制:解码器使用 掩码自注意力(防止看到未来信息),而编码器不需要。
  3. 交叉注意力:解码器比编码器多了一个关注编码器输出的注意力层。
  4. 生成方式:编码器一次处理整个输入序列,解码器逐步生成输出(自回归)。

通过以上组件,Transformer 实现了对序列数据的强大建模能力,成为 NLP 领域(如 BERT、GPT)的基石架构。

你可能感兴趣的:(transformer,自然语言处理,语言模型,人工智能,神经网络)