OpenAI GPT模型演进之路(一)

自 2015 年 OpenAI 成立以来,它已经成为了人工智能领域的一股强大力量。OpenAI 的 GPT 模型(Generative Pre-trained Transformer),作为其最具代表性的技术之一,已经改变了自然语言处理(NLP)领域的面貌。本系列文章将回顾 GPT 模型的发展历程,分析其关键的技术突破和创新,以及探讨其对未来人工智能发展的影响。

介绍

OpenAI 的生成式预训练 Transformer (Generative Pre-trained Transformer, GPT) 模型通过引入非常强大的语言模型,席卷了自然语言处理(NLP)社区。这些模型可以执行各种 NLP 任务,如问答、文本蕴涵、文本摘要等,而无需任何监督训练。这些语言模型几乎不需要示例来理解任务,并执行与以监督方式训练的最先进的模型相当甚至更好的性能。

GPT-1:开启征程

GPT-1 是 OpenAI 在 2018 年 6 月推出的第一个版本,它采用了 Transformer 解码器架构,并通过无监督学习从大规模文本数据中预训练。GPT-1 在自然语言生成和理解任务上取得了令人瞩目的成绩,展示了Transformer模型的巨大潜力。

在 GPT-1 发布之前,大多数先进的 NLP 模型都是使用有监督学习专门针对特定任务(如情感分类、文本蕴涵等)进行训练的。但是,监督模型有两个主要限制:

  • 需要大量带注释的数据来学习通常不容易获得的特定任务。
  • 无法完成超出训练范围以外的任务。

GPT-1 没有走其他 NLP 模型的路线,采用未标记的数据学习生成语言模型,然后通过提供特定下游任务(如分类、情感分析、文本蕴涵等)的示例来微调模型。

其中左侧是 GPT-1 使用的 Transformer 架构和训练目标,右侧用于对不同任务进行微调的输入转换。将所有结构化输入转换为令牌序列,由预训练模型处理,经过线性层和 softmax 层输出。

模型训练

这种针对 NLP 任务的半监督学习(无监督预训练,然后是监督微调)具有以下三个组成部分:

  1. 无监督语言建模(预训练)

    对于无监督学习,使用标准语言模型目标。

    其中 T 是无监督数据 {t_1,...,t_n} 中的标记集,k 是上下文窗口的大小,θ 是使用随机梯度下降训练的神经网络的参数。

  2. 监督微调

    这部分旨在最大限度地提高观察标签 y 的可能性,给定的特征或标记x_1,...,x_n

    其中 C 是由训练样本组成的标记数据集。

    此外增加了一个辅助学习目标,用于监督微调,以获得更好的泛化和更快的收敛。修改后的训练目标表述为:

    其中L₁(C)是学习语言模型的辅助目标,λ 是赋予该次要学习目标的权重。λ 设置为 0.5。

    通过在 Transformer 模型中添加线性层和 softmax 层来获取下游任务的任务标签,从而实现监督微调。

  3. 特定于任务的输入转换

    为了在微调期间对模型的架构进行最小化的更改,特定下游任务的输入被转换为有序序列。令牌按以下方式重新排列:

  • 开始和结束标记已添加到输入序列中。
  • 在示例的不同部分之间添加了分隔符标记,以便输入可以作为有序序列发送。对于问答、多项选择题等任务,每个示例都发送了多个序列。例如,由上下文序列、问答任务的问答和答案组成的训练示例。

数据集

GPT-1 使用 BooksCorpus 数据集来训练语言模型。BooksCorpus 有大约 7000 本未出版的书籍,这有助于在看不见的数据上训练语言模型。在下游任务的测试集中不太可能找到此数据。此外,该语料库具有大量连续文本,这有助于模型学习大范围依赖关系。

模型架构

GPT-1 采用 12 层 Transformer 解码器结构,每一层的维度是 768,具有掩码自注意力来训练语言模型。模型的架构在很大程度上与变压器的原始工作中描述的相同。掩码有助于实现语言模型目标,其中语言模型无法访问当前单词右侧的后续单词。

模型在大小为 64、序列长度为 512 的小批量上训练了 100 epoch,模型规模 117M 参数。

性能

GPT-1 在比较模型的 12 项任务中的 9 项中表现优于经过专门有监督学习训练的最先进的模型,拿到了 SOTA。

由于预训练,模型在不同的 NLP 任务(如问答、模式解析、情感分析等)上已经进化为零样本 (zero-shot) 性能。

意义

GPT-1 证明了语言模型是一个有效的预训练目标,可以帮助模型很好地泛化。该架构促进了迁移学习,并且可以执行各种 NLP 任务,只需很少的微调。该模型显示了生成式预训练的强大功能,并为其他模型开辟了道路,这些模型可以通过更大的数据集和更多的参数更好地释放这种潜力。

相关推荐
抓哇能手12 分钟前
数据库系统概论
数据库·人工智能·sql·mysql·计算机
火云洞红孩儿19 分钟前
基于AI IDE 打造快速化的游戏LUA脚本的生成系统
c++·人工智能·inscode·游戏引擎·lua·游戏开发·脚本系统
风清扬雨1 小时前
【计算机视觉】超简单!傅里叶变换的经典案例
人工智能·计算机视觉
HuggingFace1 小时前
自动评估基准 | 设计你的自动评估任务
人工智能·自动评估
GISer_Jing1 小时前
神经网络初学总结(一)
人工智能·深度学习·神经网络
szxinmai主板定制专家1 小时前
【国产NI替代】基于A7 FPGA+AI的16振动(16bits)终端PCIE数据采集板卡
人工智能·fpga开发
数据分析能量站2 小时前
神经网络-AlexNet
人工智能·深度学习·神经网络
Ven%2 小时前
如何修改pip全局缓存位置和全局安装包存放路径
人工智能·python·深度学习·缓存·自然语言处理·pip
szxinmai主板定制专家2 小时前
【NI国产替代】基于国产FPGA+全志T3的全国产16振动+2转速(24bits)高精度终端采集板卡
人工智能·fpga开发
YangJZ_ByteMaster2 小时前
EndtoEnd Object Detection with Transformers
人工智能·深度学习·目标检测·计算机视觉