从GPT到chatGPT(三):GPT3(一)

#GPT3

文章目录

    • 前言
    • 正文
      • 摘要
      • 介绍
      • 方法
        • 模型结构
        • 训练数据集
        • 训练过程
        • 评估
    • 小结

前言

OpenAI在放出GPT2后,并没有引起业界太大的影响和关注,究其原因,并不是zero-shot这种想法不够吸引人,而是GPT2表现出来的效果依然差强人意,仍然属于“人工智障”的阶段,然而OpenAI认为他们的方向没有问题,不在特定领域上做太多的微调,甚至不做微调(这样就能避免1.人工标注数据和2.重新训练模型)才是大规模语言模型的未来,因此在不久之后他们又提出了GPT-3,这也就是chatGPT的前生了。

正文

摘要

最近的工作表明,通过对大量文本进行预训练,然后对特定任务进行微调,在许多NLP任务和基准方面取得了实质性进展。但这种方法仍然需要对数千或数万个示例的特定于任务的标注数据集进行微调。相比之下,人类通常只需要几个例子或简单的指令就能完成一项新的语言任务——这是当前NLP系统仍难以做到的。在这里,我们证明了扩展语言模型能大大提高了任务不可知、few-shot的性能,有时甚至达到了与现有最先进的微调方法相比的竞争力。
具体来说,我们训练GPT-3,这是一个具有1750亿个参数的自回归语言模型,比之前的任何非稀疏语言模型大至少10倍,并在few-shot设置下测试其性能。对于所有任务,GPT-3都是在没有任何梯度更新或微调的情况下应用的,仅通过与模型的文本交互来指定任务和少数镜头演示。GPT-3在许多NLP数据集上都有很强的性能,包括翻译、问题解答和完形填空任务,以及一些需要动态推理或领域适应的任务,如解译单词、在句子中使用一个新单词或执行三位数算术。同时,我们还确定了GPT-3的few-shot学习仍然困难的一些数据集,以及GPT-3面临与大型网络语料库上的训练相关的方法问题的一些数据集中。最后,我们发现GPT-3可以生成新闻文章样本,人类评估人员很难将其与人类撰写的文章区分开来。我们讨论了这一发现和GPT-3的更广泛的社会影响。

介绍

如上面提到的,目前主流的语言模型都是采用的pre-train+fine-tune的模式,虽然以BERT为首的这类模型已经在众多NLP任务中取得了出色甚至是sota的效果,但这种模式仍然存在许多问题和限制:

  1. 在fine-tune阶段需要大量的标注数据集,很多时候这是难以获得的
  2. 我们预训练模型的时候,为了使用更多更广的预训练数据,往往会把模型设计得更大。但在预训练阶段使用的数据分布往往十分“狭窄”。大模型和“狭窄”数据集之间显然容易过拟合,使得fine-tune过后的大模型泛化能力很差。
  3. 对于大多数语言任务,人类并不需要很多的“监督数据”就能学习,比如“here are two examples of people acting brave; please give a third example of bravery”通常就足够一个人类理解并完成该任务。除了指出我们当前NLP技术在概念上的局限性之外,这种适应性还具有实际优势——它允许人类无缝地混合在一起或在许多任务和技能之间切换,例如在长时间对话中执行加法。为了广泛使用,我们希望有一天我们的NLP系统具有相同的流动性和通用性。

解决这些问题的一个潜在途径是meta-learning——在语言模型的背景下,这意味着该模型在训练时培养了广泛的技能和模式识别能力,然后在推理时使用这些能力来快速适应或识别期望的任务(如图1所示)。最近的工作试图通过我们所称的“in-context learning”来实现这一点,使用预先训练的语言模型的文本输入作为任务规范的形式:该模型以自然语言指令和/或任务的一些演示为条件,然后通过预测下一步将发生什么来完成任务。尽管它已经显示出一些初步的希望,但这种方法仍然取得了远不如微调的结果——例如[RWC+19]在自然问题上仅取得了4%的成绩,甚至其55 F1 CoQa的成绩现在也落后于最先进水平35分以上。元学习显然需要大幅改进,才能成为解决语言任务的实用方法。

语言建模的另一个最新趋势可能提供了前进的方向。近年来,变压器语言模型的容量大幅增加,从1亿个参数[RNSS18],到3亿个参数[DCLT18],到15亿个参数/RWC+19],到80亿个参数[SSP+19],110亿个参数RSR+19],最后是170亿个参数[Tur20]。每一次增加都带来了文本合成和/或下游NLP任务的改进,有证据表明,log loss与许多下游任务密切相关,随着规模的增长,log loss呈现平稳的改善趋势[KMH+20]。由于in-context learning在模型的参数范围内吸收许多技能和任务,因此,in-context learning能力可能会随着规模的增长而表现出同样强大的增益。

