位置: IT常识 - 正文

GPT模型总结【模型结构及计算过程_详细说明】(gpt详解)

编辑:rootadmin
GPT模型总结【模型结构及计算过程_详细说明】 GPT模型

推荐整理分享GPT模型总结【模型结构及计算过程_详细说明】(gpt详解),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:gpt3 模型大小,gpt2模型大小,gpt3 模型大小,gpd模型,gpt3模型结构,gpt-2模型,gpt 模型,gpt 模型,内容如对您有帮助,希望把文章链接给更多的朋友!

GPT模型:生成式预训练模型(Generative Pre-Training)

总体结构:

无监督的预训练 有监督的下游任务精调

核心结构:中间部分主要由12个Transformer Decoder的block堆叠而成

下面这张图更直观地反映了模型的整体结构:

模型描述

GPT 使用 Transformer的 Decoder 结构,并对 Transformer Decoder 进行了一些改动,原本的 Decoder 包含了两个 Multi-Head Attention 结构,GPT 只保留了 Mask Multi-Head Attention,如下图所示。 (很多资料上说类似于decoder结构,因为采用了decoder的mask机制,不过抛开这一点,其实感觉和encoder会更像,所以实现时有时反而是调encoder实现 莫烦Python GPT实现代码)

对比原有transformer的结构

阶段描述预训练阶段:

预训练阶段为文本预测,即根据已有的历史词预测当前时刻的词,7-2,7-3,7-4三个式子对应之前的GPT结构图,输出P(x)为输出,每个词被预测到的概率,再利用7-1式,计算最大似然函数,据此构造损失函数,即可以对该语言模型进行优化。

下游任务精调阶段

损失函数

下游任务与上游任务损失的线性组合

计算过程:输入Embedding多层transformer的block拿到两个输出端结果计算损失反向传播更新参数

一个具体的GPT实例代码: 可以看到GPT模型的forward函数中,首先进行Embedding操作,然后经过12层transformer的block中进行运算,然后分别经过两个线性变换得到最终计算值(一个用于文本预测,一个用于任务分类器),代码与最开始展示的模型结构图保持一致。 参考:莫烦Python GPT实现代码 下面我们着重关注计算步骤2, 3

计算细节:【Embedding层】:GPT模型总结【模型结构及计算过程_详细说明】(gpt详解)

查表操作 Embedding层就是以one hot为输入、中间层节点为字向量维数的全连接层。而这个全连接层的参数,就是一个“字向量表”。 one hot型的矩阵相乘,就像是相当于查表,于是它直接用查表作为操作,而不写成矩阵再运算,这大大降低了运算量。再次强调,降低了运算量不是因为词向量的出现,而是因为把one hot型的矩阵运算简化为了查表操作。

【GPT中类似transformer的decoder层】:

每个decoder层包含两个子层

sublayer1: mask的多头注意力层sublayer2: ffn (feed-forward network)前馈网络(多层感知机)sublayer1:mask的多头注意力层

输入: q, k, v, mask 计算注意力:Linear(矩阵乘法)→Scaled Dot-Product Attention→Concat(多个注意力的结果, reshape )→Linear(矩阵乘法)

残差连接和归一化操作:Dropout操作→残差连接→层归一化操作

计算过程:

下面这段内容介绍了计算注意力的整体过程:

分解说明:Mask Multi-head Attention1.矩阵乘法:

将输入的q,k,v进行变换

2.Scaled Dot-Product Attention

主要就是进行attention的计算以及mask的操作 Mask操作:masked_fill_(mask, value) 掩码操作,用value填充tensor中与mask中值为1位置相对应的元素。mask的形状必须与要填充的tensor形状一致。(这里采用-inf填充,从而softmax之后变成0,相当于看不见后面的词) transformer中的mask操作

mask后可视化矩阵: 直观理解是每个词只能看到它之前的词(因为目的就是要预测未来的词嘛,要是看到了就不用预测了)

3.Concat操作:

综合多个注意力头的结果,实际上是对矩阵做变换:permute,reshape操作,降维。(如下图红框中所示)

4.矩阵乘法:一个Linear层,对注意力结果线性变换

整个mask多头注意力层的代码: 注意到:上述代码中后面几行是对注意力结果进行残差连接和归一化操作 下说明这一过程:

残差连接和归一化操作:5.Dropout层6.矩阵加法7.层归一化

批量归一化是不同训练数据之间对单个神经元的归一化,层归一化是单个训练数据对某一层所有神经元之间的归一化。 输入归一化、批量归一化(BN)与层归一化(LN)

代码展示:

sublayer2: ffn (feed-forward network)前馈网络1.线性层(矩阵乘法)2.relu函数激活3.线性层(矩阵乘法)4.Dropout操作5.层归一化

【线性层】:

多层block的输出结果放到两个线性层中进行变换,比较简单,不做赘述。

补充:注意力层流程图示

参考资料

1.参考论文:Radford et al. 《Improving Language Undersatnding by Generative Pre-Training"》 2.参考书籍:《自然语言处理 基于预训练模型的方法》车万翔,郭江,崔一鸣 3.本文中代码来源:莫烦Python GPT实现代码 4.其它参考链接(博文中已提到部分): word embedding计算过程剖析 Transformer的矩阵维度分析和Mask详解

本文链接地址:https://www.jiuchutong.com/zhishi/293129.html 转载请保留说明!

上一篇:LangChain与大型语言模型(LLMs)应用基础教程:信息抽取

下一篇:CSS: overflow-anchor 固定滚动到底部,随着页面内容增多滚动条自己滚动展示最新的内容

  • 联想k3蓝牙音箱如何串联(联想k3蓝牙音箱说明书)

    联想k3蓝牙音箱如何串联(联想k3蓝牙音箱说明书)

  • 腾讯会议电脑版怎么开启摄像头(腾讯会议电脑版怎么关闭声音)

    腾讯会议电脑版怎么开启摄像头(腾讯会议电脑版怎么关闭声音)

  • 佳能ts3180显示p03

    佳能ts3180显示p03

  • 微信表情包怎么更新(微信表情包怎么删除)

    微信表情包怎么更新(微信表情包怎么删除)

  • cpu风扇弹簧螺丝拧不上(cpu风扇弹簧螺丝怎么拆)

    cpu风扇弹簧螺丝拧不上(cpu风扇弹簧螺丝怎么拆)

  • xposed框架可以干嘛(xposed框架可以干啥)

    xposed框架可以干嘛(xposed框架可以干啥)

  • qq音乐版权限制什么意思(qq音乐权限失效是什么情况)

    qq音乐版权限制什么意思(qq音乐权限失效是什么情况)

  • 荣耀30怎么插卡(荣耀30怎么上卡槽)

    荣耀30怎么插卡(荣耀30怎么上卡槽)

  • 苹果11大陆上市时间(苹果大陆上市时间)

    苹果11大陆上市时间(苹果大陆上市时间)

  • 微信的键盘怎么点不出来什么原因(微信的键盘怎么变小了)

    微信的键盘怎么点不出来什么原因(微信的键盘怎么变小了)

  • qq群可以加多少人(qq群可以加多少人上限)

    qq群可以加多少人(qq群可以加多少人上限)

  • 国际版qq和qq有什么区别(国际版qq有什么区别)

    国际版qq和qq有什么区别(国际版qq有什么区别)

  • 多张图片怎么发朋友圈(抖音多张图片怎么发)

    多张图片怎么发朋友圈(抖音多张图片怎么发)

  • 微信语音关闭麦克风对方知道吗(微信语音咋闭麦)

    微信语音关闭麦克风对方知道吗(微信语音咋闭麦)

  • 字处理软件是系统软件吗(字处理软件概述)

    字处理软件是系统软件吗(字处理软件概述)

  • 收款记录怎么加好友(收款记录怎么加微信)

    收款记录怎么加好友(收款记录怎么加微信)

  • r7 240相当于什么n卡(r7 240相当于什么卡)

    r7 240相当于什么n卡(r7 240相当于什么卡)

  • 安卓手机充电口类型(安卓手机充电口修一下多少钱)

    安卓手机充电口类型(安卓手机充电口修一下多少钱)

  • 计算器上off代表什么(计算器上off是什么)

    计算器上off代表什么(计算器上off是什么)

  • 手机怎么改图片底色(手机怎么改图片的kb大小)

    手机怎么改图片底色(手机怎么改图片的kb大小)

  • 文件夹怎样按顺序排列(文件夹怎样按顺序排序)

    文件夹怎样按顺序排列(文件夹怎样按顺序排序)

  • 快手青少年模式怎么关闭(快手青少年模式怎么开启)

    快手青少年模式怎么关闭(快手青少年模式怎么开启)

  • ios13系统省电吗(苹果13.3系统耗电怎么样)

    ios13系统省电吗(苹果13.3系统耗电怎么样)

  • sd卡空间不足怎么清理(sd卡空间不足怎么清理小米)

    sd卡空间不足怎么清理(sd卡空间不足怎么清理小米)

  • 链家app如何不展示我的委托(链家app怎么样)

    链家app如何不展示我的委托(链家app怎么样)

  • 闪聊为什么关闭(闪聊真的可以赚钱吗)

    闪聊为什么关闭(闪聊真的可以赚钱吗)

  • css 隐藏元素(css隐藏元素的方式)

    css 隐藏元素(css隐藏元素的方式)

  • 计算应交增值税并结转未交增值税怎么做用友
  • 生产经营所得个人所得税怎么申报
  • 进项税和销项税税率一样吗
  • 房租租赁房产税由哪方缴纳
  • 所得税汇算清缴补税的会计处理
  • 税控系统的清单
  • 企业所得税税率多少
  • 特定资产收益权融资业务
  • 未分配利润借方表示增加还是减少
  • 合并报表汇兑损益怎么填
  • 房地产企业的土地使用税起始时间
  • 出口退税征税
  • 个人投资收益要交所得税吗
  • 电梯增值税率是多少
  • 年终奖专项扣除
  • 广告代理服务计入什么费用
  • 股东未发工资可否提出仲裁
  • 企业外购零部件可以入哪个会计科目核算?
  • 增值税电子发票没有发票专用章
  • 质押已至票据到期日
  • 自查以前年度补税需调帐吗
  • 增值税专用发票和普通发票的区别
  • 企业内部股权划拨流程
  • 固定资产未开发票怎么入账
  • 财务软件税率
  • 发票认证了但是没收到票怎么处理
  • 单用户结构是什么
  • 发财树的养殖方法和浇水视频
  • 公司股权分红会交税吗
  • 长期股权投资初始投资成本和入账价值
  • 个体户变更为有限公司成立时间
  • 代开发票所需的资料?
  • 有关预收账款的会计科目
  • java分页page类
  • 基于stm32f103c8t6的毕业设计
  • 老老实实的人
  • php实现当前页面的快捷键
  • php curl 封装
  • 支付银行贷款利息现金流量表填哪里
  • 企业需要交哪些税种?分别怎么交
  • 预缴个人所得税怎么做分录
  • 其他收入工会经费是什么意思
  • sql server中字符串常量只能用双引号括起来
  • 无偿借贷什么意思
  • 利润表中其他业务利润怎么算
  • 小微企业是怎样自己认定的呢
  • 制造费用的核算内容包括什么
  • 城镇土地使用税怎么算
  • 应付账款长时间不付款怎么处理
  • 销售人员的提成属于什么工资
  • 企业资金占用费利率
  • 诉讼费应计入什么会计科目
  • 发票信息不一致是怎么回事
  • 保本理财产品如何赎回
  • 租赁费属于酌量性固定成本
  • 免税收入包括哪些项目
  • mysql常见报错
  • windows2008 iis安装
  • 怎么才能使牙齿变白
  • flashplayer不能正常运行
  • win7系统如何安装蓝牙驱动
  • [下载转存] 经验本题库源文件下载转存 秒结
  • Ubuntu 32/64位安装音乐标签编辑器Kid3的方法
  • linux的防火墙配置文件
  • 电脑kernel32.dll
  • sed 处理多行
  • win7系统黑屏但电脑一直在运行
  • win7系统怎么操作
  • jquery简单例子
  • java dao框架
  • css颜色值正确的表达形式
  • bat脚本%1
  • 安卓初始化
  • unity怎么录屏
  • java script入门
  • 轻轻松松学习JavaScript
  • 南京退林还耕
  • 为什么需要报税
  • 江苏电子税务局社保缴费查询网站
  • 印花税会计分录怎么做 印花税需要计提吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设