#Paper Reading# Language Models are Unsupervised Multitask Learners

article/2025/8/21 23:23:02

论文题目: Language Models are Unsupervised Multitask Learners
论文地址:  https://life-extension.github.io/2020/05/27/GPT技术初探/language-models.pdf
论文发表于: OpenAI 2019
论文所属单位: OpenAI

论文大体内容:
本文主要提出了GPT-2(Generative Pre-Training)模型,通过大模型pre-train进行Unsupervise Learning,并使用Zero-shot Learning的方式在NLU系列任务中取得收益。

Motivation
创建通用的大模型,是GPT系列文章的最大目标。而对于未涉猎过的领域(Zero-shot learning),通用大模型的效果会是怎么样的呢?

Contribution
①训练更通用的pre-train模型;
②在zero-shot learning中应用pre-train模型取得优异成绩;


1. 本文作者相信,Language model经过训练后,有能力推断和预测对应的任务,也就是进行Unsupervisor Multi-task Learning。而本文在后面的实验中就用Zero-shot learning来进行验证。

2. 为了能训练出更通用的模型,需要收集到大的通用数据集,本文基于Common Crawl[2]的工具去爬取海量的互联网数据。但是这些数据存在质量问题。所以本文做了一些爬取策略来提升数据质量,包括只爬取Reddit的外链以及启发式的清理。总共爬取到800万个文档共40GB。另外为了更好的进行Zero-shot Learning(避免Trainset和Testset数据重合),所以本文的训练数据集也去掉了普遍都使用的Wiki文档。

3. Byte-level Language Model效果逊色于Word-level Language Model,但是能够拥有更大范围的词汇量。而Byte Pair Encoding (BPE)介于两者之间,能够同时拥有大的词汇量和优秀的表现。本文也采用这种方法。

4. 模型架构跟GPT-1[1]类似,只不过在GPT-2里面使用了更多的层,另外也采用了残差网络的方式去避免梯度弥散问题。


实验
5. Dataset
①LAMBADA
②CBT
③WikiText2
④PTB
⑤enwik8
⑥text8
⑦WikiText103
⑧1BW

6. Language Modeling
在8个数据集中的7个Zero-shot learning的效果优于SOTA。在1BW中,效果差的原因可能是其中进行了句子级别的预处理,导致破坏了里面的句子结构。

7. Children’s Book Test
任务是用10个选项进行完形填空。

8. LAMBADA
任务是预测句子的最后一个word。

9. Winograd Schema Challenge
任务是解决文本歧义。

10. Reading Comprehension
任务是阅读理解。

11. Summarization
Extractive的文本摘要,仅比随机抽取3个句子的效果好一点。

12. Translation
Translation效果差,是因为训练数据集里面基本只有英文内容,别的语言文档太少导致。

13. Question Answering
QA效果差,但可以发现随着模型参数量增大,效果会提升明显,所以本文作者认为模型容量是对效果影响的关键因素,这也更坚定了GPT系列会不断把模型做大做深。

14. 本文Discuss里面表达了对当前方向的认可,但是针对目前在某些任务上仍然无法取得较好的效果表达了未知,后续仍需要比较多的探索。这个方向很美好或者很理想,但是仍需很大的努力。

参考资料
[1] GPT-1 https://blog.csdn.net/John159151/article/details/129062724
[2] Common Crawl https://commoncrawl.org/the-data/
[3] GPT-2 Github https://github.com/openai/gpt-2


以上均为个人见解,因本人水平有限,如发现有所错漏,敬请指出,谢谢!


http://chatgpt.dhexx.cn/article/JnkYer50.shtml

相关文章

【论文阅读】Multitask Prompted Training Enables Zero-shot Task Generalization

前言 本文源自 ICLR 2022 原文地址:Multitask Prompted Training Enables Zero-shot Task Generalization Discussion 中提到的 FLAN 参考博文 【论文阅读】Finetuned Language Models Are Zero-Shot Learners_长命百岁️的博客-CSDN博客 Abstract 大模型在多种…

MultiTask Learning Survey

目录 一、常见Multi-Task 架构 二、MTL的一些优化方法 三、ExperimentConclusion 原文链接:MultiTask Survey 一、常见Multi-Task 架构 Hard和Soft区分:Hard共享底层参数,在高层提取中相互独立;Soft使用十字绣的形式&#xf…

Multitask Learning

参考 Multitask Learning - 云社区 - 腾讯云 1、单任务学习VS多任务学习 单任务学习:一次只学习一个任务(task),大部分的机器学习任务都属于单任务学习。多任务学习:把多个相关(related)的任务…

Multi-Task 多任务学习, 那些你不知道的事

作者 | 三和厂妹 来源 | 文末『阅读原文』处 概念 当在一个任务中要优化多于一个的目标函数[1] ,就可以叫多任务学习 一些例外 「一个目标函数的多任务」:很多任务中把loss加到一起回传,实质优化的是一个目标函数, 但优化的是多个任务&…

多任务学习综述:推荐系统多任务学习(multitask)的实战总结和常见问题(一)