在本文中,我们通过训练一个1750亿参数的自回归语言模型(我们称之为GPT-3)并测量其in-context learning能力来检验这一假设。具体来说,我们在20多个NLP数据集上评估GPT-3,以及几个不太可能直接包含在训练集中的新任务(验证模型的快速适应性)。对于每项任务,我们在3个条件下评估GPT-3:

  1. “few-shot learning”,或在in-context learning中,我们允许尽可能多的演示,以适应模型的上下文窗口(通常为10到100);
  2. “one-shot learning”(仅允许一次演示);
  3. “zero-shot learning”,其中不允许演示,只向模型提供自然语言指令。

GPT-3原则上也可以在传统的微调设置中进行评估,但我们将这留给未来的工作。

图1说明了我们研究的条件,并显示了需要模型从单词中删除多余符号的简单任务的少量学习。随着自然语言任务描述的增加以及模型上下文中的示例数量的增加,模型性能得到了改善。few-shot学习也随着模型大小的增加而显著提高。尽管本案例中的结果特别引人注目,但模型大小和上下文中示例数量的总体趋势适用于我们研究的大多数任务。再次强调,这些“学习”曲线不涉及梯度更新或微调,只是增加了作为条件的演示次数。
在这里插入图片描述

图1

总体而言,在NLP任务中,GPT-3在zero-shot和one-shot设置中取得了令人满意的结果,在few-shot设置中与sota模型相比具有竞争力,甚至有时超越当前fine-tune的sota模型。

方法

我们的基本预训练方法,包括模型、数据和训练,与GPT2中所述的过程类似,模型大小、数据集大小和多样性以及训练长度的扩展相对简单。但在这项工作中,我们系统地探索了不同设置。因此,我们通过明确定义和对比我们将要评估GPT-3或原则上可以评估GPT-3的不同设置来开始本节。这些设置可以被视为取决于他们倾向于依赖多少特定任务的数据。具体来说,我们有四种设置:
1.Fine-Tuning;2.Few-Shot; 3.One-Shot; 4.Zero-Shot;
我们用一幅图就可以很形象地说明这四种设置的主要特点和具体使用方法:
在这里插入图片描述

图2

模型结构

我们使用与GPT-2相同的模型和架构,除了alternating dense and locally banded sparse attention patterns in the layers of the transformer,,类似于Sparse Transformer[CGRS19]。为了研究ML性能对模型大小的依赖性,我们训练了8种不同大小的模型,从1.25亿个参数到1750亿个参数的三个数量级,最后一个是我们称为GPT-3的模型。先前的工作[KMH+20]表明,如果有足够的训练数据,验证损失的缩放应该近似于平滑幂律;这些不同大小的训练模型允许我们测试验证损失和下游语言任务的假设。
下表是不同模型大小的参数,所有模型的文本窗口 n c t x = 2048 n_{ctx}=2048 nctx=2048
在这里插入图片描述

表1

训练数据集

语言模型的数据集迅速扩展,最终形成了近万亿个单词的Common Crawl数据集2[RSR+19]。这种数据集足以在一个epoch下训练我们最大的模型。然而,未过滤或轻度过滤的Common Crawl版本的质量往往低于更精确的数据集。因此,我们采取了3个步骤来提高数据集的平均质量:(1)我们基于一系列高质量参考语料库的相似性对CommonCrawl语料过滤;(2) 我们在文档级别、数据集内部和数据集之间执行了模糊重复数据消除,以防止冗余,并保持我们所持验证集的完整性,作为过度拟合的准确度量(3)我们还将已知的高质量参考语料库添加到训练组合中,以增强CommonCrawl并增加其多样性。
表2显示了我们在训练中使用的数据集的最终混合。注意,在训练期间,数据集的采样不与其大小成比例,而是我们认为质量更高的数据集采样频率更高,因此CommonCrawl和Books2数据集在训练期间采样频率少于1,但其他数据集采样频率为2-3次。这是以少量的过拟合,以换取更高质量的训练数据。
在这里插入图片描述

表2

训练过程

