大语言模型系列-GPT-2

news2024/11/18 7:43:21

文章目录

  • 前言
  • 一、GPT-2做的改进
  • 二、GPT-2的表现
  • 总结

前言

《Language Models are Unsupervised Multitask Learners,2019》

前文提到,GPT-1利用不同的模型结构微调初步解决了多任务学习的问题,但是仍然是预训练+微调的形式,GPT-1在未经微调的任务上有一定效果(zero-shot ),但是其泛化能力远远低于经过微调的有监督任务,GPT-2主要基于该点进行了改进。

ps:GPT1:发现预训练模型具有 zero-shot 的能力,并且能随着预训练的进行不断增强。为了进一步验证 zero-shot 的能力,OpenAI 在 GPT-1 提出一年后,推出了 GPT-2。

GPT-2的目标旨在训练一个泛化能力更强的词向量模型,它并没有对GPT-1的网络进行过多的结构的创新与设计,只是使用了更多的网络参数(1.5B)和更大的数据集。

GPT-2 的核心思想就是,当模型的容量非常大且数据量足够丰富时,仅仅靠语言模型的学习便可以完成其他有监督学习的任务,不需要在下游任务微调。即为多任务学习,和T5类似。

也就是说所有的有监督学习都是无监督语言模型的一个子集。例如当模型训练完“Micheal Jordan is the best basketball player in the history”语料的语言模型之后,便也学会了(question:“who is the best basketball player in the history ?”,answer:“Micheal Jordan”)的Q&A任务。

few-shot:在模型做预测的时候,给模型少量标注后的优质样本来作为条件。(如GPT-3)
one-shot:和few-shot类似,但是只允许看到一个样本。
zero-shot:和one-shot类似,但是不允许看到任何样本。直接做预测。(如GPT-2)

ps:few-shot、one-shot、zero-shot均在推理输入阶段起作用,不会更新梯度,举例如下:

  • few-shot:“这个任务要求将中文翻译为英文。你好->hello,再见->goodbye,购买->purchase,销售->”
  • one-shot:“这个任务要求将中文翻译为英文。你好->hello,销售->”
  • zero-shot:“这个任务要求将中文翻译为英文。销售->”

一、GPT-2做的改进

  1. 去掉了fine-tuning层: 不再针对不同任务分别进行微调建模,即不定义这个模型应该做什么任务,模型自动识别需要做什么任务。就像T5的text to text。
  2. Larger Dataset: WebText,GPT-2收集了更加广泛、数量更多的语料组成数据集。该数据集包含800万个网页,大小为40G
  3. Larger Model: GPT-2将Transformer堆叠的层数从12层增加到48层,隐层的维度为1600,参数量达到了15亿(Bert的参数量3亿、T5参数量110 亿)。
  4. Larger dictionary,larger sequnece length and larger batch size。 GPT-2将词汇表数量增加到50257个;最大的上下文大小 (context size) 从GPT的512提升到了1024 tokens;batchsize增加到512。
  5. 调整LN层:将layer normalization放到每个sub-block之前,并在最后一个Self-attention后再增加一个layer normalization。
  6. 初始化:修改初始化的残差层权重,维缩放为原来的 1 / N 1/ \sqrt N 1/N ,其中N是残差层的数量。

二、GPT-2的表现

  1. 在8个语言模型任务中,仅仅通过zero-shot学习,GPT-2就有7个超过了state-of-the-art的方法;
  2. 在“Children’s Book Test”数据集上的命名实体识别任务中,GPT-2超过了state-of-the-art的方法约7%;
  3. “LAMBADA”是测试模型捕捉长期依赖的能力的数据集,GPT-2将困惑度从99.8降到了8.6;
  4. 在阅读理解数据中,GPT-2超过了4个baseline模型中的三个;
  5. 在法译英任务中,GPT-2在zero-shot学习的基础上,超过了大多数的无监督方法,但是比有监督的state-of-the-art模型要差;
  6. GPT-2在文本总结的表现不理想,但是它的效果也和有监督的模型非常接近。

总结

先看一下GTP2在不同数据集上的精度:
在这里插入图片描述

