GPT 浅析

GPT 浅析

文章目录

  • GPT 浅析
    • GPT 1
      • 无监督预训练
      • 有监督微调
      • 任务相关的输入变换
    • GPT2
    • GPT3

GPT 1

在模型架构上,GPT-1基于Transformer构造,这是因为与其他卷积神经网 络或者循环神经网络相比,Transformer提供了效率更高的方法来处理文本 中的长期依赖关系。

预训练技术:GPT-1使用了一种称为“生成式预训练”(Generative Pre-Training,GPT)的技术。预训练分为两个阶段:预训练和微调(fine-tuning)。

在预训练阶段,GPT-1使用了大量的无标注文本数据集,例如维基百科和网页文本等。通过最大化预训练数据集上的对数极大似然概率来训练模型参数。在微调阶段,GPT-1将预训练模型的参数用于特定的自然语言处理任务,如文本分类和问答系统等。

多层模型:GPT-1模型由多个堆叠的Transformer编码器组成,每个编码器包含多个注意力头和前向神经网络。这使得模型可以从多个抽象层次对文本进行建模,从而更好地捕捉文本的语义信息。

无监督预训练

给定一个无监督的语料数据集 U = { u 1 , u 2 , . . . , u n } \mathbf{U}=\{\boldsymbol{u}_1,\boldsymbol{u}_2,...,\boldsymbol{u}_n\} U={u1,u2,...,un}, GPT-1使用标准的语言模型进行训练,也就是最大化如下似然估计:

L 1 ( U ) = ∑ i l o g P ( u i ∣ u i − k , . . . , u i − 1 ; θ ) L_1(\mathbf{U})=\sum_ilogP(\boldsymbol{u}_i|\boldsymbol{u}_{i-k},...,\boldsymbol{u}_{i-1};\boldsymbol{\theta}) L1(U)=ilogP(uiuik,...,ui1;θ)
其中, k k k 表示上下文窗口的大小,P表示条件概率, θ \theta θ是网络的参数,采用梯度下降法进行训练。

GPT-1使用一个多层Transformer解码器进行语言建模,该模型对输入上 下文使用多头自注意力机制,然后使用前馈神经网络预测目标单词的概 率分布,建模过程如下:
h 0 = U W e + W p h l = t r a n s f o r m e r _ b l o c k ( h l − 1 ) P ( U ) = s o f t m a x ( h n W e T ) \begin{aligned} \boldsymbol{h}_0&=\boldsymbol{UW}_e+\boldsymbol{W}_p\\ \boldsymbol{h}_l&=transformer\_block(\boldsymbol{h}_{l-1})\\ P(\boldsymbol{U})&=softmax(\boldsymbol{h}_n\boldsymbol{W}_e^T) \end{aligned} h0hlP(U)=UWe+Wp=transformer_block(hl1)=softmax(hnWeT)
其中, W e W_e We是一个单词向量矩阵, W p W_p Wp是位置向量矩阵, U U U 表示输入文本的上下文向量, n n n​是网络层数。

有监督微调

在使用上述方法进行预训练之后,GPT-1采用有监督微调方法将参数调整到更适合下游任务的状态