如[KMH+20,MKAT18]所示,较大的模型通常可以使用较大的batch-size,但需要较小的学习率。我们在训练期间测量梯度噪声等级,并使用它来指导batch-size的选择[MKAT18]。表1显示了我们使用的参数设置。为了在不耗尽内存的情况下训练更大的模型,我们混合使用了每个矩阵乘法中的模型并行性和网络各层之间的模型并行度。所有模型都在V100 GPU上进行了训练,这是微软提供的高带宽集群的一部分。附录B中描述了训练过程和超参数设置的详细信息。

评估

对于Few-shot学习,我们通过从该任务的训练集中随机抽取K个示例作为条件来评估验证集中的每个示例。对于LAMBADA和故事完形填空,没有可用的监督训练集,因此我们从验证集集中提取条件示例,并在测试集上进行评估。对于Winograd(原始版本,而非SuperGLUE版本),只有一个数据集,因此我们直接从中提取条件示例。
这里K可以是从0到模型上下文窗口允许的最大值( n c t x n_{ctx} nctx)的任何值,通常适合10到100个示例。较大的K值并不总是更好,因此当单独的开发集和测试集可用时,我们在开发集上尝试一些K值,然后在测试集上运行最佳值。对于某些任务(参见附录G),除了演示,我们还使用自然语言提示。
对不同的任务,GPT3都能够去适应。比如对于二分类任务,我们可把选项设置成有意义的名字(True False)。

小结

GPT3虽然用的模型结构和GPT2几乎一样,但是在有很多各种各样的细节,感兴趣的建议阅读原文。另外,原文中使用了大量篇幅来讲GPT3在一些典型任务上的关键结果,后续有时间的话会继续基于原文来介绍GPT3的这些关键结果。
总之,GPT3让人们认识到语言模型还具有很多的可能性,虽然离人们预想的人工智能还很遥远,但毫无疑问逐渐开始脱离人工智障的范畴,在NLP发展的道路上迈下了坚实的一步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4993.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Auto GPT 与 ChatGPT:有何区别?

人工智能正在迅速发展,即使是最熟练的人也越来越难以跟上。每隔一段时间,就会出现新的 AI 工具,在这些工具中,有些是时尚的,有些是真正有价值的。 Auto-GPT 是一种建立在 ChatGPT 技术之上的人工智能,很可…

一招鉴别真假ChatGPT,并简要介绍ChatGPT、GPT、GPT2和GPT3模型之间的区别和联系

以下内容除红色字体部分之外,其他均来源于ChatGPT自动撰写。 ChatGPT是基于GPT模型的对话生成模型,旨在通过对话模拟实现自然语言交互。它是为了改善人机对话体验而设计的,主要应用于聊天机器人、智能客服等场景。 与GPT模型相比,…

大白话chatGPT GPT的发展区别

大白话chatGPT & GPT的发展区别 从GPT名字理解chatGPTchatGPT三步曲GPT-1到GPT-4GPT-1~GPT-4的相同点GPT-1~GPT-4的区别GPT-1——pre-training fine-tune,自监督学习无监督预训练有监督微调GPT-2——zero-shot,无监督学习,多任务学习GPT…

让我看看,还有谁分不清楚GPT和Chat GTP

GPT(Generative Pre-trained Transformer)是由OpenAI推出的一种基于Transformer的自然语言处理模型,它是在大规模的无监督语言预训练下,使用有监督微调的方式来完成各种自然语言处理任务的。GPT的训练数据主要来源于互联网上的大量…

ChatGPT实现的技术原理有哪些?

ChatGPT实现的技术原理 作为一种大型语言模型,ChatGPT的技术原理主要基于人工神经网络和自然语言处理技术。 ChatGPT使用了前馈神经网络(feedforward neural network)和递归神经网络(recurrent neural network)的结合…

比尔盖茨:ChatGPT开启AI革命性技术的新时代

来源:AGI产业观察 原文来自于比尔盖茨个人博客 微软公司联合创始人比尔盖茨近日在他的个人博客中畅谈ChatGPT和生成式人工智能对教育、医疗、生产力提升、公平等等方面的影响。 他说,OpenAI发布的大语言模型ChatGPT是他一生中遇到的两项革命性技术之一。…

技术动态 | AIGC时代知识图谱技术的发展与最佳实践

转载公众号 | DataFunTalk 2023年3月18日,DataFunSummit2023:知识图谱在线峰会将如约而至。本次峰会由2位主席与3位专家团成员和6位论坛出品人精心策划而成,共包含了:统一知识表示与复杂推理、大规模知识图谱构建与更新、海量知识…

(文末送书)ChatGPT有用到知识图谱吗?它自己是这样回答的……

