理解GPT2:无监督学习的多任务语言模型

目录

一、背景与动机

二、卖点与创新

三、几个问题

四、具体是如何做的

1、更多、优质的数据,更大的模型

2、大数据量,大模型使得zero-shot成为可能

3、使用prompt做下游任务

五、一些资料


一、背景与动机

基于 Transformer 解码器的 GPT-1 证明了在特定的自然语言理解任务 (如文档分类等) 的标注数据较少的情况下,通过充分利用好大量的无标注的数据,也能取得很强的性能。几个月之后,基于 Transformer 编码器的 BERT 性能赶超了 GPT-1。

GPT-2 希望
构建更大的数据集和模型,同时在 Zero-shot 的多任务学习场景中展示出不错的性能。

说白了还是为了解决模型泛化性问题。

GPT1 的 “pre-training + supervised finetuning” 的这一范式:

  • 虽然借助预训练这一步提升性能,但是本质上还是需要有监督的 finetuning 才能使得模型执行下游任务。
  • 需要在下游任务上面有标注的数据。当我们只有很少量的可用数据 (即 Zero-shot 的情况下) 时就不再使用了。

二、卖点与创新

Zero-shot
GPT-2
本质上还是一个语言模型
,但是不一样的是,它证明了语言模型可以在 Zero-shot 的情况下执行下游任务,也就是说,GPT-2 在做下游任务的时候可以无需任何标注的信息,也无需任何参数或架构的修改。

个人理解,GPT-2本身做的是GPT-1中的预训练,但是在一个更大的数据集上,用更大的模型通过自监督的方式学到了任务无关的特性。

三、几个问题

  • 为什么是zero-shot?
  • Zero-Shot 情况下怎么让模型做下游任务?

四、具体是如何做的

1、更多、优质的数据,更大的模型

数据:
WebText数据集,一个包含了4500万个链接的文本数据集。经过重复数据删除和一些基于启发式的清理后,它包含略多于800万个文档,总文本容量为 40GB。

模型:
GPT-2 的模型在 GPT 的基础上做了一些改进,如下:

  • Layer Normalization 移动到了每个 Sub-Block 的输入部分,在每个 Self-Attention 之后额外添加了一个 Layer Normalization,最终顺序是:LN, Self-Attention , LN。
  • 采用一种改进的初始化方法,该方法考虑了残差路径与模型深度的累积。在初始化时将 residual layers 的权重按

    的因子进行缩放,其中

    是 residual layers 的数量。
  • 字典大小设置为50257。
  • 无监督预训练可看到的上下文的 context 由512扩展为1024。
  • Batch Size 大小调整为512。

**2、

大数据量,大模型使得zero-shot成为可能。**

GPT-2 方法的核心是语言建模。

大规模无监督训练过程使得模型学习到了任务相关的信息。

在GPT-1中,第一阶段是无监督预训练过程,训练的方法是让 GPT “预测未来”。具体而言,假设我们无标记的语料库里面有一句话是

,GPT 的模型参数是 Θ ,作者设计了下面这个目标函数来最大化

:

式中,

是上下文窗口的大小。这个式子的含义是让模型看到前面

个词,然后预测下一个词是什么,再根据真实的下一个词来计算误差,并使用随机梯度下降来训练。上式的本质是希望模型能够根据前

个词更好地预测下一个词。

这个式子其实做的事情是让下式尽量大:

语言模型的这个式子可以表示为:

,也就是在给定输入的情况下,最大化已知输出的概率。

注意到,GPT 之前在做这一步的时候,是在自然的文本上面训练的。自然文本的特点是,它里面有任务相关的信息,但是呢,这个信息通常是蕴含在文本里面的,比如下面这段话 (来自 GPT-2 论文):

"I’m not the cleverest man in the world, but like they say in French:
Je ne suis pas un imbecile [I’m not a fool].
In a now-deleted post from Aug. 16, Soheil Eid, Tory candidate in the riding of Joliette, wrote in French:
“Mentez mentez, il en restera toujours quelque chose,”
which translates as,
“Lie lie and something will always remain.”
"I hate the word
‘perfume,’
" Burr says. 'It’s somewhat better in French:
‘parfum.’
If listened carefully at 29:55, a conversation can be heard between two guys in French:
“-Comment on fait pour aller de l’autre cot ́e? -Quel autre cot ́e?”
, which means
“- How do you get to the other side? - What side?”
. If this sounds like a bit of a stretch, consider this question in French:
As-tu aller au cin ́ema?,
or
Did you go to the movies?
, which literally translates as Have-you to go to movies/theater?
“Brevet Sans Garantie Du Gouvernement”
, translated to English:
“Patented without government warranty”
.

