深入理解深度学习——GPT(Generative Pre-Trained Transformer):GPT-2与Zero-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


N-shot Learning

在介绍GPT的第二代模型GPT-2之前,先来介绍机器学习中的三个概念:Zero-shot Learning(零样本学习)、One-shot Learning(单样本学习)和Few-shot Learning(少样本学习)。深度学习技术的迅速发展离不开大量高质量的数据,但在很多实际应用场景中,获取大量的高质量数据非常困难,所以模型能从少量样本中学习规律并具备推理能力是至关重要的。人类具有极其良好的小样本学习能力,能从少量数据中提炼出抽象概念并推理应用,这也是机器学习未来最主要的发展方向,这个研究方向就是N-shot Learning,其中字母N表示样本数量较少。具体而言,N-shot Learning又分为Zero-shot Learning、One-shot Learning和Few-shot Learning,三者所使用的样本量依次递增。

Zero-shot Learning是指在没有任何训练样本进行微调训练的情况下,预训练语言模型就可以完成特定的任务。用一个形象的例子解释:爸爸拿了一堆动物卡片教小维认识卡片中的动物,小维拿起一张画着马的卡片,爸爸告诉他,这就是马。之后,小维又拿起了画着老虎的卡片,爸爸告诉他:“看,这种身上有条纹的动物就是老虎。”爸爸拿起了画有熊猫的卡片,对小维说:“你看熊猫是黑白色的。”然后,爸爸给小维安排了一个任务,让他在卡片里找一种他从没见过的动物——斑马,并告诉小维有关于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑白色的。”最后,小维根据爸爸的提示,找到了画有斑马的卡片。One-shot Learning是指在仅有一个训练样本进行微调训练的情况下,预训练语言模型就可以完成特定的任务。用一个形象的例子解释:爸爸拿了一张柴犬的卡片给小维,告诉他:“这是柴犬,是犬类的一种。”然后爸爸给了小维三张卡片,卡片上分别画有橘猫、东北虎和金毛,让小维指出哪张卡片上的动物属于犬类,小维根据柴犬的特征,指向画有金毛的卡片。Few-shot Learning是指在仅有少量训练样本进行微调训练的情况下,预训练语言模型就可以完成特定的任务。同样用一个形象的例子解释:爸爸拿了五张分别画有柴犬、柯基、边牧、哈士奇和阿拉斯加的卡片,告诉小维,这些都属于犬类,然后给了小维三张卡片,分别画有橘猫、东北虎和金毛,让小维指出哪张卡片上的动物属于犬类,小维根据已有的五张犬类卡片的特征,指向画有金毛的卡片。近年来,面向N-shot Learning的研究发展极为迅速,出现了基于度量的元学习、图网络等方法。本文和后续的文章就借助Zero-shot Learn-ing、One-shot Learning、Few-shot Learning的概念来呈现GPT系列模型的一些特性。

GPT-2的核心思想

GPT-2的核心思想并不是通过二阶段训练模式(预训练+微调)获得特定自然语言处理任务中更好的性能,而是彻底放弃了微调阶段,仅通过大规模多领域的数据预训练,让模型在Zero-shot Learning的设置下自己学会解决多任务的问题。与之相对的是,在特定领域进行监督微调得到的专家模型并不具备多任务场景下的普适性。GPT-2的惊艳之处在于,它展示了语言模型在Zero-shot Learning设置下依然能够很好地执行各种任务的能力与潜力,证明了自然语言处理领域通用模型的可能性。GPT-2在多个特定领域的语言建模任务(给定词序列,预测下一个词)上均超越了当前最佳的模型的性能,而在此之前,这些任务的最佳表现均来自特定领域数据集上微调训练得到的专家模型。GPT-2并没有使用任务提供的特定领域的训练集进行训练甚至微调,而是直接在这些任务的测试集上进行评估。让人惊讶的是,GPT-2在这些语言建模任务上的表现优于以往的专家模型的表现,在某些任务上的性能提升非常显著。

在问答、阅读理解及自动摘要等具有不同输入和输出格式的语言任务中,GPT-2直接采用与GPT一致的输入数据转换方式,得到了令人惊艳的结果。虽然性能无法与专家模型相比,但是从论文给出的模型参数与任务性能趋势图来看,现有的GPT-2模型存在巨大的上升空间。如下图所示,从左至右分别是GPT-2在Zero-shot Learning设置下在阅读理解、机器翻译、摘要生成及开放式问答这4个任务上的表现。虽然GPT-2在Zero-shot Learning设置下的表现远不如SOTA模型,但基本超越了简单模型。除了摘要生成任务,GPT-2在其余三个任务上都表现出了性能随模型规模的增大而提升的趋势,且提升十分明显。这意味着若继续扩大GPT-2的规模,其性能还能提升。
在Zero-shot Learning设置下,GPT-2在4个任务上的表现

GPT-2模型结构

与第一代GPT模型相比,GPT-2在模型结构上的改动极小。在复用GPT的基础上,GPT-2做了以下修改:

  • LN层被放置在Self-Attention层和Feed Forward层前,而不是像原来那样后置
  • 在最后一层Transformer Block后新增LN层
  • 修改初始化的残差层权重,缩放为原来的 1 N \frac{1}{\sqrt{N}} N 1。其中, N N N是残差层的数量
  • 特征向量维数从768扩大到1600,词表扩大到50257
  • Transformer Block的层数从12扩大到48。GPT-2有4个不同大小的模型,它们的参数设置如下表所示