ps:模型精度指标:

  • PPL(Perplexity,困惑度):在自然语言处理中,语言模型的任务是对给定的文本序列进行概率估计,即根据先前的单词预测下一个单词的概率。困惑度提供了一个衡量语言模型对给定文本序列预测的不确定性程度的度量。
    具体来说,困惑度是对模型在给定数据集上的概率分布进行评估的指标。在一个给定的文本序列上,困惑度是一个标量值,表示模型对该序列的预测的平均困惑程度,即模型认为该序列所对应的概率的逆数。困惑度越低,表示模型在给定的序列上的预测越准确,模型对数据集的拟合程度越好。
    在这里插入图片描述
    即, P P L = 2 H ( P , Q ) PPL=2^{H(P,Q)} PPL=2H(P,Q) H ( P , Q ) = − ∑ x P ( x ) l o g Q ( x ) H(P,Q)=-\sum_xP(x)logQ(x) H(P,Q)=xP(x)logQ(x),预测序列Q和真实序列P
  • ACC(Accuracy,准确率):衡量模型在指定任务上(完形填空任务、文本分类任务等)的准确率。
    在这里插入图片描述
  • BPC(Bits Per Character,每字符比特数):BPC 是一种衡量模型性能的指标,用于评估模型生成文本的效率和质量。BPC 衡量了模型生成的文本与真实文本之间的差异,其计算方式通常是使用交叉熵损失(Cross Entropy Loss)除以每个字符的比特数。这个值越低,表示模型生成的文本越接近真实文本,模型的性能越好。
    在这里插入图片描述

ps:数据集解释:

  1. LAMBADA:LAMBADA是一个用于语言模型评估的数据集,其中包含了来自小说文本的句子。任务是给定前文并要求模型预测下一个单词,但这些句子在结尾处被截断,要求模型在没有上下文线索的情况下进行预测。即英文完形填空模式:
    在这里插入图片描述
  2. CBT-CN 和 CBT-NE:CBT(Children’s Book Test)是一个用于测试机器阅读理解的数据集,由Facebook于2016年提出。任务是从一本儿童读物中选出21个连续的句子。然后,将前20个句子视为上下文,然后推断第21个句子中缺少的单词。CBT-CN(Children’s Book Test-Chinese)和CBT-NE(Children’s Book Test-Natural Language Explanation)是CBT的中文版本和自然语言解释版本。
  3. WikiText2 和 WikiText103:WikiText是从维基百科收集的用于语言模型预训练和评估的数据集。WikiText2是包含较小语料库的版本,而WikiText103是包含较大语料库的版本。(其中的文本被用来训练模型以预测下一个单词或字符,即在给定先前的文本序列后预测下一个单词或字符的概率。)
  4. PTB(Penn Treebank):PTB是一个常用的用于语言建模和序列预测任务的数据集,包含了华尔街日报的文章。
  5. enwik8 和 text8:这是两个常用的用于字符级别语言建模任务的数据集。enwik8是维基百科的一个子集,而text8是enwik8的一个更小的子集,用于快速训练和评估模型。
  6. 1BW:1BW是一个用于预训练语言模型的数据集,包含来自互联网的多语言文本,总计约10亿字节。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[密码学]Base64编码

一、相关指令 1. 查看工具版本号 base64 --version2. 对字符串加密 echo 字符串 | base64 echo "Hello base64" | base643. 对字符串解密 echo 字符串 |base64 -d echo "SGVsbG8gTGV0aWFuLVJTQQo" | base64 -d4. 对文件加密 base64 文件名 base64 tex…

【Vue 3】

v-model 作用:给表单元素使用,双向数据绑定---->可以快速获取或设置表单元素内容 是value属性和input事件的合写 数据变化--->视图自动更新试图变化--->数据自动更新 语法:v-model"变量" 数据变,视图跟着变…

【你也能从零基础学会网站开发】Web建站之HTML+CSS入门篇 常用HTML标签(2)

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 超级链接标…

遗传算法优化BP神经网络时间序列回归分析,ga-bp回归分析