上面这段文本中,“Mentez mentez, il en restera toujours quelque chose,” 是法语句子,“Lie lie and something will always remain.” 是英文句子,而我们在无监督训练语言模型的时候,并没有告诉模型要做 translation 的任务,但是我们的文本中却有 which translates as 这样的字样。换句话说,这一与
具体下游任务任务相关的信息
,竟然可以通过
具体下游任务任务无关的无监督预训练过程
学习到。

3、使用prompt做下游任务

因为在 Zero-Shot 的任务设置下,没有这些带有开始符和结束符的文本给模型训练了,所以这时候做下游任务的时候也就不适合再给模型看开始符和结束符了。

大规模无监督训练过程学习到了任务相关的信息
。作者认为:比如下游任务是
英文翻译法文
,那么如果模型在无监督预训练的过程中看过了引用的那一大段的文字 (这句话
“Mentez mentez, il en restera toujours quelque chose,”
which translates as,
“Lie lie and something will always remain.”
是训练的语料),那么模型就能够学会 (translate to french, english text, french text) 这样的下游任务。

也就是说,原则上,通过大量的语料训练,语言建模能够学习到一系列下游任务,而不需要明确的监督信息。为什么可以这么讲呢?因为作者认为:下游任务 (有监督训练) 可以视为预训练过程 (无监督训练) 的一个子集。无监督目标的全局最优解也是有监督训练的全局最优解。当预训练规模足够大时,把无监督的任务训练好了,有监督的下游任务即不再需要额外训练,就是所谓的 “Zero-Shot”。

所以下面的问题就变成了:在实践中,我们如何能够优化无监督预训练过程以达到收敛。初步实验证实,足够大的语言模型能够在无监督的预训练过程之后做下游任务,但学习速度比显式监督方法慢得多。

那么最后一个问题就是具体怎么去做下游任务呢?以英文翻译法文为例,我们需要在下游任务时预先告诉模型 “translate English to French”,即给模型一个提示 (Prompt)。

五、一些资料

