我的创作纪念日兼GPT模型简单介绍

目录

一、引言

二、收获与开端

2.1 问题:在创作的过程中都有哪些收获?

2.2 模型开端

三、日常与深入

3.1 问题:当前创作和你的学习是什么样的关系?

3.2 模型深入介绍

3.2.1 无监督预训练

3.2.2 有监督下游任务精调

四、憧憬与应用

4.1 问题:你的创作规划和终极目标是什么?

4.2 适配不同的下游任务


一、引言

今天的文章比较特别,原因在于我想在其中尝试融入两个不同元素。一方面介绍自然语言处理中有关GPT模型的知识,另一方面简单谈谈自己的创作历程。下面的每一大节都将由这两方面组成。

二、收获与开端

2.1 问题:在创作的过程中都有哪些收获?

在培根的《谈读书》一文中有三句最为经典的话:“Reading maketh a full man; conference a ready man; and writing an exact man.”  我喜欢把他们翻译为:“读书使人丰富,辩论使人机敏,写作使人严谨。” 

细细品味,发现其中已经将创作的意义说得十分清楚,所以这里不在继续下去。

2.2 模型开端

OpenAI 公司在2018年提出了一种生成式预训练(Generative Pre Training,GPT)模型用来提升自然语言理解任务的效果,正式将自然语言处理带入“预训练”时代。
 
“预训练”时代意味着利用更大规模的文本数据以及更深层的神经网络模型学习更丰富的文本语义表示。同时,GPT的出现打破了自然语言处理各个任务之间的壁垒,使得搭建一个面向特定任务的自然语言处理模型不再需要了解非常多的任务背景,只需要根据任务的输入输出形式应用这些预训练语言模型,就能够达到一个不错的效果。因此,GPT提出了“生成式预训练+判别式任务精调”的自然语言处理新范式,使得自然语言处理模型的搭建变得不再复杂。
 
(1)生成式预训练:在大规模文本数据上训练一个高容量的语言模型,从而学习更加丰富的上下文信息;
(2)判别式任务精调:将预训练好的模型适配到下游任务中,并使用有标注数据学习判别式任务。
 
接下来将从两个部分介绍GPT模型。首先介绍GPT模型的基本结构及其预训练方法,然后介绍GPT模型在不同下游任务中的应用。

三、日常与深入

3.1 问题:当前创作和你的学习是什么样的关系?

创作与学习更多的应该是一种互补的关系。通过创作我们总结学习的内容,以便加深对知识的理解和技能的掌握;而学习是滋生创作的土壤,创作的灵感来源于学习,不断的学习使我们有能力可以继续创作。

3.2 模型深入介绍

3.2.1 无监督预训练

GPT的整体结构是一个基于Transformer的单向语言模型,即从左至右对输入文本建模,如下图所示:

GPT利用常规语言建模的方法优化给定文本序列 X=X_{1}\cdots X_{n}  的最大似然估计L^{PT}

式中,k表示语言模型的窗口大小,即基于k个历史词X_{i-k}\cdots X_{i-1}预测当前时刻的词X_{i} θ 表示神经网络模型的参数,可使用随机梯度下降法优化该似然函数。
 
具体地,GPT使用了多层Transformer作为模型的基本结构。对于长度为k的窗口词序列{X}'=X_{-k}\cdots X_{-1},通过以下方式计算建模概率 P:

式中, e_{​{X}'}\in \mathbb{R}^{k\times |V|}表示 x′ 的独热向量表示; W^{e}\in {R}^{|V|\times d}表示词向量矩阵;W^{p}\in {R}^{n\times d}表示位置向量矩阵(此处只截取窗口 x′ 对应的位置向量);L表示Transformer的总层数。

3.2.2 有监督下游任务精调

在预训练阶段,GPT利用大规模数据训练出基于深层Transformer的语言模型,已经掌握了文本的通用语义表示。精调(Fine-tuning)的目的是在通用语义表示的基础上,根据下游任务(Downstream task)的特性进行领域适配,使之与下游任务的形式更加契合,以获得更好的下游任务应用效果。接下来,将介绍如何将预训练好的GPT应用在实际的下游任务中。
 
下游任务精调通常是由有标注数据进行训练和优化的。假设下游任务的标注数据为C,其中每个样例的输入是X=X_{1}\cdots X_{n}构成的长度为n的文本序列,与之对应的标签为y。首先将文本序列输入预训练的GPT中,获取最后一层的最后一个词对应的隐含层输出 h_{n}^{[L]},如下面的式子所示。紧接着,将该隐含层输出通过一层全连接层变换,预测最终的标签。

式中,W^{y}\in {R}^{d\times k}表示全连接层权重,k表示标签个数。
 
最终,通过优化以下损失函数精调下游任务。
 

另外,为了进一步提升精调后模型的通用性以及收敛速度,可以在下游任务精调时加入一定权重的预训练任务损失。这样做是为了缓解在下游任务精调的过程中出现 灾难性遗忘 (Catastrophic Forgetting)问题。因为在下游任务精调过程中,GPT的训练目标是优化下游任务数据上的效果,更强调特殊性。因此,势必会对预训练阶段学习的通用知识产生部分的覆盖或擦除,丢失一定的通用性。通过结合下游任务精调损失和预训练任务损失,可以有效地缓解灾难性遗忘问题,在优化下游任务效果的同时保留一定的通用性。在实际应用中,可通过下式精调下游任务。

式中, L^{FT}表示精调任务损失; L^{PT}表示预训练任务损失;λ表示权重,通常λ的取值介于[0,1]。特别地,当λ=0时, L^{PT}一项无效,表示只使用精调任务损失L^{FT}优化下游任务。而当λ=1时,L^{PT}L^{FT}具有相同的权重。在实际应用中,通常设置λ=0.5,因为在精调下游任务的过程中,主要目的还是要优化有标注数据集的效果,即优化 。
 
L^{PT}的引入主要是为了提升精调模型的通用性,其重要程度不及L^{FT},因此设置 λ=0.5是一个较为合理的值(不同任务之间可能有一定的区别)。

四、憧憬与应用

4.1 问题:你的创作规划和终极目标是什么?

我是一个比较惫懒的人,没有什么明确的创作规划。具体来说,当某一个时间端突然对一个领域感兴趣时,我会根据自己的学习情况创作文章。文章可能是自己的心得体会、对某一种技术的看法或者笔记等等。至于终极目标,对一个懒散的人来说,先写满100篇文章吧。

4.2 适配不同的下游任务

由于不同任务之间的输入形式各不相同,应如何根据不同任务适配GPT的输入形式成为一个问题。本节介绍自然语言处理中几种典型的任务在GPT中的输入输出形式,其中包括:单句文本分类、文本蕴含、相似度计算和选择型阅读理解,如下图所示。

 

(1)单句文本分类。单句文本分类是最常见的自然语言处理任务之一,其输入由单个文本构成,输出由对应的分类标签构成。假设输入为X=X_{1}\cdots X_{n},单句文本分类的样例将通过如下形式输入GPT中。

式中,<s>表示开始标记;<e>表示结束标记。
 
(2)文本蕴含。文本蕴含的输入由两段文本构成,输出由分类标签构成,用于判断两段文本之间的蕴含关系。需要注意的是,文本蕴含中的前提(Premise)和假设(Hypothesis)是有序的,即在所有样例中需要使用统一格式,两者顺序必须固定(前提在前或者假设在前)。
 
假设文本蕴含的样例分别为X^{(1)}=X_{1}^{(1)}\cdots X_{n}^{(1)}X^{(2)}=X_{1}^{(2)}\cdots X_{m}^{(2)},其将通过如下形式输入GPT中。

 

式中,$表示分隔标记,用于分隔两段文本;n和m分别表示X^{(1)}X^{(2)}的长度。
 
(3)相似度计算。相似度计算任务也由两段文本构成。但与文本蕴含任务不同的是,参与相似度计算的两段文本之间不存在顺序关系。假设相似度计算的样例分别为X^{(1)}=X_{1}^{(1)}\cdots X_{n}^{(1)}X^{(2)}=X_{1}^{(2)}\cdots X_{m}^{(2)},其将通过如下形式输入GPT中,得到两个相应的隐含层表示。最终将这两个隐含层表示相加,并通过一个全连接层预测相似度。

(4)选择型阅读理解。选择型阅读理解任务是让机器阅读一篇文章,并且需要从多个选项中选择出问题对应的正确选项,即需要将〈篇章,问题,选项〉作为输入,以正确选项编号作为标签。
 
根据上述任务形式,假设篇章为p=p_{1}\cdots p_{n},问题为q=q_{1}\cdots q_{m},第i个选项为c^{(i)}=c_{1}^{(i)}\cdots c_{k}^{(i)},并假设N为选项个数,其将通过如下形式输入GPT中。

将〈篇章,问题,选项〉作为输入,通过GPT建模得到对应的隐含层表示,并通过全连接层得到每个选项的得分。最终,将N个选项的得分拼接,通过Softmax函数得到归一化的概率(单选题),并通过交叉熵损失函数学习。
想深入学习相关知识的读者,可以参考作者的其他文章。
 

reference:

GPT-3模型简单介绍_gpt3模型_云隐雾匿的博客-CSDN博客

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多元回归预测 | Matlab灰狼算法(GWO)优化极限梯度提升树XGBoost回归预测,GWO-XGBoost回归预测模型,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab灰狼算法(GWO)优化极限梯度提升树XGBoost回归预测,GWO-XGBoost回归预测模型,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源…

2023MWC精彩回顾 | 未来数字世界中的社交,游戏与娱乐

6月28日至6月30日,由GSMA主办的2023 MWC 上海世界移动通信大会(简称“MWC 上海”)启幕。「Paraverse平行云」参与组织并主持了本次大会中【未来数字世界中的社交,游戏与娱乐】的主题会议。 「Paraverse平行云」携手上海交通大学、…

ChatGPT 提示词设置

提示词 Prompt(提示词):当我们询问GPT时,发送的消息就是Prompt。 通过给出合适的Prompt,可以让GPT了解我们的想法,在根据我们的想法做出更加合适的判断,帮助我们完成任务,提高效率。…

el-tab-pane 和el-tooltip及el-tree 组合使用

<el-tabs v-model"groupId" tab-click"handleClick"><el-tab-pane label"全部" name"0"></el-tab-pane><el-tab-pane v-for"items in editableTabs" :key"items.group_id" :name"item…

MySQL注入-SQLi-Less1笔记

前置知识点&#xff1a; 1. SELECT 1,2,3 用于查询数据通道的方式 例如Less-1中,Secury数据库中的users表结构如下&#xff0c;可以看到有散列&#xff0c;当用户在页面输入id的时候&#xff0c;会查询到对应的散列数据也就是<id>/<username>/<password>&a…

分布式监控zabbix的使用(一)

zabbix 一、添加zabbix客户端主机&#xff0c;测试是否能连接服务端和客户端都设置 hosts 解析设置 zabbix 的下载源&#xff0c;安装 zabbix-agent2修改 agent2 配置文件通过键值测试连通性在 Web 页面中添加 agent 主机 二、自定义监控内容在客户端创建自定义key 三、在web页…

Lion:闭源大语言模型的对抗蒸馏

Lion&#xff1a;闭源大语言模型的对抗蒸馏 Lion&#xff0c;由香港科技大学提出的针对闭源大语言模型的对抗蒸馏框架&#xff0c;成功将 ChatGPT 的知识转移到了参数量 7B的 LLaMA 模型&#xff08;命名为 Lion&#xff09;&#xff0c;在只有 70k训练数据的情况下&#xff0…

微服务网关技术选型:Zuul2、Gateway、OpenResty、Kong

1、简介 当使用单体应用程序架构时&#xff0c;客户端&#xff08;Web 或移动端&#xff09;通过向后端应用程序发起一次 REST 调用来获取数据。负载均衡器将请求路由给 N 个相同的应用程序实例中的一个。然后应用程序会查询各种数据库表&#xff0c;并将响应返回给客户端。微…

443端口被占用,vmware居然也来捣乱

今天搬砖时发现应用起不来了&#xff0c;显示出了熟悉的error *************************** APPLICATION FAILED TO START ***************************~~重点在这块哈 Description:Web server failed to start. Port 443 was already in use.Action:Identify and stop the p…

Modbus tcp转ETHERCAT在Modbus软件中的配置方法

Modbus tcp和ETHERCAT是两种不同的协议&#xff0c;这给工业生产带来了很大的麻烦&#xff0c;因为这两种设备之间无法通讯。但是&#xff0c;远创智控YC-ECT-TCP网关的出现&#xff0c;却为这个难题提供了解决方案。 YC-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中…

Android之WebView加载PDF链接预览PDF文件

文章目录 前言一、效果图二、实现步骤1.在项目main目录下新建一个assets2.新建一个js为index.js3.新建一个HTML为index.html4.xml布局4.Activity类&#xff08;kotlin&#xff09;5.Activity类&#xff08;Java&#xff09; 总结 前言 Android的webview压根就不支持加载pdf&am…

基于单片机的智能空调系统的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;LCD1602液晶显示当前水温&#xff0c;定时提醒&#xff0c;水量变化DS18B20检测当前水体温度&#xff1b;水位传感器检测当前水位&#xff1b;继电器驱动加热片进行水温加热&#xff1b;定时提醒喝水&#xff0c;蜂鸣器报警&#x…

详解HTTP协议和HTTPS协议

目录 一.HTTP协议 1.什么是HTTP 2.HTTP发展历史 3.HTTP请求和响应 4. 抓包的方式和工具Fiddler 1.开发者工具 2.Fiddler 二.请求和响应 1.请求和响应报文 2.URL结构 3.常见的方法 1.GET方法 2.POST方法 3.其他方法 三.请求报头(header) 1.Host 2.Content-Length 3.Co…

python自动化办公——定制化将电子签名批量签写到PDF文件

python自动化办公——定制化将电子签名批量签写到PDF文件 文章目录 python自动化办公——定制化将电子签名批量签写到PDF文件1、安装依赖2、需求分析3、代码 1、安装依赖 首先需要下载所需要的库 pip install pdf2image pip install img2pdf pip install opencv-python此外还…

vue + el-table点击表头改变其当前样式

废话不多说&#xff0c;先看效果&#xff1a; 网上找了一大圈没有符合的&#xff0c;只能自己看着搞&#xff1a; 直接贴代码&#xff1a; <el-tableref"table":data"tableData"borderstripesort-change"changeColumn"><el-table-colu…

springMVC(二)—— 进阶

一、解决中文乱码问题 解决中文乱码问题的关键在于判断字符是什么时候乱码的 先在java程序里刚生成这个值的地方打印一下&#xff0c;如果在控制台输出就乱码了&#xff0c;那就排除浏览器和jsp页面的编码出问题。否则 看浏览器的编码 看这个jsp页面的编码是否设置好了 一般不用…

简要介绍 | 两阶段点云目标检测:理论与实践

注1&#xff1a;本文系“简要介绍”系列之一&#xff0c;仅从概念上对两阶段点云目标检测进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解。 两阶段点云目标检测&#xff1a;理论与实践 在这篇博客中&#xff0c;我们将探索两阶段点云目标检测的理论基础和实际应用…

cancal 同步mysql数据到es中

1.环境&#xff1a; windocs service2012 、 jdk版本1.8 、canal版本1.5、mysql版本5.7、 注意&#xff1a;canal版本1.5需要的jdk是1.8 如果你下载的是canal1.6&#xff0c;jdk是1.8&#xff0c;那样会报错。 下载地址 Releases alibaba/canal GitHub 下载并上传到服…

创建数据库Market、Team,按要求完成指定操作

创建数据库Market&#xff0c;在Market中创建数据表customers&#xff0c;customers表结构如表4.6所示&#xff0c;按要求进行操作。 代码如下&#xff1a; #(1&#xff09;创建数据库Market mysql> create database Market; Query OK, 1 row affected (0.00 sec)mysql>…

Java阶段五Day02

Java阶段五Day02 文章目录 Java阶段五Day02MAVEN-聚合(多模块3)回顾多模块2个特性依赖:继承: 聚合场景聚合目的实现聚合聚合总结 远程仓库远程仓库概念配置settings.xml远程库配置注意事项 GIT详细学习git概括git历史本地版本控制相关命令git分支管理分支管理基本概念分支管理相…