深入了解Transformer模型:从BERT到GPT3及机器翻译应用
立即解锁
发布时间: 2025-08-31 00:05:15 阅读量: 12 订阅数: 19 AIGC 

# 深入了解Transformer模型:从BERT到GPT3及机器翻译应用
## 1. 编码器模型示例:BERT
### 1.1 BERT模型概述
BERT是一种编码器模型,使用包含30,000个标记的词汇表。输入标记会被转换为1024维的词嵌入,然后通过24个Transformer层进行处理。每个Transformer层包含一个具有16个头的自注意力机制,每个头的查询、键和值的维度为64(即矩阵Ωvh、Ωqh、Ωkh为64×1024)。全连接网络中单个隐藏层的维度为4096,总参数数量约为3.4亿。
### 1.2 输入嵌入矩阵
输入嵌入矩阵X ∈ RD×N包含N个长度为D的嵌入,它是通过将包含整个词汇表嵌入的矩阵Ωe与一个列中包含对应单词或子单词索引的独热向量的矩阵相乘而创建的。词汇矩阵Ωe被视为模型的一个参数,并与其他参数一起学习。
### 1.3 预训练
在预训练阶段,网络使用自监督进行训练,这允许使用大量数据而无需手动标记。对于BERT,自监督任务包括从大型互联网语料库的句子中预测缺失的单词。训练时,最大输入长度为512个标记,批量大小为256,系统训练100万步,大约相当于对33亿单词的语料库进行50个轮次的训练。
预测缺失单词迫使Transformer网络理解一些语法,例如,它可能会学习到形容词“red”通常出现在像“house”或“car”这样的名词之前,但不会出现在像“shout”这样的动词之前。它还允许模型学习一些关于世界的常识,例如,训练后,模型会给句子“The <mask> pulled into the station”中缺失的单词“train”赋予比“peanut”更高的概率。
### 1.4 微调
在微调阶段,模型参数会进行调整,以使网络专门用于解决特定任务。通常会在Transformer网络上附加一个额外的层,将输出向量转换为所需的输出格式。以下是一些微调任务的示例:
- **文本分类**:在BERT中,一个特殊的分类标记<cls>在预训练期间被放置在每个字符串的开头。对于像情感分析这样的文本分类任务,与<cls>标记相关联的向量会被映射到一个单一数字,并通过逻辑Sigmoid函数处理,这有助于计算标准的二元交叉熵损失。
- **单词分类**:命名实体识别的目标是将每个单词分类为一种实体类型(例如,人、地点、组织或非实体)。为此,每个输入嵌入xn会被映射到一个E × 1向量,其中E个条目对应于E种实体类型。这个向量会通过一个Softmax函数,为每个类别创建概率,这些概率有助于计算多类交叉熵损失。
- **文本跨度预测**:在SQuAD 1.1问答任务中,问题和包含答案的维基百科段落会被连接并分词。BERT用于预测段落中包含答案的文本跨度。每个标记映射到两个数字,表示文本跨度在该位置开始和结束的可能性。得到的两组数字会通过两个Softmax函数处理,任何文本跨度成为答案的可能性可以通过组合在适当位置开始和结束的概率来推导。
### 1.5 预训练流程
```mermaid
graph LR
A[输入标记] --> B[转换为词嵌入]
B --> C[通过Transformer层]
C --> D[部分标记替换为<mask>]
D --> E[预测缺失单词]
E --> F[Softmax函数]
F --> G[多类分类损失]
```
### 1.6 微调任务对比
| 任务类型 | 输入 | 输出 | 损失函数 |
| ---- | ---- | ---- | ---- |
| 文本分类 | <cls>标记嵌入 | 单个数字 | 二元交叉熵损失 |
| 单词分类 | 每个单词的嵌入 | E × 1向量 | 多类交叉熵损失 |
| 文本跨度预测 | 问题和段落的标记 | 两个数字 | 基于Softmax的概率推导 |
## 2. 解码器模型示例:GPT3
### 2.1 GPT3模型概述
GPT3是一种解码器模型,其基本架构与编码器模型非常相似,由一系列对学习到的词嵌入进行操作的Transformer层组成。然而,其目标不同,编码器旨在构建文本的表示,以便微调解决各种更具体的NLP任务,而解码器的目的是生成序列中的下一个标记。
### 2.2 语言建模
0
0
复制全文
相关推荐










