介绍
如果你一直在关注NLP领域的最新发展,那么在过去几个月里几乎不可能避免GPT-3的炒作。这一切都始于OpenAl研究人员发表的论文《Language Models are few Shot Learners》,该论文介绍了GPT-3系列模型。
GPT-3的规模和语言能力是惊人的,它可以虚构、开发程序代码、编写深思熟虑的商业备忘录、总结文本等。它可能的用例仅限于我们的想象。它的迷人之处在于,同一个算法可以执行广泛的任务。与此同时,人们对GPT-3能力的性质和风险普遍存在误解。
为了更好地理解GPT-3的能力和局限性,需要对它之前的预训练的NLP模型有一定的了解。下表比较了一些突出的预训练模型:
让我们看看GPT-3之前的预训练NLP模型的一些共同特征:
NLP预训练模型是基于Transformer架构的
大部分的预训练模型属于使用注意力机制的Transformer模型,这些模型可以分为四类:
不同的任务有不同的模型
重点是为各种NLP任务创建自定义模型。所以我们有不同的预训练模型用于独立的NLP任务,如情绪分析,问题回答,实体提取等。
预先训练的模型的微调,以提高性能
对于每个任务,需要对预训练的模型进行微调,以根据手头的数据定制它。微调包括对各自的预训练模型进行梯度更新,更新后的权重被存储起来,用于对各自的NLP任务进行预测
对大数据集的微调依赖
微调模型需要大量的自定义标签数据。这是将预先训练好的模型扩展到标签数据有限的新领域的瓶颈。
重点更多的是架构的改进而不是规模
虽然在短时间内出现了新的预训练模型,但更大的关注点是带来架构改进或对不同数据集的培训,以扩大NLP应用程序的网络。
GPT-3的概述
关于GPT-3的主要事实:
模型分类:GPT-3有8个不同的模型,参数从1.25亿到1750亿不等。
模型大小:最大的GPT-3模型有1750亿参数。这比最大的BERT模型大470倍(3.75亿个参数)
体系结构:GPT-3是一种自回归模型,使用仅有解码器的体系结构。使用下一个单词预测目标进行训练
学习方式:GPT-3通过很少的学习,学习时没有梯度更新
需要训练数据:GPT-3需要较少的训练数据。它可以从非常少的数据中学习,这使得它的应用程序可以用于数据较少的领域
GPT 3模型的大小、架构和学习超参数:
GPT 3模型中的关键设计假设:
- 模型规模的增加和对更大数据的训练可以导致性能的提高
- 单一模型可以在许多NLP任务上提供良好的性能。
- 模型可以从新数据中推断,不需要进行微调
- 该模型可以解决从未训练过的数据集上的问题。
GPT-3如何学习
传统上,预训练的模型是通过微调来学习适应新的任务的。模型的微调需要大量的数据来解决我们正在解决的问题,也需要更新模型的权重。现有的微调方法如下图所示。
学习过程为早期的预训练语言模型-微调
GPT-3采用了不同的学习方法。不需要大量标记数据来推断新问题。相反,它可以不从数据(零次学习 Zero-Shot Learning )中学习,只从一个例子(一次学习 one-Shot Learning)或几个例子中学习。
下面我们展示了GPT-3所采用的不同学习方法。
GPT-3和BERT有什么不同
BERT是最早的预训练模型之一,并被认为为大多数NLP任务设定了基准。下面我们将GPT-3与BERT在三个维度上进行比较:
以上可以看出
- GPT-3的大小是其突出的特点。它几乎是最大的BERT模型的470倍
- 在架构方面,BERT仍然处于领先地位。它是一种经过训练能够更好地捕捉不同问题语境下文本之间的潜在关系。
- GPT-3学习方法相对简单,可以应用于很多没有足够数据的问题。因此,与BERT相比,GPT-3应该有更广泛的应用。
GPT-3在哪些方面真正取得了成功
随着学习更好地表示底层文本语料库的进展,自然语言处理技术的应用也在不断发展。下面的图表给出了一些传统NLP应用领域的快速概述。
传统的基于词袋的语言处理方法仅限于文本解析、情绪分析、主题模型等任务。随着词向量和神经语言模型的出现,机器翻译、实体识别、信息检索等新应用开始崭露头角。
在过去的几年里,诸如BERT, Roberta等预训练模型的出现,以及诸如Hugging Face, Spacy Transformers等框架的出现,使得诸如阅读理解,文本总结等NLP任务成为可能,这些NLP模型创造出了最新的基准。
预训练的NLP模型所面临的前沿任务是自然语言生成、自然语言推理和常识推理任务。此外,NLP在这些数据有限的领域的应用也存在疑问。所以问题是GPT-3能够对这些任务产生多大的影响。
GPT-3在第一项文本生成任务和第二项任务方面取得了实质性进展。将NLP应用扩展到缺乏足够训练数据的领域。
文本生成功能
在生成文本时,GPT-3非常强大。根据人类所做的调查,可以观察到GPT-3生成的文本与人类生成的文本几乎没有什么区别。这对于创建创造性小说、故事、简历、叙事、聊天机器人、文本摘要等领域的解决方案来说是一个巨大的发展。与此同时,世界也意识到,这种权力可以被不法分子利用,在社交平台上创建和植入虚假数据。
使用有限的数据构建NLP解决方案
我们已经看到开源社区使用GPT-3 API的任务,如生成UNIX Shell命令、SQL查询、机器学习代码等。用户需要提供的只是简单的英语任务描述和一些输入/输出示例。这可能会给组织带来巨大的潜力,使日常任务自动化,加快流程,并将人才集中在更高价值的任务上
GPT-3面临的挑战
我们已经看到GPT-3能够在文本生成任务上取得实质性的进展,并将NLP的应用扩展到可用数据有限的领域。然而,它在传统的NLP任务(如机器翻译、阅读理解和自然语言推理任务)中表现如何呢?
语言建模:GPT-3在纯语言建模任务上击败了所有的基准。
机器翻译:对于需要将文档转换成英语的翻译任务,该模型的性能优于基准测试。但是如果需要将语言从英语翻译为非英语,那么情况就不一样了,GPT-3的性能也会出现问题。
阅读理解:GPT 3模型的性能远远低于这里的技术水平。
自然语言推理:自然语言推理(NLI)关注理解两个句子之间的关系的能力。GPT 3模型在NLI任务中的表现很差
常识推理:常识推理数据集测试物理或科学推理技能的表现。GPT 3模型在这些任务上的表现很差
GPT-3还有很长的路要走
集成挑战:目前,GPT-3已经被一些使用开放AI api的用户所使用,用户社区很乐意使用GPT-3构建玩具应用程序。许多公司,尤其是金融界的公司,都有规定,禁止将数据转移到公司之外。考虑到GPT-3的大小,如果需要将模型集成到主流应用程序中,那么开发必要的基础设施以获取数据和模型将是一项艰巨的工作。
单一模型与混合模型的争论:拥有一个用于所有任务的单一模型的梦想是一个值得珍惜的梦想,它不需要训练,可以在没有大量数据的情况下学习。GPT-3已经朝着实现这一目标迈出了第一步,但还有一段路要走。就其目前的形式而言,GPT-3是一个混合体。一种可能的方法是将GPT-3用于文本生成、机器翻译和数据有限的领域。然而,现有的预训练的定制模型(BERT/Roberta/Reformer…)将继续在实体识别、情绪分析、问题回答等传统任务上占据优势。
对模型偏差和可解释性的担忧:考虑到GPT-3的庞大规模,公司将很难解释该算法做出的决策。公司没有办法管理用于训练算法的数据。我们如何知道训练数据是否有内置偏差或者算法是基于错误的数据做出决定的这些数据已经被公开了?仅仅通过观察少数几个例子就可以做出实际的决定,这种不确定性使得这一问题更加复杂
需要制定规章以防止滥用:如果没有得到适当的管制,人们对滥用GPT-3提出了一些非常合理的关切。人工智能社区如何能够提出禁止滥用的法规,将在很大程度上决定该模式如何在对负责任的人工智能有更高意识的组织中被接受。
总之GPT-3虽然是一个很强大的模型,但是他并没有能够像CNN在CV的地位那样为NLP提供了一个不可替代的方案。