Transformer 相关模型的参数量计算

这篇具有很好参考价值的文章主要介绍了Transformer 相关模型的参数量计算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如何计算Transformer 相关模型的参数量呢?
先回忆一下Transformer模型论文《Attention is all your need》中的两个图。
Transformer 相关模型的参数量计算,深度学习,transformer,深度学习,人工智能
Transformer 相关模型的参数量计算,深度学习,transformer,深度学习,人工智能

设Transformer模型的层数为N,每个Transformer层主要由self-attention 和 Feed Forward组成。设self-attention模块的head个数为 n h e a d n_{head} nhead,每一个head对应的维度为 d h e a d d_{head} dhead,self-attention输出维度为 d m o d e l = n heads ⋅ d head d_{model}= n_\text{heads}\cdot d_\text{head} dmodel=nheadsdhead。我们可以得到一个Transformer层的参数量为 12 d m o d e l 2 + 13 d m o d e l 12 d_{model}^2 + 13 d_{model} 12dmodel2+13dmodel,具体如下:

  • self-attention块的模型参数有Q、K、V的权重矩阵 W Q 、 W K 、 W V W_Q、W_K 、W_V WQWKWV和偏置,输出矩阵 W O W_O WO及其偏置。这4个权重矩阵的大小为 [ d m o d e l , d m o d e l ] [d_{model}, d_{model}] [dmodel,dmodel],4个偏置的大小为 [ d m o d e l ] [d_{model}] [dmodel],所以self-attention块的参数量为 4 d m o d e l 2 + 4 d m o d e l 4 d_{model}^2 + 4 d_{model} 4dmodel2+4dmodel

  • Feed Forward块一般由2个线性层组成,第一个线性层将维度从 d m o d e l d_{model} dmodel 映射成 4 d m o d e l 4d_{model} 4dmodel, 其权重矩阵 W 1 W_1 W1的大小为 [ d m o d e l , 4 d m o d e l ] [d_{model}, 4d_{model}] [dmodel,4dmodel] ,其偏置的大小为 [ 4 d m o d e l ] [4d_{model}] [4dmodel]。 第二个线性层将维度从 4 d m o d e l 4d_{model} 4dmodel 映射成 d m o d e l d_{model} dmodel,其权重矩阵 W 2 W_2 W2的大小为 [ 4 d m o d e l , d m o d e l ] [4d_{model}, d_{model}] [4dmodel,dmodel] ,其偏置的大小为 [ d m o d e l ] [d_{model}] [dmodel]。所以Feed Forward的参数量为 8 d m o d e l 2 + 5 d m o d e l 8 d_{model}^2 + 5 d_{model} 8dmodel2+5dmodel

  • self-attention 和 Feed Forward都跟随着layer normalization,它有两个可训练模型参数,形状都是 [ d m o d e l ] [d_{model}] [dmodel]。所以2个layer normalization的参数量为 4 d m o d e l 4 d_{model} 4dmodel

除了Transformer层之外的参数有:

  • 词embedding矩阵的参数量,embedding的维度通常等于 d m o d e l d_{model} dmodel,设词表的大小为V,则词embedding的参数量为 V d m o d e l Vd_{model} Vdmodel
  • 位置向量相关,有些位置向量表示方式需要学习参数。

所以N层Transformer模型的可训练模型参数量为 N ( 12 d m o d e l 2 + 13 d m o d e l ) + V d m o d e l N(12 d_{model}^2 + 13 d_{model}) + Vd_{model} N(12dmodel2+13dmodel)+Vdmodel。当 d m o d e l d_{model} dmodel较大时,可以忽略一次项,模型参数量近似为 12 N d m o d e l 2 12 N d_{model}^2 12Ndmodel2

最后试验一下模型参数估计量与论文是否对的上,下表是GPT3和LLaMA的计算对比,可以发现数量级是可以对的上的,因为我们忽略了一次项,所以具体数据与论文不一致。

模型名 实际参数量 n l a y e r n_{layer} nlayer d m o d e l d_{model} dmodel n h e a d n_{head} nhead d h e a d d_{head} dhead 估计参数量
GPT-3 175B 96 12288 96 128 173946175488
LLaMA 6.7B 6.7B 32 4096 32 128 6442450944
LLaMA 13.0B 13.0B 40 5120 40 128 12582912000
LLaMA 32.5B 32.5B 60 6656 52 128 31897681920
LLaMA 65.2B 65.2B 80 8192 64 128 64424509440

参考资料

  1. Transformer 论文(模型图来自论文)、GPT3的论文等

  2. 整理过程中参考的blog: 1. 知乎用户回旋托马斯x 的文章,除了计算量外,还算了计算量、中间激活等 , 2 transformer 参数量计算, 3 flops 计算, 4 transformers 参数量计算公式

  3. transfomers 库如何得到参数量文章来源地址https://www.toymoban.com/news/detail-660569.html

