当前位置: 首页 > news >正文

Language Models are Unsupervised Multitask Learners,GPT-2详细讲解

在这里插入图片描述

在这里插入图片描述

1542M=1.542B=15.42亿个

1.背景和动机
1.GPT-1在特定自然语言理解任务标注较少情况下,通过利用大量无标注数据,取得较强性能
2.BERT性能超越GPT-1,GPT-2通过构建更大数据集和模型,同时在zero-shot的多任务学习场景中展示不错性能

2.创新
GPT-2创新: 1.实现zero-shot 的多任务学习 2.创建WebText数据集: 百万级文本数据集800万个文档,40GB(训练数据大且更加多样化,包含不同领域知识)
GPT-2在做下游任务时,无需任何标注信息,无需任何参数或架构的修改,无监督的语言模型直接进行下游任务,不受数据分布改变的影响
GPT-2模型本身没有太大变化和创新,适配各种任务的方式是比较大的突破,prompt

3.zero-shot情况下,如何实现不同任务下游任务?
GPT-1在下游任务finetune时,构建结构化指令,如Start和Extract识别符,用以区分不同任务。
在这里插入图片描述
GPT-2中没有finetune阶段,无各种特殊字符,那么怎么区分不同下游任务呢?提示prompt

作者认为,下游任务(有监督训练)可以视为预训练(无监督训练)的一个自己。无监督目标的全局最优解也是有监督训练的全局最优解。
当预训练模型足够大时,无监督训练任务训练好了,有监督的下游任务即不再需要额外训练,即所谓的“zero-shot”。
足够大的语言模型能够在无监督的预训练后做下游任务,但学习速度比显示监督方法慢得多。

4.怎么做下游任务:下游任务预先告之模型,“translate English to Chinese”,即给模型一个提示,prompt(可以被认为是一个特殊的分隔符)。

5.为什么加入prompt就可以理解不同任务了?
加入prompt能zero-shot完成下游任务。原因是在预训练模型的输入数据中,可能就包括一些和下游任务 Prompt 很像的文本。例如,如果预训练模型的输入数据中有
“你好”翻译成英文是 Hello,那么,在下游任务中,将 Prompt 设为“翻译成英文”,模型就能理解下游任务是要做什么了。

6.GPT-2模型结构
在这里插入图片描述
GPT1&GPT2
自回归工作方式
目标函数来最大化:
在这里插入图片描述

k 是上下文窗口的大小,模型看到前面 k 个词,然后预测下一个词是什么,再根据真实的下一个词来计算误差,并使用随机梯度下降来训练。
GPT-1、GPT-2的模型结构基于Transformer decoder,GPT-2变化:
(1)调整Transformer的decoder: 将归一化层移动到block的输入位置并且在最后一个self-attention之后加了一层归一化Layer Normalization,顺序为LN、self-attention、LN。
(2)改进初始化方法:考虑残差路径和模型深度的累积。初始化将residua layers的权重按照1/sqrt(N)因子进行缩放,N为residua layers数量。

(3)数据量扩增:GPT1:约5GB,GPT2:40GB,并且质量更高。
(4)词典被扩展到了50257,context的维度从512提高到了1024,并且batchsize采用了512。

(5)去掉了Fine-tune部分:使用了完全的无监督训练。这样使得预训练和Fine-tuning的结构完全一致。

(6)堆叠的层数增加:GPT-1使用的12层,GPT2分别使用了GPT-2 Small:12、GPT-2 Medium:24、GPT-2 Large:36、GPT-2 Extra Large:48层。

7.输入表征
通用语言模型(LM)理应能计算任何字符串的概率,现有语言模型通常包含各种预处理操作:lower-casing、tokenization、预设词汇表等。这些操作会限制语言模型能够处理的字符范围。
GPT-2综合考虑OOV问题和词表过大的问题,使用了BPE算法处理任何字符。
字节对编码(BPE)是字节级和词级语言模型之间的一种折衷方案,它将频繁符号序列编码为一个输入,而将不频繁符号序列编码为多个频繁符号序列编码的组合,有效地在频繁的符号序列的词级输入和不频繁的符号序列的字符级输入之间进行插值。

8.实验
通过8个方面的评估
(1) Language Modeling
语言建模的一个主要目标就是在zero-shot情况下提升表现,GPT-2系列的模型在8个zero-shot数据集中7个达到了sota。
(2)Children’s Book Test
儿童图书测试(CBT)检验语言模型在不同类别的词上的表现,比如命名实体、名词、动词和介词。主要是以完型填空的形式,让语言模型去预测10个选项中哪个最可能是正确的。GPT-2的做法是预测每个选项为这个空缺的概率,并取概率最高的为预测选项。
(3)LAMBADA
LAMBADA数据集测试模型对文本中长期依赖关系的建模能力。任务是预测最后一个单词,对于人来说想要预测准确必须了解至少50个token的context。
(4)Winograd Schema Challenge
Winograd Schema挑战旨在通过测量模型解决文本中的歧义的能力来衡量其进行常识推理的能力。
(5)Reading Comprehension
CoQA数据集由7个不同领域的文档和关于文档的自然语言对话组成,测试阅读理解能力和模型回答依赖于对话历史的问题的能力。
(6)Summarization
摘要标题。
(7)Translation
英语->法语、法语->英语。
(8)Question Answering
Natural Questions dataset问答能力测试。

http://www.dtcms.com/a/38271.html

相关文章:

  • 后端返回文件流,前端导出excel文件
  • 易基因:RNA甲基化修饰和R-loop的交叉调控:从分子机制到临床意义|深度综述
  • 最好的Git实践指南(Windows/Linux双系统详解)
  • rabbitmq 延时队列
  • 【Python】Python判断语句经典题(一)
  • Linux: network: advertised our address
  • 深入解析React useEffect与useLayoutEffect:区别、原理与实践
  • python学习三
  • 简单易懂,解析Go语言中的struct结构体
  • MFC文件和注册表的操作
  • 【C++】深入理解List:双向链表的应用
  • PHP入门基础学习四(PHP基本语法)
  • Ubuntu22.04系统安装Anaconda、CUDA和CUDNN
  • RWA经济模型:基于数据为生产要素的商业模型
  • 将VsCode变得顺手好用(1
  • C#初级教程(3)——变量与表达式:从基础到实践
  • [Web 安全] 反序列化漏洞 - 学习笔记
  • Javaweb后端数据库多表关系一对多,外键,一对一
  • 人工智能基础知识笔记二:激活函数
  • Orange 开源项目 - 集成百度智能云-千帆大模型
  • labview关于计时器的使用
  • QT零基础学习之路(五)--自定义信号和槽
  • C++ Primer 算法概述
  • 渗透测试实验
  • 使用DeepSeek/ChatGPT等AI工具辅助编写wireshark过滤器
  • 实体机器人在gazebo中的映射
  • MagicArticulate: 超48K海量数据革新3D动画,自回归Transformer驱动关节智能生成!
  • Java 大视界 -- 基于 Java 的大数据机器学习模型压缩与部署优化(99)
  • Flink 中的滚动策略(Rolling Policy)
  • 通过命令启动steam的游戏