多任务学习算法系列的主要内容是回顾和总结自己2019-2021间在深度学习多任务学习算法(multitask)的工业实践和遇到的常见问题,欢迎更多同学讨论和指正,同时也宣传一波我们组在推荐方向的工作成果——大规模推荐算法库PaddleRec(https://githu…

VS2012下载和安装

1.下载链接 https://pan.baidu.com/s/1YR7Xk9Zlv7zQWCsERdVgIQ 提取码:stvi 2.鼠标右击【Visual Studio2012】压缩包选择【解压到Visual Studio2012】。 3.打开解压后的文件夹,鼠标右击【vs_ultimate】选择【以管理员身份运行】。 4.点击【…】可更改安…

Visual Studio 2013 详细安装教程(安装+注册)

转载自:安装注册:https://jingyan.baidu.com/article/09ea3ede3b2496c0afde3944.html IE10报错解决办法:https://jingyan.baidu.com/article/ff42efa92f79cac19e2202cd.html 1.还是老样子,首先要下载安装文件,这里提供…

使用cubemx工具的STM32对外部flash(W25Q64)的简单编程

SPI SPI简介 SPI通信原理 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为…

stm32 W25QXX系列驱动 W25Q80 W25Q16 W25Q32 W25Q64 W25Q128 W25Q256

头文件 #ifndef W25QXX__H #define W25QXX__H #include "sys.h"#define W25Q80 0XEF13 #define W25Q16 0XEF14 #define W25Q32 0XEF15 #define W25Q64 0XEF16 #define W25Q128 0XEF17 #define W25Q256 0XEF18#define W25QXX_CS PAout(4)//指令表 #define W25X…

SPI专题(二)——STM32驱动FLASH(W25Q64)

前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。 github:my github 注:博客所涉及的关于 st…

STM32系列(HAL库)——F103C8T6通过SPI方式读写W25Q64—(Flash存储模块)

1.软件准备 (1)编程平台:Keil5 (2)CubeMX (3)XCOM(串口调试助手) 2.硬件准备 (1)W25Q64模块 (2)F1的板子,本例使用经典F103C8T6 (3)ST-link 下载器 (4)USB-TTL模块 (5)杜邦线若干 3.模块资料 (1)模块简介: W25Q64(64M-bit)&#xff0c…

SPI协议学习Cubmx——读写Flash W25Q64

这是最好的时代,这是最坏的时代; 这是智慧的时代,这是愚蠢的时代; 这是信仰的时期,这是怀疑的时期; 这是光明的季节,这是黑暗的季节; 这是希望之春,这是失望之冬&#xf…

STM32使用QUADSPI读写外部Nor Flash(以W25Q64为例)

使用QUADSPI读写W25Q64 QUADSPI介绍硬件连接双闪存模式禁止双闪存模式使能 QUADSPI命令序列指令阶段地址阶段交替字节阶段空指令周期阶段数据阶段 QUADSPI主要信号接口协议模式单线SPI模式双线SPI模式四线SPI模式 使用QUADSPI操作W25Q64发送命令函数状态轮询函数读ID函数QUADSP…

W25Q64内部结构

和STM32片上一样 我们分析 函数接口: 擦除1个扇区 【参数必须是4096的倍数】 void SPI_FLASH_SectorErase(uint32_t SectorAddr) 擦除芯片全部 void SPI_FLASH_BulkErase(void) 写入一页【数据比256小】 pBuffer:待写入数据的指针 WriteAddr&#xff…

基于STM32F401RET6字库烧录(SPIW25Q64驱动)

目录 一、SPI&W25Q64 1-SPI介绍 2-初始化SPI 3-SPI数据接收和发送函数 4-验证SPI是否配置正确(读W25Q64的ID) 二、W25Q64简介与API函数 1 - W25Q64芯片介绍 2- W25Q64芯片管脚说明 3- W25Q64芯片工作原理 4- W25Q64芯片操作时序 三、字库烧…

STM32CubeMx开发之路—13使用SPI读写W25Q64

!!! 本文已同步到码云 - 点击此链接获取最新 - 可进入码云提交修改 !!! 附件 源码已放到码云 ! ! ! ( 请点击文首链接进入仓库 ) 运行环境 Windows10STM32CubeMX Version 5.2.0Keil5(MDK5) Version 5.28.0.0 简介 本例程主要讲解如何使用硬件IIC读写24C02 STM32CubeMx基本配…

STM32CubeMX系列08——SPI通信(W25Q64、NRF24L01无线模块)

文章目录 1. 准备工作1.1. 所用硬件1.2. SPI 简介1.3. 生成工程1.3.1. 创建工程选择主控1.3.2. 系统配置1.3.3. 配置工程目录 2. 读写EEPROM实验(W25Q64)2.1. W25Q64 简介2.2. 代码实现 3. NRF24L01无线模块通信3.1. 模块简介3.2. SPI 配置3.2.1. SPI1 配…

STM32驱动W25Q64读写数据

STM32驱动W25Q64读写数据 一.基本参数二.通信协议1、时序:2、代码: 三.引脚定义与接线1、引脚定义2、对应接线 四.主要代码五.操作步骤与现象六.总结 一.基本参数 1.采用…

学习日记——W25Q64 FLASH—QSPI

W25Q64串行FLASH基础知识 大小:8M(Byte)(128块(Block),每块64K字节,每块16个扇区(Sector),每个扇区4K字 节,每个扇区16页&#xff0c…

(STM32)W25Q64存储模块

1bit表示一个二进制位,1Byte表示8个二进制位。 每一个字节需要一个地址,所以24位地址,2^24次方最大寻址范围是16M。 W25Q256是特殊型号,切换4字节寻址模式才能使用后面的16M空间。 HOLD:芯片正常读写数据时&#xff…