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

Improving Language Understanding by Generative Pre-Training GPT-1详细讲解

Improving Language Understanding by Generative Pre-Training 2018.06 GPT-1
在这里插入图片描述

0.有监督、半监督、无监督
在这里插入图片描述
CV:ImageNet pre-trained model NLP:pre-trained model?
在计算机视觉中任务包含分类、检测、分割,任务类别数少,对应目标函数loss可控,加上数据容易标注,ImageNet pre-trainded model等易实现

难点:
NLP中任务太多,分类、问答、翻译、总结,分析等等各种任务,
1.利用未标记文本的挑战在于不清楚哪种优化目标对于学习有用的文本表示最为有效。
2.另一挑战是怎么样把学习到的无监督迁移到子任务中。
且标注数据较难,所以预训练模型在NLP中一直未大量使用。

1.GPT简介
GPT训练=无监督的预训练阶段(给定当前单词之前的上下文预测下一个词的概率来学习语言表示,生成式训练生成新的文本,基于统计)+有监督的微调阶段(特定任务上标注的数据微调训练,判别式微调)
本文提出的生成式预训练方法(Generative Pre-Training)基于各种未标记文本无监督、生成式预训练,并在每一个具体任务上进行区分性地有监督、判别式微调,可以使得在这些任务上取得很大的改进。——在文中被称为是半监督方法。
预训练方法通过在大规模数据集上训练神经网络,学习到一个通用表示,从而提高模型的泛化能力,有效地缓解了过拟合问题。因此,预训练方法可以被视为一种有效的正则化范式。

2.数据集
大型无标记文本语料库:语言建模学习神经网络初始参数,不要求目标任何与大型未标记的语料库处于同一域中
•BooksCorpus ,约8亿个单词
•1B Word Benchmark,约10亿个单词
有标记数据集:初始参数调整适应任务目标中

3.GPT transformer框架介绍
在这里插入图片描述
12-layer decoder-only transformer,GPT基于transformer的自回归语言模型,使用了单向的transformer解码器Decoder。
语言模型是利用上文预测下一个单词,只考虑当前单词之前的上下文,因为 Decoder 使用了 Masked Multi Self-Attention 屏蔽了当前单词后面的内容,所以 Decoder 是现成的语言模型。
text embedding+position embedding,输入是768维,经过12层 transformer block(带有掩码自注意力头(768维状态向量和12个注意力768=6412 ),每个key value query 是64维),得到transformer特征向量,通过linear线性层得到text的概率分布
standard transformer: d=512=64
8
ViT: 768x(196+1)xbatch
GPT1: 768x512x64 输入维度 x token数量 x batch

4.无监督的预训练阶段
在这里插入图片描述
模型首先接收输入文本的前k-1个单词,然后生成第k个单词的概率分布,选取概率最高的单词作为预测结果,并将其添加到输入序列的末尾,不断重复,直到生成整个文本序列为止。
优化最大似然函数目标函数,序列的条件概率

5.有监督的微调阶段
在这里插入图片描述
在fine-tuning阶段,在GPT的输出层之上添加额外的结构Wy,例如分类器、解码器等,以适应不同的任务需求。
输入m个token,transformer最终的特征向量hl,经过Wy如线性变换,softmax得到概率分布

6.辅助训练
如上面L3 loss中引入0.5倍的L1 loss一起训练
辅助训练目标帮助模型在微调时拥有更好的泛化能力并加速收敛。
在使用最后一个词的预测结果进行监督学习的同时,前面的词继续上一步的无监督训练
添加辅助的无监督训练目标是半监督学习的另一种形式。

