自 2015 年 OpenAI 成立以来,它已经成为了人工智能领域的一股强大力量。OpenAI 的 GPT 模型(Generative Pre-trained Transformer),作为其最具代表性的技术之一,已经改变了自然语言处理(NLP)领域的面貌。本系列文章将回顾 GPT 模型的发展历程,分析其关键的技术突破和创新,以及探讨其对未来人工智能发展的影响。
GPT-2:规模跃升
GPT-1 发布后仅过了 4 个月的时间,Google AI Language 的研究人员开源了一种名为 BERT 的自然语言处理(NLP) 新技术,GPT-1 的地位受到挑战。
为了进一步提高模型性能,巩固自己的地位,OpenAI 在 2019 年 2 月推出了 GPT-2,GPT-2 模型的发展主要是使用更大的数据集并向模型添加更多参数以学习更强大的语言模型,使得模型在生成文本时更加流利和富有创造力。
模型训练
-
任务约束
GPT-2 采用的方法是语言建模,其核心是语言建模,通常将其设置为一个无监督分布问题,其中包含一组示例
{x₁, x₂, ..., xₙ}
,每个示例由可变长度的符号序列{s₁, s₂, ..., sn}
组成。由于语言的结构是顺序排序的,因此通常将其表示为条件概率的乘积。
语言模型的训练目标被表述为
P(output|input)
,GPT-2 旨在使用相同的无监督模型学习多个任务。为了实现这一点,GPT-2 将学习目标修改为P(output|input, task)
。这种修改称为任务约束,其中模型应为不同任务的相同输入生成不同的输出。一些模型在体系结构级别实现任务条件,在体系结构层面上,模型同时得到输入和任务。对于语言模型来说,输出、输入和任务都是自然语言的序列。因此,通过向模型提供执行任务的示例或自然语言指令来执行语言模型的任务条件。 -
零样本 (zero-shot) 学习和零短任务转移
GPT-2 的一个亮点功能是零样本任务转移。零样本学习是零样本任务转移的一种特例,其中根本没有提供任何示例,模型根据给定的指令理解任务。GPT-2 的输入没有像 GPT-1 那样重新排列序列进行微调,而是以一种期望模型理解任务性质并提供答案的格式给出。这样做是为了模拟零样本任务转移行为。例如,对于英法翻译任务,向模型提供了一个英文句子,后面跟着单词和提示符
French:
,该模型就应该理解这是一项翻译任务,并给出英语句子的法语翻译。
数据集
为了创建一个广泛且高质量的数据集,作者抓取了 Reddit 平台,并从高点赞文章的出站链接中提取数据。由此产生的数据集称为 WebText,其中包含来自 8M 个文档的 40GB 文本数据。该数据集用于训练 GPT-2,与用于训练 GPT-1 模型的 BooksCorpus 数据集相比,该数据集非常庞大。所有维基百科(Wikipedia)文章都已从 WebText 中删除,因为许多测试集包含维基百科文章。
模型架构
GPT-2 4种型号尺寸的体系结构超参数如下:
其中最大的模型有 1.5B 个参数,是 GPT-1 的 10 倍,与 GPT-1 的主要区别在于:
- GPT-2 有 48 层,使用 1600 维向量进行词嵌入。
- 使用了 50257 个标记的更大词汇表。
- 使用了较大的批处理大小(512)和较大的上下文窗口(1024 tokens)。
- 层归一化被移动到每个子块的输入,并在最终的自注意力块之后添加了额外的层归一化。
性能
GPT-2 在阅读理解、总结、翻译、问答等下游任务的几个数据集上进行了评估:
- 在 8 个语言建模数据集中的 7 个上拿到了 SOTA。
- 在零样本设置下的阅读理解任务中优于 4 个基线模型中的 3 个。
- 在文本摘要方面表现不佳,其性能与为摘要训练的经典模型相似或更差。
意义
GPT-2 表明,在更大的数据集上进行训练并拥有更多参数可以提高语言模型理解任务的能力,并在零样本设置中超越许多任务的最新技术。提出随着模型容量的增加,性能以对数线性方式增加的理念。此外,语言模型的困惑度下降没有表现出饱和,并且随着参数数量的增加而不断下降。事实上,GPT-2 在拟合 WebText 数据集和训练更多时间的情况下可以进一步减少困惑。这表明 GPT-2 的模型大小不是极限,构建更大的语言模型将减少困惑并使语言模型更好地理解自然语言。