假设现在有某个有标记的样本集 C C C,其中每个样本由一系列的输入单词 { x 1 , x 2 , . . . , x m } \{x^1,x^2,...,x^m\} {x1,x2,...,xm}和一个标签 y y y组成,那么输入单词序列首先被送入在前一个阶段预训练好的模型中得到一个状态向量 h l m h_l^m hlm,接着被送入一个线性层进行结果预测:
P ( y ∣ x 1 , x 2 , . . . , x m ) = s o f t m a x ( h l m W y ) P(y|x^1,x^2,...,x^m)=softmax(h_l^mW_y) P(yx1,x2,...,xm)=softmax(hlmWy)
基于此,有监督微调阶段的目标函数就是:
L 2 ( C ) = ∑ ( x , y ) l o g P ( y ∣ x 1 , x 2 , . . . , x m ) L_2(\mathbf{C})=\sum_{(x,y)}logP(\mathbf{y}|\mathbf{x}^1,\mathbf{x}^2,...,\mathbf{x}^m) L2(C)=(x,y)logP(yx1,x2,...,xm)
与此同时,GPT-1的设计人员发现,在有监督微调阶段将语言模型作为微调的辅助目标能够进一步提升模型的泛化能力,并且可以加速收敛帮助学习。最终,在有监督微调阶段,模型的训练目标变为:
L 3 ( C ) = L 2 ( C ) + λ × L 1 ( C ) \begin{aligned}L_3(\mathbf{C})=L_2(\mathbf{C})+\lambda\times L_1(\mathbf{C})\end{aligned} L3(C)=L2(C)+λ×L1(C)
其中 λ \lambda λ是权重系数。

任务相关的输入变换

对于像文本分类一样的任务,可以按照上述有监督微调阶段所提到的方法进行微调,但是像问答、文本蕴含等自然语言理解任务,则需要在输 入阶段进行相应的设计和修改,才可以将GPT模型进行应用。

在微调阶段,所有任务的输入都增加了特殊的Token作为输入的开始 [start]和结束[extract]。

  • 对于文本分类任务,将起始和终止token加入到原始序列两端,输入transformer中得到特征向量,最后经过一个全连接得到预测的概率分布

  • 对于文本蕴含任务,设计者将前提和假设进行拼接,然后在二者之间增 加了一个特殊标记“Delim” 。

  • 对于文本相似度计算任务,由于被计算相似度的两个句子之间没有前后顺序关系,所以对同一对数据进行了不同顺序的拼接,最后使用线性化得到相似度得分。特别地,输入时两个句子之间增加了特殊标记 “Delim” ,用来区分前后两个句子。

  • 对于多项选择的问答任务,将每个候选答案与问题和原文片段进行拼接, 得到相应的向量表示,最后使用Softmax函数在候选答案范围中进行结 果概率预测。

image-20240415235312343

在模型实现细节上,GPT-1很大程度上遵循了原始的Transformer工作模式, 训练了一个具有掩码自注意力机制的12层仅包含解码器的Transformer。对 于前馈神经网络,使用了3072维的内部状态,使用最大学习率为2.5×10-4 的Adam优化方案。

GPT2

GPT-2提供了一种更为灵活和通用的形式来指定任务、输入和输出,避免了算法级别的任务定制。如在机器翻译任务中,模型的输入可以被设定为 “请翻译为法语、英语原文内容、对应法语内容”;在机器阅读理解任务 中,训练样本可以被写成“问题的答案、问题、原文、答案” 。

GPT-2的思想本质上就是早期的指令微调(Prompt Finetuning)方法,这种做法可以使得模型学习在遇到类似的提示语之后,应该输出什么样的内 容。

在模型实现上,GPT-2仍然使用Transformer作为主干模型,与GPT-1的整体架构类似,只进行了少量修改,包括层归一化被移到每个块的输入部分, 起到类似预激活的作用,在最终的自注意力块之后又增加了额外的层归一化,同时Transformer的Decoder层数从GPT-1的12层增加到了24层、36 层和48层。

GPT3

GPT-3的主要目标是使用更少的领域数据,且不经过微调去解决问题。它沿用GPT-2的模型和训练方法,将模型参数大小从GPT-2的15亿个升级到1750亿。

在几十个自然语言处理数据集上对GPT-3进行了评估,包括三种设置:

  1. 零样本学习(Zero-shot Learning):不允许展示具体的任务样本,只告知模型自然语言表示的指令;
  2. 单样本学习(One-shot Learning): 只允许向模型展示一个样本;
  3. 小样本学习(Few-shot Learning): 允许尽可能多的向模型展示样本(大概在10-100个之间)。