7.四种语言理解任务评估GPT方法
1.文本分类 2.自然语言推理 3.语义相似性 4.问题回答
因为GPT预训练阶段是在连续文本序列上训练的,而NLP大多任务是结构化输入,需要将结构化输入转为序列输入,同时对模型结构更改最小。
结构化文本,使用遍历式的方法,将结构化的输入转换为预训练的模型可以处理的有序序列。
问答、文本蕴含等,有结构化的输入,比如句子对(二元组)、文档问题答案(三元组)。
在这里插入图片描述
(1)文本分类
起始和终止token加入到原始序列两端,transformer得到特征向量+全连接得到预测的概率分布
(2)文本蕴含
通过分隔符delimiter分开,两端加入start和extract token,transformer得到特征向量+全连接得到预测的概率分布
(3)文本相似性
两个句子,输入顺序更换后,经过transformer相加,得到transformer特征向量,拼接后,全连接得到预测结果
(4)问答和常识推理
给定上下文文档z 、一个问题q 和一组可能的答案 ak
[context:z;q;answer1:a1]
N个answer每个对应softmax之后的概率值,投票选取最佳答案。

8.实验
(1)transformer层数影响:
在这里插入图片描述
在使用预训练模型进行下游任务的时候,可以选择将整个预训练模型或其中一部分复制到下游任务的神经网络中。复制的层数可以根据下游任务的大小和复杂度进行调整。
每一个transformer layer都提供了高达9%的迁移效果在multiNLI上面。这表明训练模型中的每一层都包含了解决目标任务的有用功能。
(2)Zero-shot Behaviors零样本行为:不进行监督微调,直接执行四个task
在这里插入图片描述
为什么Transformer的语言模型预训练是有效的?
第一,基础生成模型学会执行我们评估的许多任务,提高了其语言建模能力。即本身学会各个任务都学会了点皮毛。
第二,与LSTM相比,transformer更有结构化的注意力机制,可以更好更长范围捕捉单词之间的关系,有助于模型迁移到下游任务中。
表明生成式预训练支持学习各种与任务相关的功能。

9.总结
(1)生成式预训练+判别性微调=强大自然语言理解的框架,该框架使用单一的任务不可知模型。
(2)包含大段连续文本的多样语料库上进行预训练,获取显著的世界知识和处理长距离依赖关系的能力,成功地将这些能力转移到解决判别性任务,改进了问答、语义相似性评估、蕴涵判断和文本分类研究的12个数据集中的9个的最新技术水平
(3)提供了关于哪些模型(Transformers)和数据集(具有长距离依赖关系的文本)在这种方法中表现最佳的线索。
我们希望这将有助于推动无监督学习的新研究,不仅适用于自然语言理解,还适用于其他领域,进一步提高我们对无监督学习如何以及何时起作用的理解。

相关文章:

Improving Language Understanding by Generative Pre-Training GPT-1详细讲解

Improving Language Understanding by Generative Pre-Training 2018.06 GPT-1 0.有监督、半监督、无监督 CV:ImageNet pre-trained model NLP:pre-trained model? 在计算机视觉中任务包含分类、检测、分割,任务类别数少,对应…...

Docker: 现代开发的利器,从入门到实践

引言 在现代软件开发中,开发人员面对的环境多种多样,不同操作系统、依赖、库版本等都会影响应用程序的正常运行。传统的开发和部署流程复杂且易错,"在我机器上可以跑"的困扰让许多开发者头疼。而 Docker,一个容器化技术…...

nuxt3 env环境变量

