位置: 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 固定滚动到底部,随着页面内容增多滚动条自己滚动展示最新的内容

  • 华为mate40epro怎么把健康码添加到桌面(华为mate40pro e)

    华为mate40epro怎么把健康码添加到桌面(华为mate40pro e)

  • opporeno4怎么关机(opporeno4怎么关机开机)

    opporeno4怎么关机(opporeno4怎么关机开机)

  • 电脑电源键坏了怎么重启(电脑电源键坏了怎么重启手机)

    电脑电源键坏了怎么重启(电脑电源键坏了怎么重启手机)

  • 淘宝直播回放还能再买吗(淘宝直播回放还能领优惠券吗)

    淘宝直播回放还能再买吗(淘宝直播回放还能领优惠券吗)

  • 华为手环能连接苹果手机吗(华为手环能连接oppo手机吗)

    华为手环能连接苹果手机吗(华为手环能连接oppo手机吗)

  • 小米10屏幕分辨率是2k吗(小米10屏幕分辨率是几k)

    小米10屏幕分辨率是2k吗(小米10屏幕分辨率是几k)

  • 复制按什么键(复制按什么键粘贴按什么键)

    复制按什么键(复制按什么键粘贴按什么键)

  • 微信重新登录显示未注册(微信重新登录显示操作频繁)

    微信重新登录显示未注册(微信重新登录显示操作频繁)

  • 在windows 7中什么是操作系统的控制管理中心(在windows 7的什么中可供用户)

    在windows 7中什么是操作系统的控制管理中心(在windows 7的什么中可供用户)

  • guid和mbr格式有什么区别(guid和mbr格式有什么区别 uefi)

    guid和mbr格式有什么区别(guid和mbr格式有什么区别 uefi)

  • ipad卡槽弄不出来怎么办(ipadpro卡槽弹不出来)

    ipad卡槽弄不出来怎么办(ipadpro卡槽弹不出来)

  • 抖音企业认证有什么用(抖音企业认证有效期到期该怎么办)

    抖音企业认证有什么用(抖音企业认证有效期到期该怎么办)

  • 第四代电子计算机使用的电子元件是(第四代电子计算器所用的电子元器件是)

    第四代电子计算机使用的电子元件是(第四代电子计算器所用的电子元器件是)

  • 如何卸载小米视频(卸载小米视频会卡米吗)

    如何卸载小米视频(卸载小米视频会卡米吗)

  • 怎么取消报告垃圾短信(怎么取消报告垃圾信息提醒)

    怎么取消报告垃圾短信(怎么取消报告垃圾信息提醒)

  • vue视频保存相册找不到(vue保存不了视频咋整)

    vue视频保存相册找不到(vue保存不了视频咋整)

  • 苹果11pro max和11pro区别(苹果11pro max和11pro的区别)

    苹果11pro max和11pro区别(苹果11pro max和11pro的区别)

  • 抖音很卡怎么回事(抖音很卡怎么处理)

    抖音很卡怎么回事(抖音很卡怎么处理)

  • 新换的路由器连不上网(新换的路由器连上wifi没网)

    新换的路由器连不上网(新换的路由器连上wifi没网)

  • emui10什么时候出(emui10什么时候发布的)

    emui10什么时候出(emui10什么时候发布的)

  • 考驾照手机号被占用怎么办(考驾照电话号码被注册了怎么办)

    考驾照手机号被占用怎么办(考驾照电话号码被注册了怎么办)

  • TransUnet官方代码测试自己的数据集(已训练完毕)(transit code)

    TransUnet官方代码测试自己的数据集(已训练完毕)(transit code)

  • 印花税税源明细表怎么填
  • 专票上不小心印上字了,怎么去除
  • 房地产预售啥意思
  • 企业向个人借款是否合法
  • 项目部电缆属于固定资产吗
  • 工伤退费是什么意思
  • 企业所得税汇总纳税分配比例
  • 产成品入库金额和售价一样嘛
  • 小规模纳税人帮别人报关
  • 社保扣除的是当月还是上个月的
  • 商业银行退出
  • 发票先收到下个月才付款
  • 公司购买设备24套
  • 印花税票计税依据含税吗?
  • 企业所得税清算是什么意思
  • 税务局领普通发票需要多少钱
  • 业务招待费可以结转下年抵扣吗
  • 投标报价里税金和税率是一个吗
  • 小规模减免附加税会计分录怎么做
  • 安装费要交税吗
  • 委托贷款利息收入怎么开发票
  • 广告公司 成本
  • 税前可以扣除的业务招待费怎么算
  • 借方和贷方是什么意思银行存款
  • 小规模企业所得税按季度还是按年
  • 华为p60pro上市时间是几月
  • 企业收到的政府补贴,怎么入账
  • mac如何连接2个airpods
  • 怎么给分区
  • windows11永久解决蓝屏
  • 详谈php编码转换过程
  • 预收和应收怎么转换
  • 年终奖税务筹划合法吗
  • 转售股票会计分录
  • 收到短期借款会计分录怎么写
  • 落基山国家公园攻略
  • smart局部变量
  • icse论文
  • 气温和降水空间变化一月平均气温规律是什么原因是什么
  • 微软调整bing输入字数
  • 应交税费应交增值税销项税额
  • 房地产开发企业的了解概述
  • php上传大视频
  • 应交税费的分析应重点关注企业
  • 印花税报少了交税了怎么办
  • sqlserver远程连接失败
  • /kill @p
  • 固定资产减少处理
  • 企业逾期贷款利息影响征信吗
  • 预付和挂账如何区分
  • 期末未缴税额为正是什么意思
  • sql server如何判断数据库是否存在
  • win7 32位旗舰版电脑城下载
  • 任务管理器已被管理员禁用怎么办
  • windows xp 2021 r3
  • ubuntu安装office2019
  • macos安装pip
  • 电脑avg是什么软件
  • Linux操作系统之rm命令详解
  • 查看win8.1版本
  • find按照文件大小查找
  • members-area.exe是什么进程 members-area进程查询
  • win7开机没反应怎么办
  • windows8使用技巧
  • 列举linux常用的几个命令
  • win7玩英雄联盟卡顿怎么解决
  • win10ipv4 ipv6无internet访问权限
  • cocos creator js ts
  • javascript 数组操作
  • jquery提交表单调用serialize方法
  • python元组和数组
  • vue2.x
  • CentOS下mysql定时备份Shell脚本分享
  • c语言深入剖析
  • js使用正则表达式对json对象的校验
  • 使用灭火器时要对准火焰的什么部位喷射
  • 福建电子税务局社保缴费操作
  • 国家电子税务局江苏省电子税务局
  • 保险代理人非公司员工
  • 不予处罚不予立案
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设