2019 GPT2原文 Language Models are Unsupervised Multitask Learners - Reading Notes
本文为个人阅读
GPT2
,精读笔记,希望对您有帮助!详情参考原文链接
原文链接:https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf
语言模型是无监督多任务学习器(Language Models are Unsupervised Multitask Learners)【GPT2原文】
文章目录
- 语言模型是无监督多任务学习器(Language Models are Unsupervised Multitask Learners)【GPT2原文】
- GPT2 Method 精简阅读
- 核心方法概述
- 1. 语言建模目标
- 2. 模型架构
- 3. 输入表示
- 4. 训练数据
- 5. 零样本任务执行
- 6、符号说明
- 7、关键创新
- 8、GPT1 VS GPT2 主要对比
- 9、补充信息
- GPT2原文-详细注解阅读
- 摘要(Abstract)
- 1. 引言(Introduction)
- 2. 方法(Approach)
- 2.1. 训练数据集(Training Dataset)
- 2.2. 输入表示(Input Representation)
- 2.3. 模型(Model)
- 3. 实验(Experiments)
- 3.1. 语言建模(Language Modeling)
- 3.2. 儿童图书测试(Children's Book Test)
- 3.3. LAMBADA
- 3.4. Winograd Schema挑战(Winograd Schema Challenge)
- 3.5. 阅读理解(Reading Comprehension)
- 3.6. 摘要(Summarization)
- 3.7. 翻译(Translation)
- 3.8. 问答(Question Answering)
- 4. 泛化vs记忆(Generalization vs Memorization)
- 5. 相关工作(Related Work)
- 6. 讨论(Discussion)
- 7. 结论(Conclusion)
- 8. 附录(Apendix)
- 9. GPT1 VS GPT2对比
- GPT-1 vs GPT-2 详细对比表
- 基础信息对比
- 模型架构对比
- 架构改进细节
- 训练数据对比
- 训练策略对比
- 评估方法对比
- 任务性能对比
- 创新点对比
- 技术特性对比
- 实验发现对比
- 局限性对比
- 应用场景对比
- 影响与贡献
- 关键指标总结
GPT2 Method 精简阅读
核心方法概述
GPT-2通过在大规模网络文本上进行无监督语言建模训练,实现零样本多任务学习。模型学习预测 p(output∣input,task)p(output|input, task)p(output∣input,task),其中任务通过自然语言指令隐式指定。
1. 语言建模目标
目标函数:最大化序列的对数似然
p(x)=∏i=1np(si∣s1,...,si−1)p(x) = \prod_{i=1}^{n} p(s_i|s_1, ..., s_{i-1}) p(x)=i=1∏np(si∣s1,...,si−1)
其中:
- x=(s1,s2,...,sn)x = (s_1, s_2, ..., s_n)x=(s1,s2,...,sn):输入序列
- sis_isi:第 iii 个token
- nnn:序列长度
2. 模型架构
基础结构:Transformer Decoder (自回归)
模型配置:
参数 | 小 | 中 | 大 | 超大 |
---|---|---|---|---|
层数 LLL | 12 | 24 | 36 | 48 |
隐藏维度 dmodeld_{model}dmodel | 768 | 1024 | 1280 | 1600 |
注意力头 hhh | 12 | 16 | 20 | 25 |
参数量 | 117M | 345M | 762M | 1.5B |
架构改进:
- 层归一化:Pre-norm,置于每个子块输入端
- 权重初始化:残差层权重缩放 W⋅1NW \cdot \frac{1}{\sqrt{N}}W⋅N1,其中 NNN 为残差层数
- 上下文长度:1024 tokens
- 词汇表:50,257 (字节级BPE)
3. 输入表示
字节级BPE (Byte Pair Encoding) :
- 基础词汇:256字节
- 防止跨字符类别合并(空格除外)
- 支持任意Unicode字符串
输入处理:
Input=TokenEmbed(x)+PosEmbed(pos)\text{Input} = \text{TokenEmbed}(x) + \text{PosEmbed}(pos) Input=TokenEmbed(x)+PosEmbed(pos)
其中:
- TokenEmbed\text{TokenEmbed}TokenEmbed:token嵌入矩阵 ∈R∣V∣×dmodel\in \mathbb{R}^{|V| \times d_{model}}∈R∣V∣×dmodel
- PosEmbed\text{PosEmbed}PosEmbed:位置嵌入矩阵 ∈R1024×dmodel\in \mathbb{R}^{1024 \times d_{model}}∈R1024×dmodel
- ∣V∣=50,257|V| = 50,257∣V∣=50,257:词汇表大小
4. 训练数据
WebText数据集:
- 规模:40GB文本,约10B tokens
- 来源:Reddit链接(karma ≥ 3)的网页内容
- 处理:去重、过滤、移除维基百科
5. 零样本任务执行
任务诱导方式:
翻译:[英文句子] = [法文句子] ... [新英文] =
问答:[文档] Q: [问题] A:
摘要:[文章] TL;DR:
推理过程:
- 构建任务特定的上下文提示
- 使用语言模型生成延续
- 提取任务相关输出
6、符号说明
- LLL:Transformer层数
- dmodeld_{model}dmodel:模型隐藏维度
- hhh:多头注意力的头数
- ∣V∣|V|∣V∣:词汇表大小
- nnn:序列长度
- NNN:残差层总数
- sis_isi:序列中第iii个token
- p(⋅∣⋅)p(\cdot|\cdot)p(⋅∣⋅):条件概率
7、关键创新
- 规模扩展:参数量达1.5B,训练数据达10B tokens
- 零样本学习:无需任务特定微调,通过自然语言提示执行任务
- 统一框架:所有任务统一为语言建模,避免任务特定架构
8、GPT1 VS GPT2 主要对比
这一部分,作者放在了文章结尾
9、补充信息
提问:GPT1和GPT2都是Transformer的编码器解码器架构吗?
不是的,这是一个常见的误解。
GPT-1 和 GPT-2 都是 纯解码器(Decoder-only) 架构
架构对比
模型类型 架构 注意力机制 代表模型 编码器-解码器 Encoder + Decoder 编码器:双向自注意力<br>解码器:掩码自注意力+交叉注意力 T5, BART, 原始Transformer 纯编码器 Encoder only 双向自注意力 BERT, RoBERTa 纯解码器 Decoder only 因果掩码自注意力(单向) GPT-1, GPT-2, GPT-3
GPT系列的具体架构
GPT-1 和 GPT-2 都是:
- Transformer Decoder(但没有编码器部分)
- 自回归语言模型:从左到右生成
- 因果注意力掩码:只能看到当前位置之前的tokens
# GPT架构示意(简化),仅供示例 class GPT(nn.Module):def __init__(self):self.token_embed = nn.Embedding(vocab_size, d_model)self.pos_embed = nn.Embedding(context_length, d_model)self.transformer_blocks = nn.ModuleList([TransformerBlock() for _ in range(n_layers)]) # 只有解码器块,没有编码器self.ln_f = nn.LayerNorm(d_model)self.head = nn.Linear(d_model, vocab_size)def forward(self, x):# 自回归生成,只能看到左侧上下文x = self.token_embed(x) + self.pos_embed(positions)for block in self.transformer_blocks:x = block(x) # 带因果掩码的自注意力x = self.ln_f(x)logits = self.head(x)return logits
关键区别
原始Transformer(编码器-解码器) :
- 用于序列到序列任务(如机器翻译)
- 编码器处理输入,解码器生成输出
- 有交叉注意力连接编码器和解码器
GPT(纯解码器) :
- 用于语言建模和生成任务
- 没有独立的编码器
- 输入和输出共享同一个模型空间
- 通过自回归方式生成文本
为什么叫"Decoder"?
GPT被称为"Decoder-only"是因为:
- 它使用了原始Transformer解码器的架构组件(掩码自注意力)
- 但移除了编码器和交叉注意力
- 保留了自回归生成的特性
所以准确地说:
- GPT-1/GPT-2 = Transformer Decoder架构(无编码器)
- 不是编码器-解码器架构
纯解码器架构原文出处
让我从原始论文中给出确凿证据:
GPT-1 论文证据
论文标题:《Improving Language Understanding by Generative Pre-Training》
原文描述:
“We use a 12-layer decoder-only transformer with masked self-attention heads”
架构细节:
- 使用**单向(left-to-right)**语言建模
- 因果掩码自注意力(causal masking)
- 没有编码器,没有交叉注意力
GPT-2 论文证据
论文标题:《Language Models are Unsupervised Multitask Learners》
原文描述:
“We use a Transformer (Vaswani et al., 2017) based architecture for our LMs. The model largely follows the details of the OpenAI GPT model”
明确说明:
- 继承GPT-1的decoder-only架构
- 只做了层归一化位置等小改进
- 保持自回归语言建模方式
架构对比图
编码器-解码器(如T5、BART): 输入 → [编码器] → 表示 → [解码器] → 输出↑双向注意力 ↑掩码注意力+交叉注意力纯解码器(GPT-1/GPT-2): 输入 → [解码器层×N] → 输出↑仅因果掩码自注意力
关键特征对比
特征 编码器-解码器 GPT-1/GPT-2(纯解码器) 注意力类型 编码器:双向<br>解码器:单向+交叉 仅单向(因果) 参数共享 编码器/解码器分离 单一模型栈 预训练任务 通常是seq2seq 语言建模(预测下一个词) 信息流向 可以看到完整输入 只能看到左侧上下文 为什么这很重要?
- 计算效率:纯解码器架构参数更少,训练更高效
- 生成能力:天然适合自回归文本生成
- 统一框架:输入输出在同一空间,便于多任务学习
代码层面验证【仅供示例,不用于代码实际演示】
# GPT的注意力掩码(纯解码器特征) def create_causal_mask(seq_len):# 下三角矩阵,确保位置i只能看到0到i的信息mask = torch.tril(torch.ones(seq_len, seq_len))return mask# 如果是编码器-解码器,会有: # 1. encoder_attention (无掩码) # 2. decoder_attention (有掩码) # 3. cross_attention (解码器→编码器) # 但GPT只有一种:causal_attention
总结:GPT-1和GPT-2都是Decoder-only架构,不是编码器-解码器架构!
GPT2原文-详细注解阅读
摘要(Abstract)
【背景】自然语言处理任务,如问答、机器翻译、阅读理解和摘要,通常通过在特定任务数据集上的监督学习来处理。【证明了】我们证明,当在一个名为WebText的包含数百万网页的新数据集上训练时,语言模型开始在没有任何显式监督的情况下学习这些任务。【具体表现】当以文档加问题为条件时,语言模型生成的答案在CoQA数据集上达到55 F1分数——在不使用127,000+训练样本的情况下,匹配或超过了4个基线系统中的3个的性能。【侧重点:容量】语言模型的容量对于零样本任务迁移的成功至关重要,增加容量可以以对数线性方式改善跨任务的性能。我们最大的模型GPT-2是一个拥有15亿参数的Transformer,在零样本设置下,在8个测试的语言建模数据集中的7个上达到了最先进的结果,但仍然对WebText欠拟合。模型的样本反映了这些改进,包含了连贯的文本段落。这些发现表明了构建语言处理系统的一条有前景的路径,这些系统从自然发生的演示中学习执行任务。
精简总结
GPT-2通过在大规模网页数据集WebText上进行无监督预训练,证明了语言模型可以在零样本设置下执行多种NLP任务(如问答、翻译、摘要等),无需针对特定任务的监督训练。研究发现模型容量是零样本任务迁移成功的关键因素,15亿参数的GPT-2在多个语言建模基准上达到最先进水平,展示了通过扩大模型规模和训练数据来实现通用语言理解的可行路径。
写作要点拆解
- 问题引入:从专用到通用的转变
- 先指出现状局限:当前NLP任务依赖特定任务的监督学习
- 提出核心创新:无监督的多任务学习能力
- 强调零样本(zero-shot)这一关键概念
2. 实证支撑:具体性能指标
- 使用具体数据说服力强(如CoQA上55 F1、7/8数据集SOTA)
- 对比基线系统,突出无监督方法的竞争力
- 承认局限性(如仍有欠拟合),保持客观性
3. 核心洞察:模型容量的决定性作用
- 明确指出容量与性能的对数线性关系
- 用具体参数规模(15亿)量化"大"的概念
- 将技术细节(Transformer架构)与实际效果结合
4. 前瞻意义:新范式的开启
- 从具体结果上升到方法论高度
- 指出"从自然演示中学习"这一新路径
- 为后续研究指明方向(扩展模型规模和数据)
1. 引言(Introduction)
机器学习系统现在在它们被训练的任务上表现出色(期望值),通过使用大型数据集、高容量模型和监督学习的组合 (Krizhevsky et al., 2012) (Sutskever et al., 2014) (Amodei et al., 2016) 。然而,这些系统是脆弱的,对数据分布的轻微变化 (Recht et al., 2018) 和任务规范 (Kirkpatrick et al., 2017) 敏感。当前系统更好地被描述为狭窄的专家而不是称职的通才。我们希望朝着更通用的系统迈进,这些系统可以执行许多任务——最终无需为每个任务手动创建和标记训练数据集。
精简总结
机器学习系统->大数据集训练组合->表现出色
缺点->数据分布+任务规范 敏感
动机:愿景,从专用专家系统->专用通用系统 + 利用无监督数据
创建ML系统的主导方法是收集展示所需任务正确行为的训练示例数据集,训练系统模仿这些行为,然后在独立同分布(IID)的保留示例上测试其性能。这很好地服务于狭窄专家的进步。但是字幕模型 (Lake et al., 2017) 、阅读理解系统 (Jia & Liang, 2017) 和图像分类器 (Alcorn et al., 2018) 在可能输入的多样性和变化上的不稳定行为突出了这种方法的一些缺点。
精简总结
现有ML在狭隘专家上有优势,但是
不具备多样性泛化,和不稳定性,不朴实
我们怀疑单任务训练在单一领域数据集上的普遍性是当前系统缺乏泛化能力的主要原因。使用当前架构实现稳健系统的进展可能需要在广泛的领域和任务上进行训练和测量性能。最近,已经提出了几个基准,如GLUE (Wang et al., 2018) 和decaNLP (McCann et al., 2018) 来开始研究这一点。
精简总结
分析不普适的原因,数据集单一,任务单一
引入多任务的过度,需要多任务共同构建系统
多任务学习 (Caruana, 1997) 是改善一般性能的一个有前景的框架。然而,NLP中的多任务训练仍处于起步阶段。最近的工作报告了适度的性能改进 (Yogatama et al., 2019) ,迄今为止最雄心勃勃的两项努力分别在总共10个和17个(数据集,目标)对上进行了训练 (McCann et al., 2018) (Bowman et al., 2018) 。从元学习的角度来看,每个(数据集,目标)对都是从数据集和目标分布中采样的单个训练示例。当前的ML系统需要数百到数千个示例才能归纳出泛化良好的函数。这表明多任务训练可能需要同样多的有效训练对才能用当前方法实现其前景。继续扩展数据集的创建和目标的设计到可能需要的程度,用当前技术强行达到目标将非常困难。这激发了探索执行多任务学习的其他设置。
精简总结
改善单一领域的狭隘错失的现有工作探索:多任务学习需要多的有效训练
语言任务上当前表现最佳的系统利用预训练和监督微调的组合。这种方法有着悠久的历史,朝着更灵活的迁移形式发展。首先,学习词向量并将其用作特定任务架构的输入 (Mikolov et al., 2013) (Collobert et al., 2011) ,然后迁移循环网络的上下文表示 (Dai & Le, 2015) (Peters et al., 2018) ,最近的工作表明,特定任务的架构不再必要,迁移许多自注意力块就足够了 (Radford et al., 2018) (Devlin et al., 2018) 。
这些方法仍然需要监督训练才能执行任务。当只有最少或没有监督数据可用时,另一条研究线展示了语言模型执行特定任务的承诺,如常识推理 (Schwartz et al., 2017) 和情感分析 (Radford et al., 2017) 。
在本文中,我们连接这两条研究线,并继续更通用的迁移方法的趋势。我们证明语言模型可以在零样本设置下执行下游任务——无需任何参数或架构修改。我们通过强调语言模型在零样本设置下执行广泛任务的能力来展示这种方法的潜力。根据任务的不同,我们获得了有前景的、有竞争力的和最先进的结果。
精简总结
这部分引言阐述了从"狭窄专家"到"通用系统"的研究动机,指出当前ML系统虽在特定任务上表现优异但缺乏泛化能力,提出通过无监督的语言模型实现零样本多任务学习的新思路。
写作逻辑拆解
1. 问题诊断:当前ML系统的局限
现状:系统在训练任务上表现出色,但对分布变化敏感
本质:是"狭窄的专家"而非"称职的通才"
根因:单任务训练在单一领域数据集上的普遍做法2. 解决思路:多任务学习的探索
现有尝试:GLUE、decaNLP等基准;但数据规模有限(10-17个任务对)
核心挑战:需要大量训练对才能实现真正的多任务学习
瓶颈:继续扩展监督数据集规模非常困难3. 技术演进:从监督到无监督
发展脉络:词向量→上下文表示→自注意力块迁移
两条路线:
- 预训练+微调(仍需监督)
- 零样本学习(无需监督)
4. 本文贡献:连接两条研究线
核心创新:语言模型零样本执行下游任务
关键特征:无需参数或架构修改
实验验证:在多种任务上获得有竞争力的结果
2. 方法(Approach)
精简总结
这张图展示了WebText语言模型在多个NLP任务上的零样本性能与模型规模的关系。
图表结构解读
整体布局:四个子图分别展示不同NLP任务的表现
- 横轴:模型参数数量(对数刻度):117M → 345M → 762M → 1542M
- 纵轴:各任务的性能指标(数值越高越好)
各子图详细分析
Reading Comprehension(阅读理解)
数据集:CoQA
纵轴:F1分数(0-90)
基线对比:
- Human(虚线):约90分,代表人类表现
- DrQA+PGNet(虚线):约67分
- DrQA(虚线):约55分
- PGNet(虚线):约45分
GPT-2表现:蓝色实线显示随模型增大从约30分提升至约55分
Translation(机器翻译)
数据集:WMT-14 Fr-En(法语到英语)
纵轴:BLEU分数(0-25)
基线对比:
- Unsupervised Statistical MT(虚线):约25分
- Denoising + Backtranslate(虚线):约15分
- Embed Nearest Neighbor(虚线):约10分
- Denoising(虚线):约8分
GPT-2表现:从约2分提升至约11分
Summarization(文本摘要)
数据集:CNN和Daily Mail
纵轴:Average of ROUGE-1,2,L(ROUGE分数平均值,16-32)
基线对比:
- Lead-3(虚线):约32分(取前三句作为摘要的简单基线)
- PGNet(虚线):约29分
- Seq2seq + Attn(虚线):约24分
- Random-3(虚线):约21分(随机选择三句)
GPT-2表现:从约18分提升至约21分
Question Answering(问答)
数据集:Natural Questions
纵轴:Accuracy准确率(0-10)
基线对比:
- Open Domain QA Systems(虚线):约8分
- most freq Q-type answer(虚线):约1分(最频繁问题类型答案)
GPT-2表现:从约1分提升至约4分
关键符号说明
- 117M, 345M, 762M, 1542M:模型参数数量(M=百万)
- F1:精确率和召回率的调和平均数
- BLEU:机器翻译质量评估指标
- ROUGE:文本摘要质量评估指标
- 虚线:现有方法的性能基线
- 实线:GPT-2随模型规模变化的性能曲线
核心观点
这张图想表达的关键信息:
- 规模效应:在所有任务上,更大的模型都表现更好,呈现明显的上升趋势
- 零样本能力:GPT-2无需针对特定任务训练,仅通过语言建模就能获得合理性能
- 任务差异:不同任务的改进程度不同,阅读理解和翻译改进显著,摘要和问答相对较小
- 与基线比较:虽然GPT-2在某些任务上还**未达到专门系统的水平,但作为零样本方法已经相当不错**
这张图有力支持了论文的核心论点:语言模型是无监督的多任务学习器。
我们方法的核心是语言建模。语言建模通常被框架化为从一组示例 (x1,x2,...,xn)(x_1, x_2, ..., x_n)(x1,x2,...,xn) 中进行无监督分布估计,每个示例由可变长度的符号序列 (s1,s2,...,sn)(s_1, s_2, ..., s_n)(s1,s2,...,sn) 组成。由于语言具有自然的顺序,通常将符号上的联合概率分解为条件概率的乘积 (Jelinek & Mercer, 1980) (Bengio et al., 2003) :
p(x)=∏i=1np(sn∣s1,...,sn−1)p(x) = \prod_{i=1}^{n} p(s_n|s_1, ..., s_{n-1})p(x)=∏i=1np(sn∣s1,...,sn−1) (1)
这种方法允许对 p(x)p(x)p(x) 以及形式为 p(sn−k,...,sn∣s1,...,sn−k−1)p(s_{n-k}, ..., s_n|s_1, ..., s_{n-k-1})p(sn−k,...,sn∣s1,...,sn−k−1) 的任何条件进行可处理的采样和估计。近年来,可以计算这些条件概率的模型的表达能力有了显著改进,例如Transformer等自注意力架构 (Vaswani et al., 2017) 。
学习执行单个任务可以在概率框架中表示为估计条件分布 p(output∣input)p(output|input)p(output∣input)。由于通用系统应该能够执行许多不同的任务,即使对于相同的输入,它不仅应该以输入为条件,还应该以要执行的任务为条件。也就是说,它应该建模 p(output∣input,task)p(output|input, task)p(output∣input,task)。这已经在多任务和元学习设置中以各种方式形式化。任务条件通常在架构级别实现,例如 (Kaiser et al., 2017) 中的特定任务编码器和解码器,或在算法级别,例如MAML的内外循环优化框架 (Finn et al., 2017) 。但正如 McCann et al. (2018) 中所示,语言提供了一种灵活的方式来指定任务、输入和输出,所有这些都作为符号序列。例如,翻译训练示例可以写为序列(translate to french, english text, french text)。同样,阅读理解训练示例可以写为(answer the question, document, question, answer)。McCann et al. (2018) 证明可以训练单个模型MQAN,通过提供任务自然语言指令的示例来推断并执行许多不同的任务。
语言建模原则上也能够在不需要显式监督哪些符号是要预测的输出的情况下,学习 McCann et al. (2018) 的任务。由于监督目标与无监督目标相同,但仅在序列的子集上评估,无监督目标的全局最小值也是监督目标的全局最小值。在这个略微理想化的设置中, (Sutskever et al., 2015) 中讨论的关于密度估计作为原则性训练目标的担忧被回避了。问题转而变成我们是否能够在实践中将无监督目标优化到收敛。初步实验证实,足够大的语言模型能够在这种玩具般的设置中执行多任务学习,但学习比显式监督方法慢得多。
虽然从上述精心设计的设置到"野外语言"的混乱还有很大一步,但 Weston (2016) 在对话的背景下论证了需要开发能够直接从自然语言学习的系统,并展示了概念验证——通过使用教师输出的前向预测在没有奖励信号的情况下学习QA任务。虽然对话是一种有吸引力的方法,但我们担心它过于限制性。互联网包含大量被动可用的信息,无需交互式通信。我们的推测是,具有足够容量的语言模型将开始学习推断和执行自然语言序列中演示的任务,以便更好地预测它们,无论其获取方法如何。如果语言模型能够做到这一点,它实际上将执行无监督多任务学习。我们通过在各种任务的零样本设置下分析语言模型的性能来测试是否是这种情况。
精简总结
这四段分别从以下角度阐述:
- 语言建模基础:介绍语言建模的核心原理,即通过条件概率分解来进行分布估计和符号序列预测。
- 多任务学习框架:阐述如何将单任务学习扩展为多任务学习,提出通过自然语言指令来指定任务的方法。
- 无监督学习可行性:论证语言建模在理论上能够实现无监督多任务学习,但实践中收敛速度较慢。
- 自然语言学习假设:提出大容量语言模型可能自发学会从自然语言中推断和执行任务,并通过零样本性能测试这一假设。
2.1. 训练数据集(Training Dataset)
大多数先前的工作在单一文本领域上训练语言模型,如新闻文章 (Jozefowicz et al., 2016) 、维基百科 (Merity et al., 2016) 或小说书籍 (Kiros et al., 2015) 。我们的方法激励构建尽可能大且多样化的数据集,以便收集尽可能多样的领域和上下文中的任务的自然语言演示。
多样化且几乎无限的文本的一个有前景的来源是Common Crawl等网络抓取。虽然这些档案比当前语言建模数据集大许多数量级,但它们存在重大的数据质量问题。Trinh & Le (2018) 在他们关于常识推理的工作中使用了Common Crawl,但注意到大量文档"其内容大多难以理解"。我们在使用Common Crawl的初步实验中观察到了类似的数据问题。Trinh & Le (2018) 的最佳结果是通过使用Common Crawl的一个小子样本实现的,该子样本仅包含与其目标数据集Winograd Schema Challenge最相似的文档。虽然这是提高特定任务性能的实用方法,但我们希望避免提前对要执行的任务做出假设。
精简总结
这张表展示了WebText训练数据中自然出现的英法翻译示例。
表格内容分析
表格展示了6个翻译示例,包含两个方向:
英译法示例:
- “I’m not the cleverest man in the world, but like they say in French: Je ne suis pas un imbecile [I’m not a fool].”
- “I hate the word ‘perfume.’” Burr says. 'It’s somewhat better in French: ‘parfum.’"
- 法语问句:“As-tu aller au cinéma?” 或 “Did you go to the movies?”,字面翻译为"Have-you to go to movies/theater?"
法译英示例:
- 政治人物Soheil Eid的推文:“Mentez mentez, il en restera toujours quelque chose.”,翻译为"Lie lie and something will always remain."
- 对话片段:“Comment on fait pour aller de l’autre coté? -Quel autre coté?”,翻译为"How do you get to the other side? - What side?"
- “Brevet Sans Garantie Du Gouvernement”,翻译为"Patented without government warranty"
核心意义
这张表想说明:
- 自然语言演示:互联网文本中自然包含大量双语翻译示例,无需人工标注
- 多样化内容:涵盖日常对话、政治言论、产品描述等多种语境
- 无监督学习基础:这些自然出现的翻译对为语言模型学习翻译能力提供了训练信号
- 支撑论点:证明大规模语言模型可以从未标注的文本中学会执行翻译任务
这直接支持了论文的核心观点:语言模型通过预测文本序列,能够无监督地学习执行多种任务,包括翻译。
相反,我们创建了一个强调文档质量的新网络抓取。为此,我们只抓取了经过人类策划/过滤的网页。手动过滤完整的网络抓取将非常昂贵,因此作为起点,我们抓取了Reddit(一个社交媒体平台)的所有出站链接,这些链接至少获得了3个karma。这可以被认为是其他用户是否发现该链接有趣、有教育意义或只是有趣的启发式指标。
生成的数据集WebText包含这4500万个链接的文本子集。为了从HTML响应中提取文本,我们使用了Dragnet (Peters & Lecocq, 2013) 和Newspaper内容提取器的组合。本文中呈现的所有结果都使用了WebText的初步版本,该版本不包括2017年12月之后创建的链接,在去重和一些基于启发式的清理后,包含略超过800万个文档,总共40 GB的文本。我们从WebText中删除了所有维基百科文档,因为它是其他数据集的常见数据源,可能会因与测试评估任务的训练数据重叠而使分析复杂化。
精简总结
这一部分主要讲训练数据集的构建方法。
具体内容包括:
问题背景:以往语言模型训练数据单一且有限,而直接使用Common Crawl等大规模网络数据存在质量问题。
解决方案:创建了WebText数据集,通过抓取Reddit上获得至少3个karma的出站链接来获得人工筛选过的高质量网页内容。
数据规模:最终得到800万个文档,共40GB文本,并移除了维基百科内容以避免与测试数据重叠。
核心思想是构建一个既大规模又高质量、多样化的训练数据集,为无监督多任务学习提供丰富的自然语言任务演示。
2.2. 输入表示(Input Representation)
通用语言模型(LM)应该能够计算(并生成)任何字符串的概率。当前的大规模LM包括预处理步骤,如小写化、分词和词汇外标记,这些限制了可建模字符串的空间。虽然将Unicode字符串作为UTF-8字节序列处理优雅地满足了这一要求,如 Gillick et al. (2015) 等工作所示,但当前的字节级LM在大规模数据集(如十亿词基准)上与词级LM相比没有竞争力 (Al-Rfou et al., 2018) 。我们在自己尝试在WebText上训练标准字节级LM时观察到了类似的性能差距。
字节对编码(BPE) (Sennrich et al., 2015) 是字符级和词级语言建模之间的实用中间地带,它有效地在频繁符号序列的词级输入和不频繁符号序列的字符级输入之间进行插值。尽管其名称如此,参考BPE实现通常在Unicode代码点而不是字节序列上操作。这些实现需要包括完整的Unicode符号空间才能对所有Unicode字符串建模。这将导致在添加任何多符号标记之前的基础词汇表超过130,000个。与BPE通常使用的32,000到64,000个标记词汇表相比,这是令人望而却步的大。相比之下,字节级版本的BPE只需要256大小的基础词汇表。然而,直接将BPE应用于字节序列会导致次优合并,因为BPE使用贪婪的基于频率的启发式方法来构建标记词汇表。我们观察到BPE包括了许多常见词的版本,如dog,因为它们以多种变体出现,如dog. dog! dog?。这导致了有限词汇槽和模型容量的次优分配。为了避免这种情况,我们防止BPE跨任何字节序列的字符类别进行合并。我们为空格添加了一个例外,这显著提高了压缩效率,同时只增加了最小的跨多个词汇标记的词片段化。
这种输入表示使我们能够将词级LM的经验优势与字节级方法的通用性结合起来。由于我们的方法可以为任何Unicode字符串分配概率,这使我们能够在任何数据集上评估我们的LM,无论预处理、分词或词汇大小如何。
精简总结
这一部分主要讲输入表示方法的设计。
具体内容包括:
核心问题:通用语言模型需要处理任意Unicode字符串,但现有方法存在局限:词级方法受预处理限制,字节级方法性能较差,标准BPE词汇量过大。
解决方案:提出改进的字节级BPE方法,在256字节基础词汇上应用BPE,但限制不能跨字符类别边界合并(空格除外)。
优势:既保持了词级模型的性能优势,又具备字节级方法处理任意Unicode字符串的通用性,避免了词汇表过大和次优合并问题。
意义:使模型能够在任何数据集上进行评估,不受预处理、分词或词汇大小限制。
核心思想是设计一个既高效又通用的输入表示方法,为真正通用的语言模型奠定基础。
2.3. 模型(Model)
我们使用基于Transformer (Vaswani et al., 2017) 的架构作为我们的LM。该模型在很大程度上遵循OpenAI GPT模型的细节 (Radford et al., 2018) ,但有一些修改。层归一化 (Ba et al., 2016) 被移到每个子块的输入,类似于预激活残差网络 (He et al., 2016) ,并在最终的自注意力块后添加了额外的层归一化。使用了考虑残差路径上模型深度累积的修改初始化。我们在初始化时按因子 1/N1/\sqrt{N}1/N 缩放残差层的权重,其中 NNN 是残差层的数量。词汇表扩展到50,257。我们还将上下文大小从512增加到1024个标记,并使用512的更大批量大小。
精简总结
这一部分主要讲模型架构的具体设计。
具体内容包括:
基础架构:采用**Transformer**架构,基于OpenAI GPT模型进行改进。
关键修改:
- 将层归一(LayerNormLayerNormLayerNorm)化移至每个子块的输入端(预激活设计)
- 在最终自注意力块(Self−AttentionSelf-AttentionSelf−Attention)后添加额外层归一化(LayerNormLayerNormLayerNorm)
- 采用考虑模型深度的修改初始化方法,残差层权重按1/√N1/√N1/√N缩放
参数设置:词汇表扩展到50,257,上下文长度从512增加到1024个标记,(Batch_SizeBatch\_SizeBatch_Size)批量大小增加到512。
核心思想是在成熟的Transformer架构基础上进行针对性优化,提升模型的训练稳定性和处理能力。
3. 实验(Experiments)
我们训练并基准测试了四个大小大致呈对数均匀分布的LM。架构总结在表2中。最小的模型相当于原始GPT,第二小的相当于BERT的最大模型 (Devlin et al., 2018) 。我们最大的模型,我们称之为GPT-2,比GPT多了一个数量级以上的参数。每个模型的学习率都在WebText的5%保留样本上手动调整以获得最佳困惑度。所有模型仍然对WebText欠拟合,并且随着更多训练时间的增加,保留困惑度仍在改善。
精简总结
实验设置和模型规模。
具体内容包括:
模型配置:训练了四个不同大小的语言模型,规模呈对数均匀分布,从最小的GPT规模到最大的GPT-2(参数量比GPT多一个数量级以上)。
训练细节:每个模型都在WebText的5%保留样本上手动调整学习率以获得最佳困惑度。
训练状态:所有模型在WebText上仍然欠拟合,随着训练时间增加,保留困惑度持续改善。
**核心思想**是通过不同规模的模型来验证语言模型性能与规模的关系,并为后续的零样本任务评估做准备。
Perplexity 困惑度是什么
困惑度(Perplexity)是评估语言模型性能的重要指标。
定义:困惑度衡量语言模型对文本序列的"困惑"程度,数值越小表示模型预测越准确。
计算公式: Perplexity=2−1N∑i=1Nlog2P(wi∣w1,...,wi−1)\text{Perplexity} = 2^{-\frac{1}{N}\sum_{i=1}^{N}\log_2 P(w_i|w_1,...,w_{i-1})}Perplexity=2−N1∑i=1Nlog2P(wi∣w1,...,wi−1)
或者基于交叉熵损失:$ Perplexity=exp(CrossEntropyLoss)$
其中 NNN 是序列长度,P(wi∣w1,...,wi−1)P(w_i|w_1,...,w_{i-1})P(wi∣w1,...,wi−1) 是模型预测第 iii 个词的概率。
直观理解:
- 如果模型完美预测下一个词,困惑度为1
- 如果模型在1000个词中随机猜测,困惑度约为1000
- 困惑度可以理解为"模型在每个位置平均需要在多少个选项中选择"
实际意义:
- 困惑度越低,模型对语言的理解越好
- 在相同数据集上,困惑度可以用来比较不同模型的性能
- 困惑度下降通常意味着模型在下游任务上表现更好
在上述文本中,"保留困惑度仍在改善"意味着模型在验证集上的预测准确性还在持续提升,说明模型仍有学习空间。
3.1. 语言建模(Language Modeling)
作为零样本任务迁移的初步步骤,我们有兴趣了解WebText LM在其训练的主要任务——语言建模上的零样本领域迁移表现如何。由于我们的模型在字节级操作,不需要有损预处理或分词,我们可以在任何语言模型基准上评估它。语言建模数据集的结果通常以每个规范预测单元(通常是字符、字节或词)的平均负对数概率的缩放或指数版本报告。我们通过根据WebText LM计算数据集的对数概率并除以规范单元的数量来评估相同的数量。对于许多这些数据集,WebText LM将被显著地在分布外测试,必须预测积极标准化的文本、分词伪影(如断开的标点符号和缩写)、打乱的句子,甚至字符串<UNK>
,这在WebText中极其罕见——在400亿字节中仅出现26次。我们在表3中使用可逆的去分词器报告我们的主要结果,这些去分词器尽可能多地删除这些分词/预处理伪影。由于这些去分词器是可逆的,我们仍然可以计算数据集的对数概率,它们可以被认为是简单形式的领域适应。我们观察到使用这些去分词器GPT-2获得了2.5到5个困惑度的提升。
精简总结
这张表展示了GPT-2模型在多个语言建模数据集上的零样本性能表现。
表格结构解读
表格对比了不同规模的GPT-2模型(117M、345M、762M、1542M参数)与当时最先进方法(SOTA)在10个数据集上的表现。
评估指标说明
- PPL: 困惑度(Perplexity),数值越低越好
- ACC: 准确率(Accuracy),数值越高越好
- BPB: 每字节比特数(Bits Per Byte),数值越低越好
- BPC: 每字符比特数(Bits Per Character),数值越低越好
数据集类型涵盖了多种语言建模基准:
- LAMBADA: 长期依赖理解任务
- CBT-CN/CBT-NE: 儿童图书测试(常见名词/命名实体)
- WikiText2/WikiText103: 维基百科文本
- PTB: Penn Treebank
- enwik8/text8: 字符级预测任务
- 1BW: 十亿词基准
关键发现
规模效应明显: 随着模型参数增加,几乎所有数据集上的性能都在提升
超越SOTA: 在多个数据集上,GPT-2的零样本表现超过了专门训练的最先进方法:
- LAMBADA准确率从SOTA的59.23%提升到63.24%
- CBT任务表现显著超越SOTA
- 多个困惑度指标都有改善
零样本的强大: 重要的是,这些结果都是零样本的——GPT-2没有在这些特定数据集上进行任何训练或微调
个别局限: 在1BW(十亿词基准)等某些大规模数据集上仍有改进空间
核心意义
这张表有力证明了论文的核心观点:大规模语言模型通过无监督预训练,能够在零样本设置下在多种语言理解任务上达到甚至超越专门设计的监督学习方法的性能,展现了其作为"无监督多任务学习器"的能力。
WebText LM在领域和数据集之间迁移良好,在零样本设置下改善了8个数据集中7个的最先进水平。在小数据集上注意到了大的改进,如Penn Treebank和WikiText-2,它们只有1到200万个训练标记。在创建用于测量长期依赖关系的数据集上也注意到了大的改进,如LAMBADA (Paperno et al., 2016) 和儿童图书测试 (Hill et al., 2015) 。我们的模型在十亿词基准上仍然明显差于先前的工作 (Chelba et al., 2013) 。这可能是由于它既是最大的数据集,又具有一些最具破坏性的预处理——1BW的句子级打乱删除了所有长程结构。
精简总结
语言建模任务上的零样本迁移性能。
具体内容包括:
评估方法:由于模型在字节级操作,可以直接在任何语言建模基准上评估,通过计算数据集的对数概率并除以规范单元数量来衡量性能。
分布外挑战:模型需要处理与训练数据WebText差异很大的文本,包括标准化文本、分词伪影、打乱句子等,甚至罕见的
<UNK>
标记。技术改进:使用可逆去分词器移除预处理伪影,这种简单的领域适应方法让GPT-2获得了2.5到5个困惑度的提升。
实验结果:WebText语言模型展现出良好的跨领域迁移能力,在零样本设置下在8个数据集中的7个上改善了最先进水平,特别是在小数据集和长期依赖任务上表现突出。
局限性:在最大的十亿词基准上仍然表现不佳,可能因为其句子级打乱破坏了长程结构。
核心思想是验证大规模语言模型的零样本领域迁移能力。
3.2. 儿童图书测试(Children’s Book Test)
图表分析
这张图展示了GPT-2在儿童图书测试(CBT)上的零样本性能表现:
左图(Common Nouns) : 普通名词任务,准确率从117M模型的约88%提升到1542M模型的约93%
右图(Named Entities) : 命名实体任务,准确率从117M模型的约84%提升到1542M模型的约89%
基线对比:
- Human(虚线):人类表现基准,普通名词约96%,命名实体约92%
- Bajgar et al. (2016)(虚线):当时最先进方法,普通名词约84%,命名实体约78%
儿童图书测试(CBT) (Hill et al., 2015) 被创建来检查LM在不同词类别上的性能:命名实体、名词、动词和介词。CBT不是将困惑度作为评估指标报告,而是报告自动构建的完形填空测试的准确性,其中任务是预测省略词的10个可能选择中哪个是正确的。按照原始论文中介绍的LM方法,我们根据LM计算每个选择和句子其余部分以该选择为条件的概率,并预测概率最高的那个。如图2所示,随着模型大小的增加,性能稳步提高,并缩小了与人类表现差距的大部分。数据重叠分析显示,CBT测试集书籍之一,Rudyard Kipling的《丛林之书》在WebText中,因此我们报告验证集的结果,该验证集没有显著重叠。GPT-2在普通名词上达到了93.3%的新最先进结果,在命名实体上达到89.1%。应用了去分词器来删除CBT的PTB风格分词伪影。
段落要点总结
- 任务描述: CBT是完形填空测试,需要从10个选项中选择正确的缺失词汇,涵盖不同词类(命名实体、名词、动词、介词)
- 评估方法: 使用语言模型计算每个选择与句子其余部分的条件概率,选择概率最高的选项
- 性能表现: 模型规模越大性能越好,显著缩小了与人类表现的差距
- 数据处理: 发现测试集中有一本书(《丛林之书》)在WebText中出现,因此报告验证集结果以避免数据污染
- SOTA结果: GPT-2创造了新的最先进成绩——普通名词93.3%,命名实体89.1%
核心意义: 证明了大规模语言模型在词汇理解和上下文推理方面的强大能力,接近人类水平。
3.3. LAMBADA
LAMBADA数据集 (Paperno et al., 2016) 测试系统建模文本中长程依赖关系的能力。任务是预测句子的最后一个词,这些句子需要至少50个标记的上下文才能让人类成功预测。GPT-2将最先进水平从99.8 (Grave et al., 2016) 改善到8.6困惑度,并将LM在此测试上的准确性从19% (Dehghani et al., 2018) 提高到52.66%。调查GPT-2的错误显示,大多数预测是句子的有效延续,但不是有效的最终词。这表明LM没有使用词必须是句子最后一个词的额外有用约束。添加停用词过滤器作为对此的近似进一步将准确性提高到63.24%,将此任务的整体最先进水平提高了4%。先前的最先进水平 (Hoang et al., 2018) 使用了不同的受限预测设置,其中模型的输出被限制为仅出现在上下文中的词。对于GPT-2,这种限制是有害的而不是有帮助的,因为19%的答案不在上下文中。我们使用没有预处理的数据集版本。
LAMBADA数据集性能总结
任务特点: LAMBADA专门测试语言模型处理长程依赖关系的能力,要求预测句子的最后一个词,且这些句子需要至少50个标记的上下文才能被人类成功预测。
性能突破:
- 困惑度Perplexity: 从之前最佳的99.8大幅降低到8.6
- 准确率Accuracy: 从19%提升到52.66%,加入停用词过滤后进一步提升到63.24%
错误分析发现: GPT-2的大多数错误预测虽然是句子的有效延续,但不是正确的最终词,说明模型没有充分利用"词必须是句子结尾"这一约束信息。
技术改进: 通过添加停用词过滤器作为近似解决方案,准确率获得额外提升,使整体最先进水平提高了4%。
与前作对比:
- 之前的最佳方法使用受限预测(只能选择上下文中出现的词)
- 对GPT-2而言这种限制反而有害,因为19%的正确答案并不在上下文中出现
核心意义: 证明了大规模语言模型在理解和利用长距离文本依赖关系方面的显著进步,在这个专门测试长程理解能力的困难任务上取得了突破性表现。
3.4. Winograd Schema挑战(Winograd Schema Challenge)
图表解读:
- 蓝线(Partial Scoring) : 部分评分方法,准确率从117M模型的约62%提升到1542M模型的约71%
- 橙线(Full Scoring) : 完整评分方法,准确率从117M模型的约56%提升到1542M模型的约67%
- 虚线(SOTA) : 当时最先进水平基线,约64%
- 规模效应: 两种评分方法都显示随模型规模增大性能稳步提升
性能突破: GPT-2将最先进准确率提高了7%,达到70.70%,显著超越了之前的最佳表现。
Winograd Schema挑战 (Levesque et al., 2012) 被构建来测量系统通过测量其解决文本中歧义的能力来执行常识推理的能力。最近 Trinh & Le (2018) 使用LM在这个挑战上展示了重大进展,通过以更高的概率预测歧义的解决。我们遵循他们的问题表述,并在图3中可视化我们的模型在完整和部分评分技术下的性能。GPT-2将最先进的准确性提高了7%,达到70.70%。数据集相当小,只有273个示例,因此我们建议阅读 Trichelair et al. (2018) 来帮助理解这个结果的背景。
Winograd Schema挑战性能总结
任务特点: Winograd Schema挑战专门测试语言模型的常识推理能力,通过衡量系统解决文本中歧义的能力来评估其推理水平。
评估方法: 遵循Trinh & Le (2018)的方法,使用语言模型通过预测更高概率来解决歧义问题。
数据集限制: 数据集规模较小,仅有273个示例,因此结果需要谨慎解读。
核心意义: 证明了大规模语言模型在常识推理任务上的显著进步,特别是在处理需要世界知识和逻辑推理的语言歧义问题方面表现出色。这进一步支持了语言模型作为无监督多任务学习器的观点。
3.5. 阅读理解(Reading Comprehension)
对话问答数据集(CoQA)Reddy et al. (2018) 由来自7个不同领域的文档以及关于文档的自然语言对话组成,对话在提问者和回答者之间进行。CoQA测试阅读理解能力以及模型回答依赖于对话历史的问题的能力(如"为什么?")。
表格总结(Table 4:文本摘要性能)
任务背景: 在CNN和Daily Mail数据集上评估文本摘要性能,使用ROUGE F1指标(R-1, R-2, R-L及其平均值R-AVG)。
性能排名:
- Bottom-Up Sum (SOTA): R-AVG 32.75
- Lead-3 (取前三句基线): R-AVG 31.55
- Seq2Seq + Attn: R-AVG 23.99
- GPT-2 TL;DR: R-AVG 21.40
- Random-3 (随机三句): R-AVG 20.98
- GPT-2 no hint: R-AVG 15.03
关键发现: GPT-2在有提示词(TL;DR)的情况下超过了随机基线和一些神经网络方法,但仍低于简单的Lead-3基线和最先进的专门摘要系统。
当以文档、相关对话历史和最终标记A:为条件时,GPT-2的贪婪解码在开发集上达到55 F1。这匹配或超过了4个基线系统中3个的性能,而没有使用那些基线训练的127,000+手动收集的问答对。监督的SOTA,一个基于BERT的系统 (Devlin et al., 2018) ,正在接近人类的89 F1性能。虽然GPT-2在没有任何监督训练的系统中的性能令人兴奋,但对其答案和错误的一些检查表明,GPT-2经常使用简单的基于检索的启发式方法,例如在回答who问题时用文档中的名字回答。
段落总结(阅读理解部分)
任务描述: CoQA数据集测试对话式问答能力,包含7个领域的文档和自然语言对话,要求模型回答依赖对话历史的问题。
GPT-2表现:
- 零样本F1得分55分
- 匹配或超越4个基线系统中的3个
- 无需使用127,000+人工标注的问答对
性能对比: 监督学习的SOTA(基于BERT)接近人类的89 F1性能,GPT-2虽然在无监督系统中表现亮眼,但仍有差距。
局限性分析: 检查发现GPT-2经常使用简单的检索启发式方法,如用文档中的名字回答"who"类问题,说明其推理能力仍有限。
3.6. 摘要(Summarization)
我们测试GPT-2在CNN和Daily Mail数据集上执行摘要的能力 (Nallapati et al., 2016) 。为了诱导摘要行为,我们在文章后添加文本TL;DR:,并使用Top-k随机采样生成100个标记 (Fan et al., 2018) ,k = 2,这减少了重复并鼓励更抽象的摘要而不是贪婪解码。我们使用这100个标记中的前3个生成的句子作为摘要。虽然从定性上看,生成的内容类似于摘要,如表14所示,它们经常关注文章的最近内容或混淆特定细节,例如涉及多少辆车的碰撞或标志是在帽子还是衬衫上。在常见报告的ROUGE 1,2,L指标上,生成的摘要只是开始接近经典神经基线的性能,并且勉强超过从文章中选择3个随机句子。当删除任务提示时,GPT-2的性能在聚合指标上下降了6.4分,这展示了在语言模型中用自然语言调用特定任务行为的能力。
GPT-2文本摘要能力测试总结
实验设置:
- 数据集:CNN和Daily Mail
- 诱导方法:在文章后添加"TL;DR:"提示
- 生成策略:Top-k随机采样(k=2),生成100个标记(token)
- 摘要提取:取前3个生成句子作为最终摘要
定性表现:
- 生成内容在形式上类似摘要
- 存在明显缺陷:经常关注文章最近内容,混淆具体细节(如车祸涉及车辆数量、标志位置等)
定量结果:
- ROUGE指标上仅开始接近经典神经基线性能
- 勉强超过随机选择3个句子的基线方法
- 与专门的摘要系统相比仍有显著差距
任务提示效果:
- 移除"TL;DR:"提示后,性能在聚合指标上下降6.4分
- 证明了自然语言提示能够有效调用语言模型的特定任务行为
核心意义: 虽然GPT-2在摘要任务上表现有限,但实验证明了两个重要观点:
- 大规模语言模型具备一定的零样本摘要能力
- 自然语言提示是引导模型执行特定任务的有效机制
这进一步支持了语言模型作为通用任务执行器的潜力,尽管在某些任务上仍需改进。
3.7. 翻译(Translation)
我们测试GPT-2是否已经开始学习如何从一种语言翻译到另一种语言。为了帮助它推断这是所需的任务,我们以格式为english sentence = french sentence的示例对的上下文条件语言模型,然后在最终提示english sentence = 之后,我们使用贪婪解码从模型中采样,并使用第一个生成的句子作为翻译。在WMT-14英法测试集上,GPT-2获得5 BLEU,这比先前在无监督词翻译工作中推断的双语词典的逐词替换略差 (Conneau et al., 2017b) 。在WMT-14法英测试集上,GPT-2能够利用其非常强大的英语语言模型表现得更好,达到11.5 BLEU。这超过了 (Artetxe et al., 2017) 和 (Lample et al., 2017) 的几个无监督机器翻译基线,但仍远差于当前最佳无监督机器翻译方法的33.5 BLEU (Artetxe et al., 2019) 。这个任务的性能让我们感到惊讶,因为我们故意从WebText中删除了非英语网页作为过滤步骤。为了确认这一点,我们在WebText上运行了一个字节级语言检测器,它只检测到10MB的法语数据,这比先前无监督机器翻译研究中常见的单语法语语料库小约500倍。
GPT-2机器翻译能力测试总结
实验设置:
- 任务诱导:使用"english sentence = french sentence"格式的示例对作为上下文
- 推理方式:在"english sentence = "提示后使用贪婪解码生成翻译
- 评估标准:使用BLEU分数在WMT-14测试集上评估
性能表现:
- 英译法:5 BLEU分数,略低于无监督词典逐词替换方法
- 法译英:11.5 BLEU分数,受益于GPT-2强大的英语语言模型能力
- 超越了部分无监督机器翻译基线,但远低于当时最佳无监督翻译方法的33.5 BLEU
令人惊讶的发现: GPT-2展现出翻译能力尽管:
- WebText训练数据中故意移除了非英语网页
- 字节级语言检测显示仅包含10MB法语数据
- 这比无监督机器翻译研究中常用的单语法语语料库小约500倍
核心意义:
- 少样本学习能力:即使在极其有限的双语数据下,大规模语言模型仍能学会基本翻译能力
- 任务泛化:证明了语言模型能够从少量示例中推断出翻译任务的模式
- 语言迁移:强大的英语语言建模能力有助于提升翻译到英语的性能
这进一步验证了语言模型作为无监督多任务学习器的潜力,即使在训练数据稀缺的情况下也能展现跨语言理解能力。
3.8. 问答(Question Answering)
测试语言模型中包含哪些信息的潜在方法是评估它生成事实式问题正确答案的频率。先前在神经系统中展示这种行为的所有信息都存储在参数中,例如神经对话模型 (Vinyals & Le, 2015) 由于缺乏高质量的评估数据集而报告了定性结果。最近引入的自然问题数据集 (Kwiatkowski et al., 2019) 是一个有前景的资源,可以更定量地测试这一点。与翻译类似,语言模型的上下文用示例问答对进行播种,这有助于模型推断数据集的简短答案风格。当使用SQUAD等阅读理解数据集常用的精确匹配指标评估时,GPT-2正确回答了4.1%的问题。作为比较点,最小的模型不超过每个问题类型(who、what、where等)返回最常见答案的令人难以置信的简单基线的1.0%准确性。GPT-2正确回答的问题多5.3倍,这表明模型容量一直是神经系统在这类任务上表现不佳的主要因素。GPT-2分配给其生成答案的概率经过良好校准,GPT-2在其最有信心的1%的问题上的准确率为63.1%。开发集问题上GPT-2生成的30个最有信心的答案显示在表5中。GPT-2的性能仍然比混合信息检索与抽取式文档问答的开放域问答系统的30到50%范围差得多 (Alberti et al., 2019) 。
GPT-2问答能力测试总结
测试目的: 评估语言模型参数中存储的事实知识,通过测试其生成事实性问题正确答案的能力来衡量。
数据集与方法:
- 使用Natural Questions数据集进行定量评估
- 采用与翻译类似的方法:用示例问答对作为上下文来帮助模型推断答案风格
- 使用精确匹配指标评估(类似SQUAD阅读理解数据集)
性能表现:
- 整体准确率: 4.1%
- 与基线对比: 比简单基线(返回每个问题类型最常见答案)高5.3倍
- 最小模型: 仅达到1.0%准确率,未超过简单基线
置信度校准:
- GPT-2对答案的概率分配良好校准
- 在最有信心的1%问题上准确率达到63.1%
- 展示了模型对自身知识确定性的合理判断
性能差距: 尽管有所改进,GPT-2的表现仍远低于专门的开放域问答系统(30-50%准确率),这些系统结合了信息检索与抽取式文档问答技术。
核心洞察:
- 模型容量重要性: 较大模型显著优于简单基线,表明模型容量是制约神经系统问答性能的主要因素
- 知识存储能力: 证明了大规模语言模型确实能在参数中存储和检索事实知识
- 改进空间: 相比专门系统仍有很大提升空间,但展现了通用语言模型的问答潜力
表格解读与核心意思总结
表格内容分析
这张表展示了GPT-2在Natural Questions数据集上最有信心的30个问答结果,按模型分配的概率降序排列。
具体表现:
- 正确答案数量:30个问题中有26个回答正确(✓),4个错误(✗)
- 置信度范围:从最高的83.4%到最低的45.2%
- 正确率分布:在高置信度问题上准确率很高,体现了良好的概率校准
问题类型覆盖:
- 人物类:作家、科学家、政治家、运动员等(如达尔文、爱因斯坦、阿伦·罗杰斯)
- 时间类:历史事件发生时间(如星球大战首映)
- 地理类:国家、城市、地理特征(如中国、加利福尼亚、蒙大拿)
- 科学概念:生物学、物理学术语(如有丝分裂、单性生殖)
- 文化常识:语言含义、流行文化等
核心意思
- 知识存储验证:证明GPT-2在参数中确实存储了大量事实性知识,涵盖历史、科学、地理、文化等多个领域
- 置信度校准良好:模型对自身答案的概率评估相当准确,高置信度的答案大多正确
- 泛化学习能力:重要的是,这些问题都未在WebText训练数据中出现,说明模型具备了从训练数据中泛化学习事实知识的能力
- 零样本知识检索:无需专门训练,仅通过语言建模就能进行有效的知识问答,支持了"语言模型是无监督多任务学习器"的核心论点
这张表有力证明了大规模语言模型不仅学会了语言模式,还隐式地学习和存储了丰富的世界知识。
4. 泛化vs记忆(Generalization vs Memorization)
计算机视觉的最近工作表明,常见的图像数据集包含大量的近重复图像。例如,CIFAR-10在训练和测试图像之间有3.3%的重叠 (Barz & Denzler, 2019) 。这导致机器学习系统泛化性能的过度报告。随着数据集大小的增加,这个问题变得越来越可能,这表明WebText可能发生类似的现象。因此,分析测试数据在训练数据中出现了多少是很重要的。
为了研究这一点,我们创建了包含WebText训练集标记的8-gram的布隆过滤器。为了提高召回率,字符串被规范化为仅包含小写字母数字词,以单个空格作为分隔符。布隆过滤器的构建使得假阳性率上限为1108\frac{1}{10^8}1081。我们通过生成1M个字符串进一步验证了低假阳性率,其中过滤器发现零个。
这些布隆过滤器让我们可以计算,给定一个数据集,该数据集中也在WebText训练集中找到的8-gram的百分比。表6显示了常见LM基准测试集的这种重叠分析。常见LM数据集的测试集与WebText训练有1-6%的重叠,平均重叠为3.2%。有些令人惊讶的是,许多数据集与其自己的训练分割有更大的重叠,平均重叠为5.9%。
表6(数据重叠分析表)总结
这张表对比了各数据集测试集的8-gram与两种训练集的重叠百分比:
核心发现:
- WebText训练集重叠:与各数据集测试集重叠较低(0.88%-6.31%)
- 数据集自身重叠:多数数据集与自己的训练集重叠更高(0.66%-13.19%)
- 关键对比:如1BW与自身训练集重叠13.19%,但与WebText仅重叠3.75%
表达意思:证明WebText的数据重叠问题并不比现有数据集内部重叠更严重,GPT-2的性能提升主要来自泛化能力而非记忆效应。
我们的方法优化了召回率,虽然对重叠的手动检查显示了许多常见短语,但有许多较长的匹配是由于重复数据造成的。这并非WebText独有。例如,我们发现WikiText-103的测试集有一篇文章也在训练数据集中。由于测试集中只有60篇文章,至少有1.6%的重叠。潜在更令人担忧的是,根据我们的程序,1BW与其自己的训练集有近13.2%的重叠。
对于Winograd Schema挑战,我们只发现了10个与WebText训练集有任何8-gram重叠的模式。其中,2个是虚假匹配。在剩余的8个中,只有1个模式出现在任何泄露答案的上下文中。
对于CoQA,新闻领域中约15%的文档已经在WebText中,模型在这些文档上的表现好约3 F1。CoQA的开发集指标报告5个不同领域的平均性能,我们测量由于各个领域的重叠而获得约0.5-1.0 F1的提升。然而,没有实际的训练问题或答案在WebText中,因为CoQA是在WebText链接截止日期之后发布的。
在LAMBADA上,平均重叠为1.2%。GPT-2在重叠超过15%的示例上表现好约2个困惑度。当排除所有有任何重叠的示例时重新计算指标,结果从8.6变为8.7困惑度,准确性从63.2%降低到62.9%。整体结果的这种非常小的变化可能是由于只有200个示例中的1个有显著重叠。
总的来说,我们的分析表明,WebText训练数据和特定评估数据集之间的数据重叠为报告的结果提供了小但一致的好处。然而,对于大多数数据集,我们没有注意到比标准训练和测试集之间已经存在的重叠显著更大的重叠,如表6所强调的。
理解和量化高度相似的文本如何影响性能是一个重要的研究问题。更好的去重技术,如可扩展的模糊匹配,也可以帮助更好地回答这些问题。目前,我们建议在创建新NLP数据集的训练和测试分割期间,使用基于n-gram重叠的去重作为重要的验证步骤和理智检查。
确定WebText LM的性能是否可归因于记忆的另一种潜在方法是检查它们在自己的保留集上的性能。如图4所示,WebText的训练集和测试集上的性能相似,并且随着模型大小的增加而一起改善。这表明即使GPT-2在许多方面仍然对WebText欠拟合。
GPT-2还能够撰写关于发现会说话的独角兽的新闻文章。表13中提供了一个示例。
表13(条件生成示例表)总结 ⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
这张表展示了GPT-2基于人类提供的上下文生成虚构新闻文章的能力:
生成内容:
- 上下文:科学家在安第斯山脉发现会说英语的独角兽群
- GPT-2续写:详细虚构了发现过程、科学家访谈、独角兽特征描述、起源理论等完整新闻报道
表达意思:
- 创造性泛化:模型能生成完全虚构但逻辑连贯的内容
- 结构化写作:遵循新闻报道的标准格式和写作风格
- 非记忆性:证明模型具备真正的创造能力,而非简单复制训练数据
这个例子有力支持了GPT-2具备超越记忆的真正语言生成和推理能力。⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
泛化vs记忆分析总结
研究背景与动机计算机视觉研究发现图像数据集存在大量近重复现象(如CIFAR-10有3.3%重叠),导致泛化性能被高估。随着数据集规模增大,WebText可能也存在类似问题,因此需要分析测试数据在训练数据中的重叠程度。
技术方法
- 构建包含WebText训练集8-gram的布隆过滤器
- 字符串标准化为小写字母数字词,单空格分隔
- 假阳性率上限设置,验证显示零假阳性
- 计算各评估数据集与WebText训练集的8-gram重叠百分比
重叠分析结果
整体重叠:常见语言模型基准测试集与WebText训练数据重叠1-6%,平均3.2%
对比发现:许多数据集与自己的训练分割重叠更大,平均5.9%
具体案例:
- WikiText-103测试集至少1.6%重叠
- 1BW与自己训练集重叠13.2%
- Winograd Schema仅10个模式有重叠,只1个泄露答案
各任务影响评估
- CoQA:新闻领域15%文档重叠,重叠文档上性能提升3 F1,整体提升0.5-1.0 F1
- LAMBADA:平均1.2%重叠,高重叠样本性能提升2个困惑度,排除重叠后整体结果变化微小(8.6→8.7困惑度)
核心结论
- 有限影响:数据重叠确实提供小但一致的性能提升,但影响有限
- 行业普遍问题:WebText的重叠程度并未显著超过标准训练/测试集之间的现有重叠
- 仍在欠拟合:训练集和测试集性能相似且同步改善,表明GPT-2仍对WebText欠拟合
- 泛化能力:模型能生成关于虚构事件(如会说话独角兽)的新闻文章,展现创造性泛化能力
建议与展望
- 建议在创建新NLP数据集时使用基于n-gram重叠的去重作为重要验证步骤
- 需要更好的去重技术和模糊匹配方法来深入研究文本相似性对性能的影响
核心意义:这项分析证明GPT-2的强大性能主要来自真正的泛化学习能力,而非简单的记忆效应。
数据重叠(Data Overlap)的含义
数据重叠指训练数据和测试数据之间存在相同或高度相似的内容片段。
在GPT-2论文中的具体定义
论文中的数据重叠特指:
- 训练集:WebText(GPT-2的训练数据)
- 测试集:各种NLP基准数据集的测试部分
- 重叠判断:使用8-gram(连续8个词组)作为匹配单位
技术检测方法
- 8-gram布隆过滤器:构建包含WebText训练集所有8-gram的过滤器
- 字符串标准化:转换为小写字母数字词,用单空格分隔
- 重叠计算:测试集中有多少百分比的8-gram也在WebText训练集中出现
为什么8-gram重要
- 足够长度:8个连续词组成的序列足够长,偶然匹配概率极低
- 有意义匹配:能识别真正的内容重复,而非常见短语巧合
- 平衡精度:既不会因过短而误报,也不会因过长而漏报
具体例子
如果测试集中有句子:“The quick brown fox jumps over the lazy dog” 而训练集中也出现:“…quick brown fox jumps over the lazy…” 那么这个8-gram “quick brown fox jumps over the lazy” 就算作重叠。
为什么关注数据重叠
- 性能虚高:如果模型在训练时见过测试内容,会导致评估结果不真实
- 泛化质疑:无法区分模型是真正理解任务还是在"背答案"
- 公平比较:确保与其他方法的比较是公正的
论文通过这个分析证明:GPT-2的强大性能主要来自真正的学习能力,而非简单记忆训练数据。
5. 相关工作(Related Work)
这项工作的很大一部分测量了在更大数据集上训练的更大语言模型的性能。这类似于 Jozefowicz et al. (2016) 的工作,他们在十亿词基准上扩展了基于RNN的语言模型。Bajgar et al. (2016) 之前也通过从Project Gutenberg创建更大的训练数据集来补充标准训练数据集,从而改善了儿童图书测试的结果。Hestness et al. (2017) 对各种深度学习模型的性能如何随模型容量和数据集大小的函数变化进行了彻底分析。我们的实验虽然跨任务更嘈杂,但表明类似的趋势适用于目标的子任务,并继续进入1B+参数体系。
生成模型中有趣的学习功能之前已经被记录过,例如RNN语言模型中执行行宽跟踪和引号/评论检测的单元 Karpathy et al. (2015) 。对我们工作更有启发性的是 Liu et al. (2018) 的观察,即训练生成维基百科文章的模型也学会了在语言之间翻译名称。
先前的工作已经探索了过滤和构建大型网页文本语料库的替代方法,例如iWeb语料库 (Davies, 2018) 。
关于语言任务的预训练方法已经有大量工作。除了介绍中提到的那些,GloVe (Pennington et al., 2014) 将词向量表示学习扩展到所有Common Crawl。关于文本深度表示学习的有影响力的早期工作是Skip-thought Vectors (Kiros et al., 2015) 。McCann et al. (2017) 探索了使用来自机器翻译模型的表示,Howard & Ruder (2018) 改进了基于RNN的微调方法 (Dai & Le, 2015) 。 (Conneau et al., 2017a) 研究了自然语言推理模型学习的表示的迁移性能, (Subramanian et al., 2018) 探索了大规模多任务训练。
(Ramachandran et al., 2016) 证明seq2seq模型从用预训练的语言模型作为编码器和解码器初始化中受益。最近的工作表明,LM预训练在微调用于困难的生成任务(如闲聊对话和基于对话的问答系统)时很有帮助 (Wolf et al., 2019) (Dinan et al., 2018) 。
这部分回顾了与GPT-2相关的先前研究,主要包括以下几个方向:
大规模语言模型的扩展研究
- 探索了更大模型在更大数据集上的性能表现
- Jozefowicz等人(2016)在十亿词基准上扩展了RNN语言模型
- Hestness等人(2017)系统分析了深度学习模型性能与模型容量、数据集大小的关系
- 这些研究为GPT-2的规模扩展提供了理论基础
生成模型的涌现能力
- Karpathy等人(2015)发现RNN语言模型中出现了执行特定功能的单元(如行宽跟踪、引号检测)
- Liu等人(2018)观察到训练生成维基百科的模型自动学会了跨语言翻译名称
- 这些发现启发了对大规模模型涌现能力的探索
大规模网络文本语料库构建
- 探索了过滤和构建网页文本语料库的不同方法
- 如Davies(2018)的iWeb语料库
- 为WebText数据集的构建提供了参考
预训练方法的发展
词向量表示:GloVe将学习扩展到整个Common Crawl
深度表示学习:Skip-thought Vectors等早期工作
迁移学习改进:
- McCann等人探索机器翻译模型的表示
- Howard & Ruder改进了RNN微调方法
- Conneau等人研究了NLI模型的迁移性能
生成任务应用:预训练在对话系统、问答等困难生成任务中被证明有效
这些相关工作为GPT-2的设计提供了重要基础,特别是在规模扩展、零样本学习能力和预训练-微调范式等方面。
6. 讨论(Discussion)
许多研究致力于学习 (Hill et al., 2016) 、理解 (Levy & Goldberg, 2014) 和批判性评估 (Wieting & Kiela, 2019) 监督和无监督预训练方法的表示。我们的结果表明,无监督任务学习是一个额外有前景的研究领域。这些发现潜在地帮助解释了预训练技术在下游NLP任务中的广泛成功,因为我们表明,在极限情况下,这些预训练技术之一开始直接学习执行任务,而无需监督适应或修改。
在阅读理解上,GPT-2的性能在零样本设置下与监督基线具有竞争力。然而,在其他任务(如摘要)上,虽然它在定性上执行任务,但根据定量指标,其性能仍然只是初步的。虽然作为研究结果具有启发性,但就实际应用而言,GPT-2的零样本性能仍远未可用。
我们已经研究了WebText LM在许多规范NLP任务上的零样本性能,但还有许多其他任务可以评估。毫无疑问,有许多实际任务,GPT-2的性能仍然不比随机好。即使在我们评估的常见任务上,如问答和翻译,语言模型只有在具有足够容量时才开始超越平凡的基线。
虽然零样本性能建立了GPT-2在许多任务上潜在性能的基线,但微调的上限在哪里还不清楚。在某些任务上,GPT-2的完全抽象输出与目前在许多问答和阅读理解数据集上最先进的基于抽取式指针网络 (Vinyals et al., 2015) 的输出有显著差异。鉴于GPT微调的先前成功,我们计划研究在decaNLP和GLUE等基准上的微调,特别是因为不清楚GPT-2的额外训练数据和容量是否足以克服BERT展示的单向表示的低效率 (Devlin et al., 2018) 。
这两部分总结了GPT-2研究的主要发现和意义:
讨论部分的要点
无监督任务学习的潜力
- 研究表明无监督任务学习是一个有前景的研究方向
- 解释了预训练技术在下游NLP任务中广泛成功的原因
- 在极限情况下,预训练模型开始直接学习执行任务,无需监督适应或修改
当前性能评估
- 阅读理解:零样本性能与监督基线具有竞争力
- 其他任务(如摘要) :虽能定性执行任务,但定量指标显示性能仍处于初步阶段
- 实际应用:零样本性能距离实用还有较大差距
- 任务覆盖:在许多未测试的任务上,GPT-2可能仍不比随机好
局限性与未来方向
- 语言模型需要足够的容量才能在问答、翻译等任务上超越基线
- GPT-2的抽象输出与当前基于抽取式方法的SOTA存在显著差异
- 微调性能的上限尚不明确,需要进一步研究
- 计划在decaNLP和GLUE等基准上研究微调效果
7. 结论(Conclusion)
当大型语言模型在足够大且多样化的数据集上训练时,它能够在许多领域和数据集上表现良好。GPT-2在8个测试的语言建模数据集中的7个上达到了零样本最先进的性能。任务的多样性模型能够在零样本设置下执行表明,经过训练以最大化足够多样化的文本语料库的可能性的高容量模型开始学习如何执行大量任务,而无需显式监督。
结论部分的核心观点
主要成就
- GPT-2在8个语言建模数据集中的7个达到零样本SOTA
- 展示了在多种任务上的零样本执行能力
关键发现
- 在足够大且多样化的数据集上训练的大型语言模型能够在多个领域表现良好
- 高容量模型通过最大化多样化文本语料库的似然,开始隐式学习执行大量任务
- 这种学习无需显式的任务特定监督信号
这些结论确立了大规模预训练语言模型的重要地位,并为后续研究(如GPT-3、GPT-4)奠定了基础。
8. 附录(Apendix)
个人注解仅限正文,详情参考
GPT2
原文链接:https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf
9. GPT1 VS GPT2对比
GPT-1 vs GPT-2 详细对比表
基础信息对比
维度 | GPT-1 | GPT-2 |
---|---|---|
发布时间 | 2018年6月 | 2019年2月 |
论文标题 | Improving Language Understanding by Generative Pre-Training | Language Models are Unsupervised Multitask Learners |
核心贡献 | 提出预训练-微调范式 | 展示零样本任务学习能力 |
研究重点 | 有监督微调的有效性 | 无监督多任务学习 |
模型架构对比
维度 | GPT-1 | GPT-2 |
---|---|---|
基础架构 | Transformer Decoder | Transformer Decoder(改进版) |
参数量 | 117M | 117M / 345M / 762M / 1542M(1.5B) |
层数 | 12层 | 12 / 24 / 36 / 48层 |
隐藏维度 | 768 | 768 / 1024 / 1280 / 1600 |
注意力头数 | 12 | 12 / 16 / 20 / 25 |
上下文长度 | 512 tokens | 1024 tokens |
词汇表大小 | ~40,000 (BPE) | 50,257 (BPE) |
位置编码 | 学习的位置嵌入 | 学习的位置嵌入 |
激活函数 | GELU | GELU |
架构改进细节
改进项 | GPT-1 | GPT-2 |
---|---|---|
层归一化位置 | 后置(Post-norm) | 前置(Pre-norm) |
权重初始化 | 标准初始化 | 按层深度缩放的初始化 |
残差连接 | 标准残差 | 改进的残差连接 |
输入处理 | 单独的位置和token嵌入 | 统一的输入处理 |
词汇表处理 | 标准BPE | 改进的BPE,更好的稀有词处理 |
训练数据对比
维度 | GPT-1 | GPT-2 |
---|---|---|
数据集名称 | BookCorpus | WebText |
数据规模 | ~5GB文本 | ~40GB文本 |
数据来源 | 7000+未出版书籍 | Reddit高赞链接的网页 |
数据质量控制 | 基础过滤 | 严格质量过滤(karma≥3) |
文本多样性 | 主要是书籍文本 | 网页、新闻、论坛等多样化文本 |
Token数量 | ~800M tokens | ~10B tokens |
数据处理 | 简单清洗 | 去重、质量过滤、格式规范化 |
训练策略对比
维度 | GPT-1 | GPT-2 |
---|---|---|
预训练任务 | 语言建模 | 语言建模 |
训练目标 | 最大化似然 | 最大化似然 |
优化器 | Adam | Adam |
学习率策略 | 线性warmup + 余弦退火 | 线性warmup + 余弦退火 |
批次大小 | 64 | 512 |
训练步数 | 100万步 | 根据模型大小调整 |
正则化 | Dropout (0.1) | Dropout + 权重衰减 |
评估方法对比
维度 | GPT-1 | GPT-2 |
---|---|---|
主要评估方式 | 微调后评估 | 零样本评估 |
任务适配方法 | 任务特定的输入转换+微调 | 自然语言任务描述 |
需要标注数据 | 是(用于微调) | 否(零样本) |
评估范围 | 12个NLP任务 | 8个语言建模数据集+多项NLP任务 |
性能衡量 | 微调后的准确率 | 零样本困惑度/准确率 |
任务性能对比
任务类型 | GPT-1 | GPT-2 |
---|---|---|
语言建模 | 未专门评估 | 7/8数据集达到SOTA |
文本分类 | 需要微调,性能良好 | 零样本性能一般 |
自然语言推理 | MNLI: 82.1%(微调) | 零样本性能较弱 |
问答 | RACE: 59%(微调) | 零样本F1: 55(CoQA) |
语义相似度 | STS-B: 82.0%(微调) | 未专门评估 |
阅读理解 | 需要微调 | 零样本接近监督基线 |
翻译 | 不支持 | 零样本初步能力 |
摘要 | 不支持 | 零样本初步能力 |
创新点对比
维度 | GPT-1 | GPT-2 |
---|---|---|
核心创新 | 生成式预训练+判别式微调 | 大规模预训练实现零样本学习 |
任务处理 | 需要任务特定的架构调整 | 统一的语言建模框架 |
泛化能力 | 通过微调泛化到新任务 | 直接泛化到未见任务 |
监督信号 | 需要下游任务标注数据 | 仅需预训练阶段的无监督数据 |
技术特性对比
特性 | GPT-1 | GPT-2 |
---|---|---|
输入表示 | [START] + tokens + [EXTRACT] | 更自然的文本表示 |
任务编码 | 特殊标记和分隔符 | 自然语言指令 |
输出生成 | 主要用于分类/回归 | 完整的文本生成能力 |
多任务学习 | 不支持 | 隐式多任务学习 |
领域适应 | 通过微调实现 | 零样本泛化 |
实验发现对比
方面 | GPT-1 | GPT-2 |
---|---|---|
规模效应 | 初步观察到预训练的好处 | 系统研究规模与性能的关系 |
涌现能力 | 未观察到 | 发现多种涌现能力 |
数据效率 | 展示了预训练提高数据效率 | 零样本减少标注需求 |
迁移学习 | 证明了迁移学习的有效性 | 扩展到无监督迁移 |
局限性对比
局限性 | GPT-1 | GPT-2 |
---|---|---|
主要限制 | 需要任务特定微调 | 零样本性能仍有限 |
计算需求 | 相对较低 | 大模型计算需求高 |
数据依赖 | 需要下游任务标注数据 | 需要大规模高质量预训练数据 |
架构限制 | 单向注意力 | 单向注意力 |
可解释性 | 有限 | 更加有限 |
应用场景对比
场景 | GPT-1 | GPT-2 |
---|---|---|
适用场景 | 有标注数据的特定任务 | 通用文本生成、少样本场景 |
部署要求 | 需要任务特定训练 | 可直接部署使用 |
灵活性 | 较低(固定任务) | 较高(多任务) |
实用性 | 特定任务上实用 | 探索性强,实用性有限 |
影响与贡献
方面 | GPT-1 | GPT-2 |
---|---|---|
学术影响 | 确立预训练-微调范式 | 开启大模型时代 |
技术推动 | 推广Transformer在NLP应用 | 推动模型规模化研究 |
方法论贡献 | 统一的预训练方法 | 零样本学习范式 |
后续发展 | 启发BERT等模型 | 启发GPT-3、GPT-4等 |
关键指标总结
指标 | GPT-1 | GPT-2最大版本 |
---|---|---|
参数量提升 | 117M | 1.5B(13倍) |
训练数据量 | ~800M tokens | ~10B tokens(12倍) |
上下文长度 | 512 | 1024(2倍) |
零样本能力 | 无 | 多任务零样本 |
GLUE平均分 | 72.8(微调) | 未测试 |
语言建模SOTA | 0/8 | 7/8 |
本文为个人阅读
GPT2
,精读笔记,希望对您有帮助!个人注解水平有限详情参考原文链接
原文链接:https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf