深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-3与Few-shot Learning

分类目录:《深入理解深度学习》总目录
相关文章:
· GPT(Generative Pre-Trained Transformer):基础知识
· GPT(Generative Pre-Trained Transformer):在不同任务中使用GPT
· GPT(Generative Pre-Trained Transformer):GPT-2与Zero-shot Learning
· GPT(Generative Pre-Trained Transformer):GPT-3与Few-shot Learning


GPT-3曾经是最大、最让人惊艳也是最具争议的预训练语言模型。介绍GPT-3的论文长达72页,包括模型设计思路、理论推导、实验结果和实验设计等内容。GPT-3的模型实在过于庞大,参数量达到1750亿,即使开源,也因为过大的模型和算力需求,无法作为个人使用的预训练语言模型进行部署。

与文章《深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-2与Zero-shot Learning》中介绍的GPT-2在Zero-shot Learning设置下的惊喜表现相比,GPT-3在Few-shot Learning设置下的性能足以震惊所有人。在自然语言处理下游任务性能评测中,GPT-2在Zero-shot Learning设置下的性能表现远不如SOTA模型,而GPT-3在Few-shot Learning设置下的性能表现与当时的SOTA模型持平,甚至超越了SOTA模型。下图所示的是GPT-3在少量样本下的机器翻译使用范例。下图右侧是普通模型微调的过程,模型通过大量训练语料进行训练,使用特定任务数据进行梯度迭代更新,训练至收敛后的模型才具备良好的翻译能力。而下图左侧是GPT-3在N-shot Learning设置下的学习示例,在Zero-shot Learning设置下,只需要给出任务描述,GPT-3就能实现翻译;在One-shot Learning设置下,除了要给出任务描述,还需要给出一个翻译样本,GPT-3才可以实现翻译;在Few-shot Learning设置下,除了要给出任务描述,还需要给出更多的训练数据(依旧是少量样本,远少于微调过程所需的训练数据,GPT-3却可以实现更优质的翻译)。通常,给出的样本数据越多,GPT-3在指定任务上的表现就越好。不仅如此,若在同一个任务上具有同样的表现,GPT-3所需的微调训练数据远少于SOTA模型。
GPT-3在少量样本下的机器翻译使用范例
GPT-3在许多自然语言处理数据集上都有出色的表现,包括问答及文本填空等常见的自然语言处理任务。GPT-3的文本生成能力足以达到以假乱真的境界,

看词造句

给出一个新单词及其释义,使用新单词造句。这是小学生学新词时常遇到的任务,通过造句可以判断学生是否掌握了词的真正含义。论文Language Models are Few-shot Learners给出了以下示例:

A “Burringo” is a car with very fast acceleration. An example of a sentence that uses the word Burringo is: In our garage we have a Burringo that my father drives to work every day.
GPT-3接收的输入原文:“Burringo”是一款加速很猛的车,用Burringo造句。
GPT-3给出的造句结果:我家车库有一台Burringo,父亲每天开着它去上班。

虽然没能体现加速很快的特点,但是GPT-3准确地把握了“Burringo”一词最主要的特性,即它代表车的意思。

下面通过虚构一个动词词性的新单词,看看GPT-3能否很好地把握新单词的含义:

To “screeg” something is to swing a sword at it. An example of a sentence that uses the word screeg is: We screeghed at each other for several minutes and then we went outside and ate ice cream.
GPT-3接收的输入原文:“screeg”指的是击剑,用screeg造句。
GPT-3给出的造句结果:我们击了一会儿剑,然后出去吃了冰淇淋。

对于动词,GPT-3也把握得很好,句子十分流畅。

语法纠错

GPT-3不仅能凭空生成文本,还可以给句子纠错。给出一句带语法错误的句子,让GPT-3修改:

Poor English input: The patient was died.
Good English output: The patient died.

原句的动词使用错误,多了一个was,GPT-3自动删除了该词,将其修改成语法正确、语义通顺的句子。再来看一个更难的例子:

Poor English input: Today I have went to the store to buys some many bottle of water.
Good English output:Today I went to the store to buy some bottles of water.

这里原句有两类错误:第一类是时态错误,GPT-3删除了句子中的have;第二类是单复数的错误,通过将buys改成buy、将some many bottle改为some bottles来纠正。GPT-3的纠错效果与基于专家规则的自动纠错系统相当,在句式复杂、时态混乱的语境下甚至可能有更好的表现。