目录 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 遗传算法原理 遗传算法主要参数 遗传算法流程图 完整代码包含数据下载链接: 遗传算法优化BP神经网络时间序列回归分析,ga-bp回归分析(代码完…

实现的一个网页版的简易表白墙

实现的一个网页版的表白墙 实现效果 代码截图 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

Java面试(4)之 Spring Bean生命周期过程

一, 整个加载的完整链路图 更详细的生命周期函数链路图(仅供参考) 二, Bean实例化的四种方式: 1, 无参构造器(默认且常用)6 2, 静态工厂方法方式(factory-method指定实例化的静态方法) 3, 实例工厂方法方式(factory-bean指定bean的name,factory-method指定实例化方法) 4, 实…

(黑马出品_04)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_04&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术异步通信 今日目标1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯 1.2.技术对比 2.快速入门2.1.安装RabbitMQ2.1.1.单机部署(1).下载镜像方式…

Spark实战-基于Spark日志清洗与数据统计以及Zeppelin使用

Saprk-日志实战 一、用户行为日志 1.概念 用户每次访问网站时所有的行为日志(访问、浏览、搜索、点击)用户行为轨迹&#xff0c;流量日志2.原因 分析日志&#xff1a;网站页面访问量网站的粘性推荐3.生产渠道 (1)Nginx(2)Ajax4.日志内容 日志数据内容&#xff1a;1.访问的…

2024_01蓝桥杯STEMA 考试 Scratch 中级试卷解析​​​​​​​

2024_01蓝桥杯STEMA 考试 Scratch 中级试卷解析一、选择题第一题、运行下列哪段程序后,蜜蜂会向上移动?(C ) 第二题、运行以下程序,输入下列哪个数后,角色会说“未通过”?( D) A. 90 B. 85 C. 60 D. 58第三题、运行以下程序后,n 的值为(B )。 A. 17 B…

机器学习 | 使用CatBoost处理缺失值

数据是任何分析或机器学习的基础。然而&#xff0c;现实世界的数据集并不完美&#xff0c;它们经常包含缺失值&#xff0c;这可能导致任何算法的训练阶段出现错误。处理缺失值至关重要&#xff0c;因为它们可能会导致数据分析和机器学习模型中出现偏差或不准确的结果。处理缺失…

第5章 HSA内存模型

5.1 引言 在共享内存环境中&#xff0c;独立的控制线程可以竞相修改单个位置。为程序以可预测的方式运行&#xff0c;程序员必须用同步来控制这些竞争。 “内存一致性模型”或“内存模型”定义了并行代理之间通信的基本规则。当这些规则含糊不清地定义或者更糟的是完全不存在…

OpenHarmony教程指南—Ability的启动模式

介绍 本示例展示了在一个Stage模型中&#xff0c;实现standard、singleton、specified多种模式场景。 本实例参考开发指南 。 本实例需要使用aa工具 查看应用Ability 模式信息。 效果预览 使用说明 1、standard模式&#xff1a; 1&#xff09;进入首页&#xff0c;点击番茄…

Linux ubuntu 写c语言Hello world

文章目录 创建hello.c 文件进入hello.c 文件使用vim 编辑器进行编辑下载gcc 编辑器调用gcc 进行编译hello.c 创建hello.c 文件 touch hello.c进入hello.c 文件 vi hello.c使用vim 编辑器进行编辑 下载gcc 编辑器 sudo apt update sudo apt install gcc第一个语句是更新&am…

政安晨:【深度学习处理实践】(二)—— 最大汇聚运算

最大汇聚运算&#xff08;Max Pooling Operation&#xff09;是深度学习领域卷积神经网络常用的一种汇聚运算方式。在卷积神经网络中&#xff0c;经过一系列卷积层和激活函数层后&#xff0c;数据在空间尺寸上逐渐减小&#xff0c;特征图的深度也逐渐增加。为了降低数据尺寸并提…

『python爬虫』requests实战-comicai绘画ai通过cookie签到(保姆级图文)

目录 实现效果实现思路登录查询积分数量签到 实现代码总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 实现效果 实现思路 登录 f12 打开控制台,进入网络清除所有信息后点击登录按钮 通过搜索login(通用写法)…

Spring Boot中实现图片上传功能的两种策略

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

学习Java的第二天

如何使用文本文档在cmd里打印出HelloWorld 1、创建一个文本文档&#xff0c;并命名为HelloWorld&#xff0c;将后缀改为java&#xff08;需要自己去把后缀打开显示出来&#xff09; 2、打开编辑 也可以双击打开 3、在里面写出以下代码 上面红框里为你要打印的语句&#xff0c;…

英伟达板子4----存储满了系统黑屏

记录一个bug&#xff0c;因为最近在做边缘端视频处理的内容&#xff0c;就把视频存储在边端设备&#xff0c;但是发现由于边缘端设备的存储太小了&#xff0c;导致把ubuntu端的存储&#xff08;只有28个Gib&#xff09;给吃满了。 然后搜了一篇博客说重启就能释放一些空间&…

KONG - API转发流程梳理

kong简介 Kong 是一个开源的API网关&#xff0c;集成了服务注册和发现、负载均衡、健康检查等功能&#xff0c;还可以通过插件来提供限流、熔断、监控、日志等能力&#xff0c; 在kong的微服务架构中&#xff0c;kong担当了注册中心的角色&#xff0c;服务提供者(Provider)首…

【b站咸虾米】ES6 Promise的用法,ES7 async/await异步处理同步化,异步处理进化史

课程地址&#xff1a;【ES6 Promise的用法&#xff0c;ES7 async/await异步处理同步化&#xff0c;异步处理进化史】 https://www.bilibili.com/video/BV1XW4y1v7Md/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 图文地址&#xff1a;https://www.b…