理解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 在零样本多任务学习的探索 - 知乎”)

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

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

相关文章

FPGA 690T NVME高速存储设计

高速存储设计会有各种需求的考虑,那么对应的方案也不完全相同,这篇文章出一期纯FPGA实现的高速存储方案。用纯fpga实现高速存储板卡有易国产化,功耗低和体积小等特点,缺点就是灵活性不是很强,实现标准ext4和nfs文件系统…

Cent0S7 Docker安装 YOLOv8

githup 源码及其作者:ultralytics/ultralytics:新增 - PyTorch 中的 YOLOv8 🚀 > ONNX > OpenVINO > CoreML > TFLite (github.com) yolo是什么? 实时视觉检测技术,通过对不同的角度拍摄的视觉图片进行人…

源码学习:文件描述符

在进程描述学习中,扯到了max_fds,接着就联想到了日常运维中常见的ulimit参数、sysctl内核参数,原来以为max_fds与这些个关联性比较强,但经过一早上折腾以后,发现其实还是有一些差距的。但是在学习过程中,却…

Al+医学,用这个中文多模态医学大模型帮你看胸片

随着人工智能技术的飞速发展,AI 在医学领域的应用已经成为现实。特别是在医学影像诊断方面,AI 大模型技术展现出了巨大的潜力和价值,但目前针对中文领域医学大多模态大模型还较少。 今天马建仓为大家介绍的这款 XrayGLM,就是由澳…

Redis-实战篇-缓存更新策略(内存淘汰、超时剔除、主动更新)

文章目录 1、缓存更新策略1.1、内存淘汰1.2、超时剔除1.3、主动更新 2、业务场景:3、主动更新在企业中业务实现有三种方式3.1、Cache Aside Pattern3.1.1、操作缓存和数据库时有三个问题需要考虑:3.1.1.1、删除缓存还是更新缓存?3.1.1.2、如何…

大模型应用-多模态和大模型是如何相互成就的

前言 如果单纯的将大模型用来聊天,那就是low了。 而多模态赋予了大模型更多的现实价值,大模型则助力多模态变得更强大。 多模态 我们所处的是一个物理世界,不同事物之间模态多种多样,即便是简单的文本,按照语言&am…

FreeRTOS的裁剪与移植

文章目录 1 FreeRTOS裁剪与移植1.1 FreeRTOS基础1.1.1 RTOS与GPOS1.1.2 堆与栈1.1.3 FreeRTOS核心文件1.1.4 FreeRTOS语法 1.2 FreeRTOS移植和裁剪 1 FreeRTOS裁剪与移植 1.1 FreeRTOS基础 1.1.1 RTOS与GPOS ​ 实时操作系统(RTOS):是指当…

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

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

计算Dice损失的函数

计算Dice损失的函数 def Dice_loss(inputs, target, beta1, smooth 1e-5):n,c, h, w inputs.size() #nt,ht, wt, ct target.size() #nt,if h ! ht and w ! wt:inputs F.interpolate(inputs, size(ht, wt), mode"bilinear", align_cornersTrue)temp_inputs t…

wsl2收缩虚拟磁盘,减少空间占用

一、说明 由于WSL2使用的是虚拟磁盘,当虚拟磁盘的空间变大时,仅仅删除WSL2文件系统中没有用到的大文件,磁盘空间是无法自动收缩回收的。本文介绍了一种回收WSL2虚拟磁盘空间的方法。 二、停止WSL2 在收缩 WSL2 虚拟磁盘之前,需…

《概率论与数理统计》期末复习笔记_上

目录 第1章 随机事件与概率 1.1 随机事件 1.2 事件的关系与运算 1.3 概率的定义与性质 1.4 古典概型_重点 1.5 几何概型 1.6 条件概率与乘法公式 1.7 全概率公式与贝叶斯公式_重点 1.8 事件的独立性_重点 1.9 伯努利概型_重难点 第2章 随机变量及其分布 2.1 随机变…

​​Linux(CentOS)​​同步服务器时间之~​​chrony​​

Chrony 是一款开源的网络时间协议(NTP)客户端和服务端软件,旨在提供高精度的时间同步功能。相较于传统的 NTP 实现如 ntpd,Chrony 提供了一些改进和优势,包括更快的同步速度、低延迟、低CPU占用和低内存消耗。以下是 Chrony 的几个关键特性和…

华润万家超市卡怎么用?

华润的礼品卡不仅能线下门店使用,还能直接叫送货上门 我最近用积分兑了几张华润卡,但是又没有购物需求,送朋友吧面值又不大,朋友也说用不上 最后朋友建议我在收卡云上把卡出掉,我试了下92折出掉了,价格还…

面对全球新能源汽车合作发展创维汽车如何实现共赢

由全球新能源汽车合作组织(筹)主办、中国电动汽车百人会承办的首届全球新能源汽车合作发展论坛(GNEV2024)于6月27日,6月28日在新加坡金沙会议展览中心召开。创维汽车国际营销公司总经理齐奎源受邀参会并作出分享。 本届大会以推动全球新能源汽车产业协同发展与合作…

GenAI 用于客户支持 — 第 1 部分:构建我们的概念验证

作者:来自 Elastic Chris Blaisure 欢迎来到 Inside Elastic 博客系列,我们将展示 Elastic 的内部运营如何解决实际业务挑战。本系列将揭示我们将生成式 AI(gererative AI - GenAI)集成到客户成功和支持运营中的历程,让…

【Mac】Listen 1 for Mac(最强的音乐搜索工具)软件介绍

软件介绍 Listen 1 for Mac 是一款非常方便的音乐播放软件,主要功能是集成多个音乐平台,让用户可以方便地搜索、播放和管理音乐。它是一个用 Python 语言开发的免费开源综合音乐搜索工具项目,最大的亮点在于可以搜索和播放来自网易云音乐&am…

JAVA医院绩效考核系统源码:三级公立医院绩效考核系统源码 可源码交付,支持二开

JAVA医院绩效考核系统源码:三级公立医院绩效考核系统源码 可源码交付,支持二开 医院绩效考核系统是一个集数据采集、分析、评估、反馈于一体的信息化工具,旨在提高医疗服务质量、优化资源配置、促进医院可持续发展。以下是对医院绩效考核系统…

【React】第二个组件的一点小问题(JSX元素需要被包裹)

能看出为什么报错吗? 它告诉我们JSX元素需要被包裹,此时只需在所有元素外套一层标签(空标签也可以哦) 专业点就是要有一个根元素 注释: ctrl / 效果是 {/* */}这样 三元运算符:同CPP 循环输出数组&#x…

Firefox 编译指南2024 Windows10篇- 源码获取(二)

1. 引言 在成功准备了编译环境之后,下一步就是获取Firefox的源码。源码是编译任何软件的基础,对于开源项目如Firefox尤其重要。通过获取并理解源码,开发者不仅能够编译出自定义版本的Firefox,还能对其进行修改和优化,…