在开发GPT-3的过程中,研究人员发现,模型增大之后,引入一些质量较差的数据带来的负面影响变小了,因此与GPT-1和GPT-2相比,GPT-3开始使用Common Crawl数据集进行训练。

image-20240416090215933

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

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

相关文章

几年前删除的照片如何恢复?5步操作,快速找回iPhone照片

“去年三月份参加了社区的志愿者活动拍了好几张照片,近期学校组织我申报市级优秀学生需要我的参加志愿者的照片当材料,但是照片在一年前就删掉了。删除的时间比较久,各位有没有什么方法可以恢复苹果手机的照片?” 在使用苹果手机的…

rk3588 安卓调试

rknn装上了android系统,用type-c usb连接上电脑,设备管理器发现了rk3588,但是Android Studio没有发现设备 后来怀疑是驱动没有安装,我用的驱动下载地址: 瑞芯微Rockchip驱动安装助手(适用于RK3308 RK3399等) Mcuzone…

使用Python实现集成学习算法:Bagging与Boosting

集成学习是一种机器学习方法,它通过结合多个弱学习器来构建一个强大的模型,从而提高预测的准确性和稳定性。在本文中,我们将介绍两种常见的集成学习算法:Bagging(自举聚合)和Boosting(提升法&am…

还有同学开题报告没写吗?

引言 作为一名在软件技术领域深耕多年的专业人士,我不仅在软件开发和项目部署方面积累了丰富的实践经验,更以卓越的技术实力获得了🏅30项软件著作权证书的殊荣。这些成就不仅是对我的技术专长的肯定,也是对我的创新精神和专业承诺…

springboot 文件上传Linux环境报错

java.io.IOException: Malformed input or input contains unmappable characters: /data/upload_file/upload/2020/04/16/测试专用_20240416114011A001.pdf程序部署到Linux环境下,文件上传报错,这是因为服务器编码问题。 使用命令查看服务器编码&#x…

【智能算法】鸭群算法(DSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年,Zhang等人受到自然界鸭群觅食行为启发,提出了鸭群算法(Duck Swarm Algorithm, DSA)。 2.算法原理 2.1算法思想 DSA基于自然界鸭群觅食过程&…

matplotlib手动调用默认配色

matplotlib 画图有个默认配色方案,在画不同图时会保持一致。如: import numpy as np import matplotlib.pyplot as plt# 图 1 数据 x np.arange(12).astype(np.float32) 1 y1 np.log(x) y2 1 / x y3 np.sin(x) # 图 2 数据 a np.random.randn(200…

十万栋BIM建筑同屏加载!AMRT3D引擎领跑,强力赋能数字孪生

AMRT3D数字孪生引擎https://www.amrt3d.com/#/ AMRT3D是让用户轻松搭建智慧城市、智慧工厂、CIM系统等类型应用的轻量化图形引擎,通过基于自主研发三维底层技术支持,可以让数字化、可视化项目轻松运行在Web等多平台。 它提供了百余种3D功能,…

GpuMall智算云在GPU云领域有哪些核心技术?

GpuMall智算云领域拥有多项核心技术,这些技术共同构成了其强大且高效的GPU算力服务平台。以下是一些GpuMall智算云领域的核心技术: GpuMall智算云 | 省钱、好用、弹性。租GPU就上GpuMall,面向AI开发者的GPU云平台 1. GPU算力资源池化技术 GpuMall利用…

公园高速公路景区校园IP网络广播音柱SIP音柱

公园高速公路景区校园IP网络广播音柱SIP音柱 适用于学校、车站、教堂、工厂、仓库、公园停车场及露天市场高速公路等场所播放录制语音文件或背景音乐节目,专业一体化音箱设计,高强度防水设计,符合IP54防护等认证,数字化产品&…

银河麒麟服务器系统中mysql数据库使用gdb内存回收报错问题处理

银河麒麟服务器系统中mysql数据库使用gdb内存回收报错问题处理 一 系统环境二 问题现象三 分析原因四 解决方法 问题描述:在系统中执行回收命令(gdb --batch --pid pidof mysqld --ex ‘call malloc_trim(0)’;)报错’malloc_trim’ has unkn…

C++设计模式|创建型 2.工厂模式

1.简单工厂思想 简单工厂模式不属于23种设计模式之⼀,更多的是⼀种编程习惯。它的核心思想是将产品的创建过程封装在⼀个⼯⼚类中,把创建对象的流程集中在这个⼯⼚类⾥⾯。卡码网将其结构描述为下图所示的情况: 简单⼯⼚模式包括三个主要⻆⾊…

有且仅有的10个常见的排序算法,东西不多,怎么就背不下来呢

就这么跟你说吧,面试中肯定会出排序算法的算法题,你只需要背下来代码背下来他们的时间复杂度和空间复杂度就能蒙混过关。 不管你是前端还是后端,关于排序的算法有且仅有这 10个,如果你用心了,怎么会记不住呢。看完这篇…

docker安装并跑通QQ机器人实践(2)-签名服务器bs-qsign搭建

在前文中,我们详尽阐述了QQ机器人的搭建过程及其最终实现的各项功能展示。接下来,我们将转向探讨该项目基于Docker构建服务的具体实践。本篇将以QQ机器人签名服务——qsign为起点,逐步展开论述。 1 获取和运行 xzhouqd/qsign:8.9.63 镜像 1.…

社交媒体数据恢复:YY语音

YY语音数据恢复指南 在我们的日常生活中,数据丢失是一种常见的现象。有时候,我们可能会不小心删除了重要的文件,或者因为硬件故障而导致数据丢失。在这种情况下,数据恢复软件可以帮助我们找回丢失的数据。本文将重点介绍如何使用Y…

Element中DatePicker日期选择器跨度只能选一年如何实现?

只需要给标签加上pickerOptions&#xff0c;当前时间日期选择器特有的选项参考下表 <el-date-pickerv-model"FormData.time"value-format"yyyy:MM:DD":picker-options"pickeroptions"type-"daterange"range-separator"至"…

C# Winform DataGridView的列顺序,在运行时/数据源绑定后被改变的问题

如题&#xff1a; C# Winform DataGridView的列顺序&#xff0c;在运行时/数据源绑定后被改变的问题&#xff0c;这个问题对于需要控制列顺序的人来说&#xff0c;如果找不到原因&#xff0c;你就会发现一直都控制不了列的顺序。 当然&#xff0c;你可能也有事件处理程序或者…

Day91:API攻防-接口安全SOAPOpenAPIRESTful分类特征导入项目联动检测

目录 API分类特征-SOAP&OpenAPI&RESTful API分类特征 API常见漏洞 API检测流程 API检测项目-Postman&APIKit&XRAY 工具自动化-SOAP - WSDL Postman 联动burpxray APIKit插件(可联动xray) 工具自动化-OpenApi - Swagger Postman 联动burpxray APIKit…

【可实战】测试体系与测试方案设计(业务按公司实际情况,技术可参考通用测试方案)

一、如果我们要测试一个系统&#xff0c;首先我们要了解被测系统的架构 &#xff08;一&#xff09;业务架构-从需求里面去了解&#xff08;角色和行为&#xff09;&#xff1a; 业务模型分析&#xff08;是一个电商&#xff0c;还是一个企业的crm&#xff0c;还是一个网站&a…

科技驱动未来,提升AI算力,GPU扩展正当时

要说这两年最火的科技是什么&#xff1f;我想“AI人工智能”肯定是最有资格上榜的&#xff0c;尤其ChatGPT推出后迅速在社交媒体上走红&#xff0c;短短5天&#xff0c;注册用户数就超过100万&#xff0c;2023年一月末&#xff0c;ChatGPT的月活用户更是突破1亿&#xff0c;成为…