除了原始论文中的例子,在OpenAI开放限量的GPT-3接口后,网友也纷纷尝试了其他有趣的任务,如让GPT-3写代码、设计网页UI,甚至有网友教会了GPT-3下棋、生成财务报表。而GPT-3在各个任务中均有可圈可点的表现,大大超乎了人们的想象,配合其巨大的模型和高昂的训练费用,GPT-3可谓是当时生成式预训练语言模型的天花板模型。

GPT-3的争议

树大招风的GPT-3在博得一片赞美的同时,也受到了来自国内外众多学者的质疑,他们理性地分析了GPT-3的缺陷。下文整理并总结了部分公认的观点,以便读者更全面地了解GPT-3。

  • GPT-3不具备真正的逻辑推理能力:在问答任务中,若GPT-3收到的问题是“太阳有几只眼睛”,GPT-3会回答“太阳有一只眼睛”,即GPT-3并不会判断问题是否有意义,其回答是建立在大规模的语料训练基础上的,而不是经过逻辑推导得出的,无法给出超出训练语料范围的答案。
  • GPT-3存在生成不良内容的风险:在生成文本时,由于训练语料来自互联网,含有种族歧视或性别歧视的语料无法被完全过滤,导致GPT-3生成的文本有一定概率会表达歧视和偏见,甚至在道德评判和专业法律方面也会犯错。
  • GPT-3在高度程序化问题上表现不佳:GPT-3在STEM学科(Science、Technology、Engineering、Mathematics)上的问答表现较差,这是因为GPT-3更容易获得并记住陈述性知识,而不是理解知识。纽约大学副教授、游戏AI研究者Julian Togelius这样评价GPT-3:它就像一名没有认真复习的聪明学生,试图胡言乱语,以期在考试中蒙混过关。它会将一些已知事实和谎言进行串联,使其看起来像是流畅的叙述。

在GPT-3的输出可信度遭受质疑的同时,其庞大的参数量和高昂的训练费用也使它不能被广泛应用。即使如此,GPT-3曾经是最大、最好的预训练语言模型,它真正的意义在于揭开了通用人工智能面纱的一角。深度学习之父Geoffrey Hinton对GPT-3的评价如下:如果以GPT-3的优异性能推算未来,那么生命及世界万物只不过是4.398万亿个参数。随着深度学习的发展,若出现取代Transformer的模型结构,或者模型参数量级再扩大1000倍,也许真会出现能学会逻辑推理、学会思考的通用人工智能模型。

参考文献:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.
[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[4] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[5] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[6] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[7] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

对英雄联盟英雄属性数据的预处理及相似度矩阵计算

目录 一、引言 二、任务1 1、填充缺失值 2、用中位数填充“生命值”属性列缺失值 3、 用均值填充“生命值”属性列缺失值 三、任务2 注:英雄联盟英雄属性数据资源可在博客资源中自行获取。 一、引言 英雄联盟作为一款古早的刀塔游戏,可谓之刀塔游…

[golang 微服务] 7. go-micro框架介绍,go-micro脚手架,go-micro结合consul搭建微服务案例

一.go-micro框架 前言 上一节讲解了 GRPC微服务集群 Consul集群 grpc-consul-resolver相关的案例,知道了微服务之间通信采用的 通信协议,如何实现 服务的注册和发现,搭建 服务管理集群,以及服务与服务之间的 RPC通信方式,具体的内容包括: pro…

聊聊微服务到底该如何划分

背景 现在动不动就是微服务架构,但是微服务划分的合理与否会极大的影响开发过程中的复杂度,划分的重要性不言而喻,但是在微服务划分这条路上并没有银弹,有的说DDD可以解决微服务的划分问题,吕哥想说的是那只是理论上的…

端午作业1

只要文件存在,就会有唯一对应的inode号,且相应的会存在一个struct inode结构体。在应用层通过open()打开一个设备文件,会对应产生一个inode号,通过inode号可以找到文件的inode结构体 根据inode结构体中文件…

JMU20 软件工程经济学 复习总结

文章目录 碎碎念0. 基准收益率 i1. 现金流量图2. 净现值 NPV,内部收益率 IRR3. 单利,复利计算4. 等额年金NAV5. 动态回收期 P t ′ P_t Pt′​6. 固定资产折旧 [书P44]7. 增值税8. 软件行业增值税的即征即退9. 利息备付率 ICR,偿债备付率 DSC…

C语言学习(二十六)---指针练习题(二)

在上节的内容中,我们进一步学习了有关指针的内容,并做了一些关于指针的题目,今天我们将继续练习一些指针的题目,以便大家更好的理解和掌握指针的知识,好了,话不多说,开整!&#xff0…

GreasyFork+Github

GreasyForkGithub 好长时间没用 GreasyFork 了,最近在刷 Spring Boot 的各种知识点,其中很大时间都在学习 baeldung.com 这个站点。不知道是因为最近刷的勤了还是怎么的,这个网站经常会弹出一个“让我关闭广告阻拦插件”的提示框&#xff0c…

MongoDB集群管理(三)

MongoDB集群管理 集群介绍 为什么使用集群 随着业务数据和并发量的增加,若只使用一台MongoDB服务器,存在着断电和数据风险的问题,故采用Mongodb复制集的方式,来提高项目的高可用、安全性等性能。 MongoDB复制是将数据同步到多个…

超简单 display:flex教学

display 弹性盒子解释 Flex是Flexible Box的缩写,意为"弹性布局”,用来为盒状模型提供最大的灵活性。 它的作用: 它能够更加高效方便的控制元素的对齐、排列。 可以自动计算布局内元素的尺寸,无论这个元素的尺寸是固定的还是…

学习mysql

Mysql SQL语言的规则与规范SQL大小写规范注释数据导入指令 基本的SELECT语句SELECT.列的别名去掉重复行空值参与运算着重号(当有表名是关键字时)显示表结构where 运算符算术运算符 比较运算符号性运算符非符号形运算符空运算符非空运算符最小值运算符最大值运算符BETWEEN AND运…

Java的理论知识部分

文章目录 前言 一、Java的发展 1.1、Java的出现 1.2、Java官方网址 1.3、Java的平台 1.4、Java各版本新加的内容 1.5、java特点 1.6、Java的三种运行机制 1.7、Java的编译与运行 1.8、补充内容——华为鲲鹏jdk以及鲲鹏计算 二、面向对象程序编程 2.1、对象与类 2.2、Ja…

软考:软件工程:面向对象技术与UML,时序图,用例图,类对象,封装,继承,多态

软考:软件工程: 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准备的 (1&#…

Web3 将 MetaMask添加入谷歌浏览器 扩展程序中

Web3到现在理论这段是说的有点太多了 那么 我们先来看个东西 叫 MetaMask 这个在我们项目开发过程中需要使用 MetaMask是一个开源的以太坊的一个钱包 那么 钱包肯定就是用来管理数据资产的 MetaMask 是以一个浏览器插件形式存在的 它可以直接连接到以太坊的网络中来管理我们…

【软件工程】软件工程期末考试试卷

瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求分析、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和( C)。 A、详细计划 B、可行性分析 C、 运行阶段 D、 测试与排…

【运维】服务器系统安装 -- 服务器版

目录 一、环境 二、ubuntu 三、启动u盘制作 Stage 1:下载balena,制作U盘启动工具 Stage 2:下载Ubuntu 系统镜像(参考上一节:Ubuntu 22.04.2 LTS ) Stage 3:将镜像写入到U盘 四、设置开启…

【Visual Studio】Qt 的实时绘图曲线功能,使用 C++ 语言,配合 Qt 开发串口通信界面

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。 战斗背景:做了个串口接收界面,用来接收传输过来的信号。但是光用数字显示太单调,需要用图线显示出来。 战略目标&#x…

腾讯云服务器镜像市场快速搭建WordPress博客网站教程

通过腾讯云服务器的镜像市场搭建WordPress网站非常简单,不需要手动配置WP所需的Web环境,一键即可安装WordPress博客,腾讯云百科使用腾讯云服务器通过镜像市场的WordPress镜像搭建WP网站教程: 目录 腾讯云服务器通过市场镜像安装…

计算机网络和Linux网络

计算机网络和Linux网络 计算机网络概论 什么是计算机网络 计算机网络(结构上) 由节点(主机、网络交换设备设备)、边(通信设备)、协议构成协议:对等层的实体在通讯过程中应该遵守的规则的集合&…

上位机与两台PLC之间无线以太网通信

本文以组态王和2台三菱FX5u PLC为例,介绍组态王与多台 PLC的无线以太网通信实现过程。在本方案中采用了三菱PLC无线通讯终端DTD419MB,作为实现无线通讯的硬件设备。 在这一无线以太网通讯系统的搭建中,用户无需更改网络参数和原有程序&#…

Docker-compose的使用

目录 Docker-compose 简介 docker-compose的安装 docker-compose.yaml文件说明 compose的常用命令 总结 Docker-compose 简介 Docker-compose 是用于定义和运行多容器的 Docker 应用程序的工具。可以使用YAML文件来配置应用程序的服务。(通俗讲是可以通过yml文…