文末送两本书~~~ 从搜索引擎到个人助手,我们每天都在使用问答系统。问答系统必须能够访问相关的知识并进行推理。通常,知识可以隐式地编码在大型语言模型(LLMs)中,例如ChatGPT、T5 和LaMDA 等大型语言模型,…

学习知识图谱对理解ChatGPT有何作用?

ChatGPT最近很火,它能够在各种任务中产生人类类似的自然语言响应。知识图谱则可以形成了一个结构化的图谱,可以为ChatGPT的模型提供额外的语义信息,使得模型能够更好地理解和生成自然语言。有以下的帮助: 1、实体识别和链接&#…

ChatGPT有用到知识图谱吗?它自己是这样回答的(文末赠书)

从搜索引擎到个人助手,我们每天都在使用问答系统。问答系统必须能够访问相关的知识并进行推理。通常,知识可以隐式地编码在大型语言模型(LLMs)中,例如ChatGPT、T5 和LaMDA 等大型语言模型,这些模型在未结构…

从ChatGPT看知识管理及知识图谱的发展

本文转自知识管理就在夏博 一些人认为,ChatGPT的力量将消除对知识管理方法和原则的需要。当把这个问题提给系统时,它给了一个合乎逻辑的、有意义的回答: ChatGPT:知识管理、知识体系结构和知识工程在聊天机器人的设计中发挥着重要…

技术动态 | ChatGPT 下的知识图谱审视:一次关于必然影响、未来方向的讨论实录与总结...

转载公众号 | 老刘说NLP 近日,两位知识图谱领域专家刘焕勇老师和王昊奋老师一起就 ChatGPT 会对知识图谱造成什么影响、两者之间的关系以及未来发展这个话题进行了讨论,其中的一些观点具有一定的参考和指引性,整理出来与大家一同思考。 一、关…

ChatGPT生成Vue文件,用ChatGPT写代码

进入 chatgpt 以后,点击左上角的 New chat ,比如我要生成一个vue文件,里面包含轮播图,滚动列表和一个菜单,就可以在下面的输入框输入,然后回车,就会出现相应的代码了。点击代码块右上角可以直接…

老板得知我用ChatGPT写代码效率大增,给我增加了3倍工作量...

当你学会用ChatGPT写代码后... 但是... 当你老板知道你学会用ChatGPT写代码后... 这只是网上的段子,大家切莫当真 但有一点是明确的,ChatGPT或类似AI应用,确实能够帮助我们大幅提高工作效率。 前几天我就用ChatGPT来帮我写代码,只…

网上疯传的ChatGPT写代码,超级简单哇

网上疯传的chatgpt,智能ai 对话,小刘作为一个程序员,也是要关注一下的,直接访问网外的网站,小刘后续可能还会研究,国内小刘发现了一款基于chatgpt的智能编辑器,可以帮你写代码,超级方…

挑战利用ChatGPT写代码,真的能成功吗?

使用姿势 1. 由于ChatGPT的注册门槛较高,国内很多网站都是付费的或者有各种限制!我在【多御浏览器】中使用,无需注册就能免费体验ChatGPT。 2. 使用ChatGPT4 我的问题有些口水文,但是它依然能懂! 设计一个表&#xff0…

用ChatGPT写代码学物联网,10分钟模拟设备并查看数据

ChatGPT是时下火热的AI自然语言引擎,啥都知道啥都会,今天咱们就使用ChatGPT来写一段python代码,模拟一个温湿度传感器,持续的给服务器发数据,并在物联网管理软件ThingsPanel上显示数据。 我们的工作分为两个部分&…

springboot整合chatgpt,微信小程序做前端

1&#xff1a;创建springgoot项目&#xff0c;将添加chatgpt依赖 <dependency> <groupId>com.unfbx</groupId> <artifactId>chatgpt-java</artifactId> <version>1.0.12</version> …

ChatGPT对接企业微信客服

登录企业微信获取相关信息 yum -y install wget wget http://www.zhanghaobk.com:81/chatgpt/chatgpt-kf.tar.gztar xf chatgpt-kf.tar.gz 配置文件&#xff0c;填上你对应的信息 运行 nohup ./main.go & 验证成功后接入微信公众号即可 ### 效果

有人说ChatGPT信息不新?

Hello ,我是小索奇&#xff0c;今天给大家分享一个插件&#xff0c;这个插件可以通过抓取网页获得最新内容&#xff0c;它可以有效的避免ChatGPT信息过时&#xff0c;获取不到最新的信息等等 演示-这里问它一些问题&#xff1a; 现在几点了呀 可以看到时间也是很准确的&#x…