到了这里,关于Transformer 相关模型的参数量计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MLP/CNN/RNN/Transformer主流深度学习模型的区别

    1. 多层感知机(MLP) 核心特征 : 结构 :MLP 是一种基本的前馈神经网络,包含一个输入层、一个或多个隐藏层以及一个输出层。每层由全连接的神经元组成。 用途 :适用于简单的分类和回归任务。 限制 :不适用于处理序列数据或图像数据,因为它不具备处理输入之间时间

    2024年04月26日
    浏览(44)
  • BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型

    BIT 是用 transformer 结构进行变化检测的一个孪生网络,它的 backbone 用的是 Resnet 结构,具体结构分析可以参考这个链接的作者写的,非常清楚, http://t.csdn.cn/rA9sH。 下面就是来讲我自己的实现过程,比较简单。 首先,在官网找到相应的代码,下载解压到自己的本地。github上面的

    2024年02月10日
    浏览(42)
  • 深度学习网络模型————Swin-Transformer详细讲解与代码实现

    论文名称 :Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 原论文地址 : https://arxiv.org/abs/2103.14030 官方开源代码地址 :https://github.com/microsoft/Swin-Transformer

    2024年02月14日
    浏览(37)
  • 深度学习笔记之Transformer(六)Position Embedding铺垫:Skipgram与CBOW模型

    上一节介绍了 Word2vec text{Word2vec} Word2vec 模型架构与对应策略。本节将继续介绍 Skipgram text{Skipgram} Skipgram 与 CBOW text{CBOW} CBOW 模型架构。 关于 Word2vec text{Word2vec} Word2vec 模型,它的 任务目标 是基于 语料库 ( Corpus ) (text{Corpus}) ( Corpus ) ,对该语料库对应 词汇表 ( Vocabulary ) (

    2024年02月15日
    浏览(39)
  • 深度学习一点通:PyTorch Transformer 预测股票价格,虚拟数据,chatGPT同源模型

    预测股票价格是一项具有挑战性的任务,已引起研究人员和从业者的广泛关注。随着深度学习技术的出现,已经提出了许多模型来解决这个问题。其中一个模型是 Transformer,它在许多自然语言处理任务中取得了最先进的结果。在这篇博文中,我们将向您介绍一个示例,该示例

    2024年02月06日
    浏览(51)
  • 基于深度学习的乳腺癌淋巴结转移预测模型(E-Transformer)

    乳腺癌细胞淋巴结转移是界定乳腺癌早中期的重要标准 ,需要活检,患者体验较差。 传统的图像辅助诊断需要手动提取特征、组合图像特征,效率低下、效果不佳。新兴的基于深度学习的图像辅助诊断,利用卷积神经网络通过全连接层或机器学习自动分割病灶、提取图像特

    2024年04月17日
    浏览(43)
  • Python使用pytorch深度学习框架构造Transformer神经网络模型预测红酒分类例子

    经典的红酒分类数据集是指UCI机器学习库中的Wine数据集。该数据集包含178个样本,每个样本有13个特征,可以用于分类任务。 具体每个字段的含义如下: alcohol:酒精含量百分比 malic_acid:苹果酸含量(克/升) ash:灰分含量(克/升) alcalinity_of_ash:灰分碱度(以mEq/L为单位)

    2024年02月02日
    浏览(45)
  • 深度学习与计算机视觉的新技术:从卷积神经网络到Transformer

    深度学习是一种人工智能技术,它旨在模拟人类大脑中的神经网络,以解决复杂的问题。计算机视觉是人工智能的一个分支,旨在让计算机理解和解析人类视觉系统中的图像和视频。深度学习与计算机视觉的结合,使得计算机在处理图像和视频方面具有强大的能力。 在过去的

    2024年02月02日
    浏览(52)
  • 深入理解深度学习——BERT派生模型:T5(Text to Text Transfer Transformer)

    分类目录:《深入理解深度学习》总目录 T5的全称为Text to Text Transfer Transformer,是谷歌提出的预训练语言模型领域的通用模型,该模型将所有自然语言问题都转化成文本到文本的形式,并用一个统一的模型解决。为了得到大一统的高质量预训练语言模型,T5不可避免地走上了

    2024年02月10日
    浏览(43)
  • 计算机毕业设计--基于深度学习技术(Transformer、GAN)的破损图像修复算法(含有Github代码)

    本篇文章是针对破损照片的修复。如果你想对老照片做一些色彩增强,清晰化,划痕修复,划痕检测,请参考我的另一篇CSDN作品 老照片(灰白照片)划痕修复+清晰化+色彩增强的深度学学习算法设计与实现 Abstract 在图像获取和传输过程中,往往 伴随着各种形式的损坏 ,降低

    2024年04月23日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包