加载env文件 在package.json中指定运行某个env文件:nuxt build --dotenv .env.production 具体如下: "scripts": {"build-dev": "nuxt build --dotenv .env.test","build-prd": "nuxt build --dotenv .e…...

Vue3 自定义插件(plugin)

文章目录 Vue3 自定义插件(plugin)概述用法 Vue3 自定义插件(plugin) 概述 插件 (Plugins) 是一种能为 Vue 添加全局功能的工具代码。 用法 Vue3 插件有2种定义方式: 对象形式。对象中有install方法。函数形式。函数本身就是安装方法,其中&#xff…...

HTB:Bank[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 提取出靶机TCP开放端口 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用curl对域名进行访问…...

Elastic-Job相关

文档参考视频:09_SpringBoot案例演示_哔哩哔哩_bilibili 一、Elastic-Job介绍 Elastic-Job 是一个轻量级、分布式的任务调度框架,旨在解决分布式环境下的定时任务调度问题。 1.1. Elastic-Job 的核心组件 Elastic-Job 是由多个核心组件构成的&#x…...

Ruby语言的正则表达式

Ruby语言的正则表达式详解 正则表达式(Regular Expressions,简称Regex)是一种强大的文本处理工具,它可以用来匹配、搜索、替换字符串中的模式。在Ruby语言中,正则表达式的使用非常灵活,并且具有良好的可读…...

“深入浅出”系列之QT:(5)Json数据格式处理详解

一、JSON数据结构 JSON主要有两种数据结构:JSON对象和JSON数组。 JSON对象:由键值对组成,每个键(key)是字符串,值(value)可以是字符串、数字、布尔值、null、JSON数组或JSON对象。对…...

cursor试用出现:Too many free trial accounts used on this machine 的解决方法

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

Calico BGP网络问题

Calico BGP网络问题 文章目录 Calico BGP网络问题排除步骤calico-node 正常运行,但在 describe 中有警告信息错误现象 ip route 路由表中删除 blackhole后又会自动生成网卡选择无效导致 calico 的 pod 内容器未就绪问题现象原因分析问题解决方式一:直接修…...

Jenkins-部署-windows

Jenkins-部署-windows 一: Jenkins 资料 一: Jenkins 资料...

benchANT 性能榜单技术解读 Part 1:写入吞吐

近期,国际权威数据库性能测试榜单 benchANT 更新了 Time Series: Devops(时序数据库)场景排名,KaiwuDB 数据库在 xsmall 和 small 两类规格下的时序数据写入吞吐、查询吞吐、查询延迟、成本效益等多项指标刷新榜单原有数据纪录。在…...

【 算法设计与分析-回顾算法知识点】福建师范大学数学与计算机科学学院 2006 — 2007学年第二学期考试 A 卷

一.填空题(每空2分,共30分) 1.算法的时间复杂性指算法中 元运算 的执行次数。 2.在忽略常数因子的情况下,O、和三个符号中, O 提供了算法运行时间的一个上界。 3.设Dn…...

【25考研】川大计算机复试情况,重点是啥?怎么准备?

24年进入复试的同学中,有10位同学的复试成绩为0分。具体是个人原因还是校方原因,还尚不明确。但是C哥提醒,一定要认真复习!复试完后不要跟任何人讨论有关复试的题目及细节! 一、复试内容 四川大学复试内容较多&#xf…...

设计模式-结构型-适配器模式

在软件开发中,随着系统的不断扩展和模块的不断增加,往往会遇到不同模块之间接口不兼容的情况。此时,如果我们能通过某种方式将一个接口转化为另一个接口,那么开发工作将变得更加灵活和高效。适配器模式(Adapter Patter…...

el-table表格合并某一列

需求&#xff1a;按照下图完成单元格合并&#xff0c;数据展示 可以看到科室列是需要合并的 并加背景色展示&#xff1b;具体代码如下&#xff1a; <el-tableref"tableA":data"tableDataList":header-cell-style"{ backgroundColor: #f2dcdb, col…...

分布式Id方案选择

分布式 ID 方案选择 在当今分布式系统日益盛行的背景下&#xff0c;分布式 ID 生成方案的选择成为了众多开发者关注的焦点。一个优秀的分布式 ID 方案&#xff0c;不仅能够确保生成的 ID 全局唯一&#xff0c;避免数据冲突&#xff0c;还能在高并发、大规模的分布式环境中保持…...

uni app 写的 小游戏,文字拼图?文字拼写?不知道叫啥

从下方的偏旁部首中选在1--3个组成上面文章中的文字&#xff0c;完成的文字标红 不喜勿喷 《满江红》 其中用到了两个文件 strdata.json parameters.json 这两个文件太大 放到资源中了 资源文件 <template><view class"wenzi_page_main"><view c…...

【xLua】xLua-master签名、加密Lua文件

GitHub - Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc. 如果你想在项目工程上操作&#xff0c;又发现项目工程并没导入Tools&#xff0c;可以从xLua-master工程拷贝到项目工程Assets…...

Yolo11改进:注意力改进|Block改进|ESSAformer,用于高光谱图像超分辨率的高效Transformer|即插即用

摘要 一、论文介绍 高光谱图像超分辨率的重要性:高光谱成像技术通过密集采样光谱特征,为材料区分提供丰富的光谱和空间结构信息,广泛应用于各领域。高光谱图像超分辨率(HSI-SR)旨在从低分辨率HSI生成高分辨率HSI。传统方法的局限性:传统方法依赖手工制作的先验,如低秩近…...

第二十八周学习周报

目录 摘要Abstract1 GFPGAN1.1 总体结构1.2 实验研究1.3 代码分析 总结 摘要 本周主要的学习内容是GFPGAN模型。GFPGAN是一种基于生成对抗网络(GAN)的模型&#xff0c;其利用封装在预训练的人脸GAN中的丰富多样的先验进行人脸图像的修复。这种生成面部先验&#xff08;GFP&…...

太速科技-418-基于AD9361 +ZYNQ7020 的软件无线电 SDR 套件

基于AD9361 ZYNQ7020 的软件无线电 SDR 套件 一、板卡信息 ● ZYNQ芯片采用XC7Z020&#xff0c;逻辑容量更大&#xff0c;支持更大的逻辑设计&#xff1b; ● 内存采用两片512M DDR3&#xff0c;共1GByte&#xff0c;更大容量。 ● 支持千兆网口&#xff0c;支持ZEDFMCO…...

STM32裸机开发转FreeRTOS教程

目录 1. 简介2. RTOS设置&#xff08;1&#xff09;分配内存&#xff08;2&#xff09;查看任务剩余空间&#xff08;3&#xff09;使用osDelay 3. 队列的使用&#xff08;1&#xff09;创建队列&#xff08;1&#xff09;直接传值和指针传值&#xff08;2&#xff09;发送/接收…...

swagger导出json

要将 Swagger(或者 OpenAPI)文档导出为 JSON 文件,通常有几种常见的方法,具体取决于你使用的 Swagger 工具(如 Swagger UI、Swagger Editor、Swagger Hub 等)。下面列出了几种常见的导出 JSON 文件的方法。 1. 通过 Swagger UI 导出 JSON 文件 如果你在使用 Swagger UI…...

大纲笔记幕布的替换

文章目录 前言类似的大纲软件探索 DynalistLogseq通过国内代码仓库建立 Git 仓库Logseq 的使用PC 端安卓端Git 操作Termux git 步骤Termux 的桌面组件&#xff1a;Termux widget 报错参考 前言 之前我一直用幕布&#xff0c;买了三年&#xff0c;奈何要过期了&#xff0c;又三…...

【Excel/WPS】根据平均值,生成两列/多列指定范围的随机数/随机凑出两列数据

原理就是通过随机生成函数和平均值函数。 适用场景&#xff1a;在总体打分后&#xff0c;需要在小项中随机生成小分数 第一列&#xff1a;固定的平均值A2第二列&#xff1a; RANDBETWEEN(A2-10,A210)第三列&#xff1a;根据第二列用平均值函数算除 A2*2-B2这是随机值1的公式&am…...

单元测试MockitoExtension和SpringExtension

1. MockitoExtension MockitoExtension 是 JUnit 5 提供的一个扩展&#xff0c;用于支持 Mockito 的集成。它可以自动初始化标记为 Mock、InjectMocks 等的 Mockito 对象&#xff0c;而不需要显式调用 MockitoAnnotations.initMocks(this)。 主要特点: 自动初始化 Mock、Spy…...

springboot+vue使用easyExcel实现导出功能

vue部分 // 导出计算数据exportDataHandle(id) {this.$http({url: this.$http.adornUrl(/xxx/xxx/exportCalDataExcel),method: post,data: this.$http.adornData({id: id}),responseType: blob, // 重要&#xff1a;告诉axios我们希望接收二进制数据}).then(({data}) > {c…...

优化提示词改善答疑机器人回答质量

1.通过优化提示词来调整大模型的回答 1.1使用场景 默认提示词无法满足业务要求。 回答的内容太简单/困难&#xff0c;输出内容/格式/语气达不到要求等 1.2llama-index 的提示词模版 1.2.1llama-index 的默认模板 from llama_index.llms.dashscope import DashScope from lla…...

Spring AMQP-保证消费者消息的可靠性

为什么要保证消息的可靠性&#xff1f; 当MQ向消费者发送一个消息之后需要得到消费者的状态&#xff0c;因为消息并不一定就真的被消费者给消费了&#xff0c;可能在消费的过程中出现了一些意外&#xff0c;比如 1. 网络问题 2. 消息转换有问题 3. 消费者本身的业务处理有问题 …...

32单片机从入门到精通之数据处理——数学运算(十三)

无论你身在何处&#xff0c;无论你面对什么困难&#xff0c;只要对自己充满信心&#xff0c;坚持不懈地努力&#xff0c;相信自己的能力&#xff0c;你就能战胜任何困难&#xff0c;实现自己的目标。不要害怕失败&#xff0c;因为失败并不意味着你没有能力成功&#xff0c;只是…...

latex_学习

参考&#xff1a; https://www.overleaf.com/learn/latex/Free_online_introduction_to_LaTeX_(part_3)https://www.overleaf.com/learn/latex/Free_online_introduction_to_LaTeX_(part_2)https://www.overleaf.com/learn/latex/Free_online_introduction_to_LaTeX_(part_1) …...

小程序textarea组件键盘弹起会遮挡住输入框

<textarea value"{{remark}}" input"handleInputRemark" ></textarea> 如下会有遮挡&#xff1a; 一行代码搞定 cursor-spacing160 修改后代码 <textarea value"{{remark}}" input"handleInputRemark" cursor-spacin…...

vue之element-ui文件上传(二)

一、点击上传&#xff0c;使用默认的action上传&#xff0c;添加校验&#xff0c;上传成功后&#xff0c;去除校验&#xff1a; <el-form-item label"文件md5" prop"fileMd5"><el-uploadv-if"!form.fileMd5"v-model"form.fileMd5&…...

DC/AC并网逆变器模型与仿真MATLAB

DC/AC并网逆变器是一种将直流电&#xff08;DC&#xff09;转化为交流电&#xff08;AC&#xff09;&#xff0c;并将其与电网并联的设备。它的核心功能是实现直流电源&#xff08;如光伏电池板或储能电池&#xff09;与电网的有效连接&#xff0c;同时保证输出电能质量满足电网…...

python面向对象

面向对象简介 python完全采用了面向对象的思想&#xff0c;是真正面向对象的变成语言&#xff0c;完全支持面向对象的基本功能&#xff0c;例如&#xff1a;继承、多态、封装等 python中&#xff0c;一切皆为对象。前面学习的数据类型、函数等都是对象 面向过程和面向对象思…...

【UI自动化测试】selenium八种定位方式

&#x1f3e1;个人主页&#xff1a;謬熙&#xff0c;欢迎各位大佬到访❤️❤️❤️~ &#x1f472;个人简介&#xff1a;本人编程小白&#xff0c;正在学习互联网求职知识…… 如果您觉得本文对您有帮助的话&#xff0c;记得点赞&#x1f44d;、收藏⭐️、评论&#x1f4ac;&am…...

基于物联网疫苗冷链物流监测系统设计

1. 项目开发背景 随着全球对疫苗运输要求的提高&#xff0c;特别是针对温度敏感型药品&#xff08;如疫苗&#xff09;的冷链管理&#xff0c;如何保证疫苗在运输过程中的温度、湿度、震动等环境因素的稳定性已成为亟需解决的问题。疫苗运输过程中&#xff0c;任何温度或湿度的…...

实训云上搭建集群

文章目录 1. 登录实训云1.1 实训云网址1.2 登录实训云 2. 创建网络2.1 网络概述2.2 创建步骤 3. 创建路由器3.1 路由器名称3.1 创建路由器3.3 查看网络拓扑 4. 连接子网5. 创建虚拟网卡5.1 创建原因5.2 查看端口5.3 创建虚拟网卡 6. 管理安全组规则6.1 为什么要管理安全组规则6…...

【网页自动化】篡改猴入门教程

安装篡改猴 打开浏览器扩展商店&#xff08;Edge、Chrome、Firefox 等&#xff09;。搜索 Tampermonkey 并安装。 如图安装后&#xff0c;浏览器右上角会显示一个带有猴子图标的按钮。 创建用户脚本 已进入篡改猴管理面板点击创建 脚本注释说明 name&#xff1a;脚本名称。…...

(概率论)无偏估计

参考文章&#xff1a;(15 封私信 / 51 条消息) 什么是无偏估计&#xff1f; - 知乎 (zhihu.com) 首先&#xff0c;第一个回答中&#xff0c;马同学图解数学讲解得很形象&#xff0c; 我的概括是&#xff1a;“注意&#xff0c;有一个总体的均值u。然后&#xff0c;如果抽样n个&…...

JavaScript 正则表达式

JavaScript 正则表达式(RegEx)是一种强大的工具,用于在字符串中查找匹配的模式、替换文本,或者验证输入的格式。下面是一些常用的正则表达式操作和语法: 常用正则表达式符号: .:匹配任意字符(除了换行符)。^:匹配输入字符串的开始。$:匹配输入字符串的结束。[]:定…...

Swift语言的正则表达式

Swift语言的正则表达式 正则表达式是一种用于匹配字符串的强大工具&#xff0c;它可以帮助开发者在文本处理中高效地搜索和操作字符串。在Swift语言中&#xff0c;正则表达式的支持是通过Foundation框架提供的。本文将全面介绍Swift中的正则表达式&#xff0c;从基础知识到进阶…...

Matlab 数据处理与可视化的多元拓展应用(具体代码分析)

一、代码整体功能概述&#xff1a; 该代码主要实现了以下几个功能&#xff1a; 从文件&#xff08;part1.txt&#xff09;中读取数据&#xff0c;并提取第二列数据&#xff0c;将其存储在 originalColumnData 中。对原始数据进行可视化&#xff0c;包括绘制置零前数据的折线图…...

小程序与内嵌网页的数据通信

小程序与内嵌网页的数据通信 前言 微信小程序提供了web-view组件&#xff0c;允许开发者在小程序中嵌入网页。然而&#xff0c;由于小程序和网页运行在不同的环境中&#xff0c;它们之间的通信就需要依赖特定的机制来实现。然而我们日常的需求中&#xff0c;很多的时候都涉及…...

【学习笔记】数据结构(十一)

外部排序 文章目录 外部排序11.1 外存信息的存取11.2 外部排序的方法11.3 多路平衡归并的实现 - 增加k11.4 置换-选择排序 - 减少m11.5 最佳归并树 外部排序 指的是大文件的排序&#xff0c;即待排序的记录存储在外存储器 上&#xff0c;在排序过程中需进行多次的内、外存之间的…...

【Logstash03】企业级日志分析系统ELK之Logstash 过滤 Filter 插件

Logstash 过滤 Filter 插件 数据从源传输到存储库的过程中&#xff0c;Logstash 过滤器能够解析各个事件&#xff0c;识别已命名的字段以构建结构&#xff0c; 并将它们转换成通用格式&#xff0c;以便进行更强大的分析和实现商业价值。 Logstash 能够动态地转换和解析数据&a…...

深度学习模型部署——基于Onnx Runtime的深度学习模型CPU与GPU部署(C++实现)

1.概述 许多机器学习和深度学习模型都是在基于 Python 的框架中开发和训练的&#xff0c;例如 PyTorch 和 TensorFlow 等。但是&#xff0c;当需要将这些训练好模型部署到生产环境中时&#xff0c;通常会希望将模型集成到生产流程中&#xff0c;而这些流程大多是用 C 编写的&a…...

Selenium 的四种等待方式及使用场景

Selenium 的四种等待方式及使用场景 隐式等待&#xff08;Implicit Wait&#xff09;显式等待&#xff08;Explicit Wait&#xff09;自定义等待&#xff08;Custom Wait&#xff09;固定等待&#xff08;Sleep&#xff09; 1. 隐式等待 定义&#xff1a; 隐式等待是为 WebD…...

攻防世界 ics-07

点击之后发现有个项目管理能进&#xff0c;点进去&#xff0c;点击看到源码&#xff0c;如下三段 <?php session_start(); if (!isset($_GET[page])) { show_source(__FILE__); die(); } if (isset($_GET[page]) && $_GET[page] ! index.php) { include(flag.php);…...