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

news/2025/2/26 19:01:37

在这里插入图片描述

在这里插入图片描述

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.niftyadmin.cn/n/5869084.html

相关文章

React加TypeScript最新部署完整版

React TypeScript 全流程部署指南 一、环境准备与项目初始化 关于node.js及npm的安装请参见我的文章。 1.1 创建项目(React TypeScript) # 使用官方推荐脚手架(Vite 5.x) npx create-vitelatest my-app --template react-ts …

Java Web开发实战与项目——项目集成与部署

软件开发中,集成与部署是非常关键的一步。无论是将前端与后端模块进行有效的集成,还是通过自动化构建工具(如Maven)和CI/CD工具(如Jenkins)实现自动化部署,都会对项目的开发和发布流程产生深远影…

pyautogui库的screenshot()函数

# 方法一 screenshot pyautogui.screenshot() screenshot.save("screenshot.png")# 方法二 # 获取屏幕分辨率 screen_width, screen_height pyautogui.size()# 截取桌面屏幕 screenshot pyautogui.screenshot(region(0, 0, screen_width, screen_height)) screens…

【js逆向入门】图灵爬虫练习平台 第八题

地址:aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvOC8 点击f12,立马进入到debugger,右击选一律不在此处暂停,然后按键f8 再刷新一下就能看到xhr加载的数据包 请求信息如下 请求标头里面有加密参数M和T 请求载荷只…

可扩展调度在时间敏感网络中的应用:一种高效的流冲突检测方法

论文标题 **中文标题:**可扩展调度在时间敏感网络中的应用:一种高效的流冲突检测方法 **英文标题:**Scalable Scheduling in Time-Sensitive Networking: An Efficient Stream Conflict Detection Method 作者信息 Lei Xu, Cailian Chen (…

Android 字体大小自动处理 AppCompactTextView 和 自定义 TextView

背景 来自于 需求的视觉设计要求 限制字段长度为320px超长时按宽度缩小字号TextView底色高度固定字体缩小步进1sp难点 课程卡片为自定义View,封装信息层组件,通过锚定基准比例实时计算获取以下对应信息: RadiusImageWidthImageHeightMaginPaddingTextSize动态数据加载,等…

网络安全漏洞管理要求 网络安全产品漏洞

一、漏洞类型 缓冲区溢出、跨站脚本、DOS攻击、扫描、SQL 注入、木马后门、病毒蠕虫、web攻击、僵尸网络、跨站请求伪造、文件包含、文件读取、目录遍历攻击、敏感信息泄露、暴力破解、代码执行漏洞、命令执行、弱口令、上传漏洞利用、webshell利用、配置不当/错误、逻辑/涉及错…

【C++设计模式】观察者模式(1/2):从基础到优化实现

1. 引言 在 C++ 软件与设计系列课程中,观察者模式是一个重要的设计模式。本系列课程旨在深入探讨该模式的实现与优化。在之前的课程里,我们已对观察者模式有了初步认识,本次将在前两次课程的基础上,进一步深入研究,着重解决观察者生命周期问题,提升代码的安全性、灵活性…