总参数量层数特征向量维数
117M12768
345M241024
762M361280
1542M481600

其中最小的模型其实就是第一代GPT,参数量也达到了1.17亿;而参数量高达15亿的最大模型,一般被称为GPT-2。模型扩大了10多倍,意味着需要增加足够的数据量,否则会出现欠拟合现象。第一代GPT使用的训练语料是BookCorpus数据集,包含超过7000本未出版的书籍。GPT-2使用的训练语料是从800多万个网页中爬取到的单语数据,数据量是第一代GPT所使用数据量的10多倍,而来自众多网页的语料,涵盖了各个领域、各种格式的文本信息,在一定程度上提升了GPT-2在Zero-shot Learning设置下处理特定任务的能力。GPT-2的不俗表现,证明它是一个极其优秀的预训练语言模型,虽然OpenAI并没有给出GPT-2微调后在各下游任务中的表现,但可以预期的是,其效果一定很好,在监督微调阶段的训练方式与第一代GPT并无差别。

参考文献:
[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.

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

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

相关文章

Unity 之 使用后处理的方式实现暗角效果

Unity 之 后处理URP工程实现边角压暗效果 一,URP工程配置二,代码调用三,实现原理 一,URP工程配置 在Hierarchy界面,创建空物体 GameObject,右键选择Volume菜单下的Global Volume。 创建后的结果&#xff1…

Cannot find declaration to go to 本地环境可以跳转至该页面,但是测试环境跳转不了,记录一下

错误示例: 且前台界面点击该页面,无反应 正确示例: 问题所在: 错误示例中用了 ,虽然本地环境可以运行,但是测试环境识别不了。应该用’引起来

Cortex-M内核知识点总结

总览 Cortex内核 基础 寄存器组 程序在经过编译后,生成可执行二进制文件,如上图,是截取某个函数在flash中存储的内容 (反汇编文件)可以看到以下信息: 指令的存储地址 ,指令的二进制内容 , 指令代表的汇编类…

centos版本的EDA虚拟机搭建3

文章目录 0、参考博客1、配置虚拟机与主机共享文件夹。2、安装unrar和rar3、EDA软件正式安装4、gtkwave与iverilog安装5、安装vscode6、安装wine软件7、notepad安装 0、参考博客 1、CentOS 7 下 rar unrar的安装 1、配置虚拟机与主机共享文件夹。 **前提,虚拟机关…

GLP-1爆火2023:神药显雏形,争夺引内卷

2023年过半,如果要从创新药角度做一份总结,什么赛道、哪类药物会是“当红炸子鸡”?答案一定是GLP-1类药物。 原本用于治疗二型糖尿病的药物,在国内社交媒体上,关于司美格鲁肽的减肥奇效,甚至引发了一股抢药…

css对盒模型的理解

面试碰到的一个问题,记录一下 ’ CSS3中的盒模型有以下两种:标准盒子模型、IE盒子模型 盒模型都是由四个部分组成的: 分别是margin、border、padding和content。 标准盒模型和IE盒模型的区别在于设置width和height时,所对应的范围不同&#…

谷歌Play应用商店下架具有内置自行下载APK能力的应用

近日有程序员在V2EX论坛发帖表示自己用开源框架uni-app开发的App被 Google Play下架,而根据这位网友的说法,下架原因疑似是uni-app自带的SDK包含违反Google Play政策的“内置自行下载APK能力”代码及广告相应的代码。 据悉,uni-app是一个使用…

基于vue+Element Table 表格的封装

项目场景&#xff1a; 项目场景&#xff1a;需要频繁使用列表进行呈现数据&#xff0c;不可能每次都写一个表格&#xff0c;可以将表格封装为一个组件&#xff0c;在需要使用时可以直接调用。 效果展示&#xff1a; 项目结构&#xff1a; 具体实现&#xff1a; Table.vue <…

PHP 设备管理系统 mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 设备管理系统 是一套完善的WEB设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 视频演示 PHP 设备管理系统 mysql数据库web结构apache 代码下载 https://download.csd…

NLP入门:word2vec self-attention transformer diffusion的技术演变

这一段时间大模型的相关进展如火如荼&#xff0c;吸引了很多人的目光&#xff1b;本文从nlp领域入门的角度来总结相关的技术路线演变路线。 1、introduction 自然语言处理&#xff08;Natural Language Processing&#xff09;&#xff0c;简称NLP&#xff0c;是通过统计学、…

预约直播 | 展心展力MetaApp:基于DeepRec的稀疏模型训练实践

MetaApp-推荐广告研发部&#xff0c;主要负责 MetaApp 拳头产品 233 乐园的首页信息流的推荐和广告系统&#xff0c;是比较传统的推广搜组。本次议题介绍了 MetaApp-推荐广告研发部 从传统的TensorFlow&#xff08;cpu&#xff09;自研分布式ps方案&#xff0c;逐步迁移到使用…

二进制搭建Kubernetes集群(三)——部署多master

本文将完成多master集群的部署&#xff0c;即部署master02&#xff0c;以及nginx负载均衡、keepalived高可用 多master集群架构图&#xff1a; 架构说明&#xff1a; node节点的kubelet只能对接一个master节点的apiserver&#xff0c;不可能同时对接多个master节点的apiserver…