[LLM 系列超详细解读 (二):GPT-2:GPT 在零样本多任务学习的探索 - 知乎

本系列已授权极市平台,未经允许不得二次转载,如有需要请私信作者。专栏目录科技猛兽:多模态大模型超详细解读 (目录)本文目录1 GPT-2:GPT 在零样本多任务学习的探索 (来自 OpenAI) 1.1 背景和动机 1.2 大规模无…


https://zhuanlan.zhihu.com/p/616975731](/ “LLM 系列超详细解读 (二):GPT-2:GPT 在零样本多任务学习的探索 - 知乎”)

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

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

相关文章

容器技术-docker4

一、docker资源限制 在使用 docker 运行容器时,一台主机上可能会运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU、内存和磁盘资源。如果不对容器使用的资源进行限制,那么容器之间会互相影响,小的来说…

【Spring】DAO 和 Repository 的区别

DAO 和 Repository 的区别 1.概述2.DAO 模式2.1 User2.2 UserDao2.3 UserDaoImpl 3.Repository 模式3.1 UserRepository3.2 UserRepositoryImpl 4.具有多个 DAO 的 Repository 模式4.1 Tweet4.2 TweetDao 和 TweetDaoImpl4.3 增强 User 域4.4 UserRepositoryImpl 5.比较两种模式…

【机器学习】机器学习的重要技术——生成对抗网络:理论、算法与实践

引言 生成对抗网络(Generative Adversarial Networks, GANs)由Ian Goodfellow等人在2014年提出,通过生成器和判别器两个神经网络的对抗训练,成功实现了高质量数据的生成。GANs在图像生成、数据增强、风格迁移等领域取得了显著成果…

详细分析Springmvc中的@ModelAttribute基本知识(附Demo)

目录 前言1. 注解用法1.1 方法参数1.2 方法1.3 类 2. 注解场景2.1 表单参数2.2 AJAX请求2.3 文件上传 3. 实战4. 总结 前言 将请求参数绑定到模型对象上,或者在请求处理之前添加模型属性 可以在方法参数、方法或者类上使用 一般适用这几种场景: 表单…

ros笔记01--初次体验ros2

ros笔记01--初次体验ros2 介绍安装ros2测试验证ros2说明 介绍 机器人操作系统(ROS)是一组用于构建机器人应用程序的软件库和工具。从驱动程序和最先进的算法到强大的开发者工具,ROS拥有我们下一个机器人项目所需的开源工具。 当前ros已经应用到各类机器人项目开发中…

【Matlab 六自由度机器人】机器人动力学之推导拉格朗日方程(附MATLAB机器人动力学拉格朗日方程推导代码)

【Matlab 六自由度机器人】机器人动力学概述 近期更新前言正文一、拉格朗日方程的推导1. 单自由度系统2. 单连杆机械臂系统3. 双连杆机械臂系统 二、MATLAB实例推导1. 机器人模型的建立2. 动力学代码 总结参考文献 近期更新 【汇总】 【Matlab 六自由度机器人】系列文章汇总 …

Elasticsearch 第四期:搜索和过滤

序 2024年4月,小组计算建设标签平台,使用ES等工具建了一个demo,由于领导变动关系,项目基本夭折。其实这两年也陆陆续续接触和使用过ES,两年前也看过ES的官网,当时刚毕业半年多,由于历史局限性导…

大数据开发如何管理项目

在面试的时候总是 会问起项目,那在大数据开发的实际工作中,如何做好一个项目呢? 目录 1. 需求分析与项目规划1.1 需求收集与梳理1.2 可行性分析1.3 项目章程与计划 2. 数据准备与处理2.1 数据源接入2.2 数据仓库建设2.3 数据质量管理 3. 系统…

ARCGIS添加在线地图

地图服务地址:http://map.geoq.cn/ArcGIS/rest/services 具体方法: 结果展示:

Python逻辑控制语句 之 循环语句--for循环

1.for 的介绍 for 循环 也称为是 for 遍历, 也可以做指定次数的循环遍历: 是从容器中将数据逐个取出的过程.容器: 字符串/列表/元组/字典 2.for 的语法 (1)for 循环遍历字符串 for 变量 in 字符串: 重复执⾏的代码 字符串中存在多少个字符, 代码就执行…

flink的窗口

目录 窗口分类 1.按照驱动类型分类 1. 时间窗口(Time window) 2.计数窗口(Count window) 2.按照窗口分配数据的规则分类 窗口API分类 API调用 窗口分配器器: 窗口函数 增量聚合函数: 全窗口函数…

网络编程常见问题

1、TCP状态迁移图 2、TCP三次握手过程 2.1、握手流程 1、TCP服务器进程先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态; 2、TCP客户进程也是先创建传输控制块TCB&#xff…

Echarts地图实现:杭州市困难人数分布【动画滚动播放】

Echarts地图实现:杭州市困难人数分布 实现功能 杭州市地区以及散点图分布结合的形式数据展示动画轮播可进去杭州市下级地区可返回杭州市地图展示 效果预览 实现思路 使用ECharts的地图和散点图功能结合实现地区分布通过动画轮播展示数据变化实现下级地区数据的展…

搜索引擎的原理与相关知识

搜索引擎是一种网络服务,它通过互联网帮助用户找到所需的信息。搜索引擎的工作原理主要包括以下几个步骤: 网络爬虫(Web Crawler):搜索引擎使用网络爬虫(也称为蜘蛛或机器人)来遍历互联网&#…

Hugging Face Accelerate 两个后端的故事:FSDP 与 DeepSpeed

社区中有两个流行的零冗余优化器 (Zero Redundancy Optimizer,ZeRO)算法实现,一个来自DeepSpeed,另一个来自PyTorch。Hugging FaceAccelerate对这两者都进行了集成并通过接口暴露出来,以供最终用户在训练/微调模型时自主选择其中之…

flask-socket的实践

1.长连接和短连接的由来 1)TCP在真正的读写操作之前,server与client之间必须建立一个连接, 当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立通过三次握手,释放则需要四次握手…

java基于ssm+jsp 二手车交易网站

1用户功能模块 定金支付管理,在定金支付管理页面可以填写订单编号、车型、品牌、分类、车身颜色、售价、订金金额、付款日期、备注、用户名、姓名、联系方式、是否支付等信息,进行详情、修改,如图1所示。 图1定金支付管理界面图 预约到店管…

“论大数据处理架构及其应用”写作框架,软考高级,系统架构设计师

论文真题 大数据处理架构是专门用于处理和分析巨量复杂数据集的软件架构。它通常包括数据收集、存储、处理、分析和可视化等多个层面,旨在从海量、多样化的数据中提取有价值的信息。Lambda架构是大数据平台里最成熟、最稳定的架构,它是一种将批处理和流…

kicad第三方插件安装问题

在使用KICAD时想安装扩展内容,但是遇到下载失败,因为SSL connect error。 因为是公司网络,我也不是很懂,只能另寻他法。找到如下方法可以曲线救国。 第三方插件包目录 打开存放第三方插件存放目录,用于存放下载插件包…

通俗范畴论4 范畴的定义

注:由于CSDN无法显示本文章源文件的公式,因此部分下标、字母花体、箭头表示可能会不正常,请读者谅解 范畴的正式定义 上一节我们在没有引入范畴这个数学概念的情况下,直接体验了一个“苹果1”范畴,建立了一个对范畴的直观。本节我们正式学习范畴的定义和基本性质。 一个…