[LLM]:大模型(Transformer)参数量分析

news2024/9/21 16:19:55

    • 1. 前言
    • 2. 模型参数量

文章内容主要摘自:https://zhuanlan.zhihu.com/p/624740065

1. 前言

最近,OpenAI推出的ChatGPT展现出了卓越的性能,引发了大语言模型(Large Language Model, LLM)的研究热潮。大规模语言模型的“大”体现在两个方面:模型参数规模大,训练数据规模大。以GPT3为例,GPT3的参数量为1750亿,训练数据量达到了570GB。进而,训练大规模语言模型面临两个主要挑战:显存效率和计算效率。

现在业界的大语言模型都是基于transformer模型的,模型结构主要有三大类:

  • encoder-decoder(代表模型是T5)、
  • encoder-only(代表模型是BERT,也叫Masked-Language Model,MLM)以及
  • decoder-only,具体的,decoder-only结构又可以分为Causal LM(因果语言模型-自回归的预测,代表模型是GPT系列)和Prefix LM(代表模型是GLM,UniLM)。归因于GPT系列取得的巨大成功,大多数的主流大语言模型都采用Causal LM结构。
  • img

因此,针对decoder-only框架,为了更好地理解训练训练大语言模型的显存效率和计算效率,本文分析采用decoder-only框架来分析transformer模型的模型参数量、计算量、中间激活值、KV cache。

Transformer 原始架构和decoder-only架构的GPT对比:

Transformer详解:各个特征维度分析推导| Hello World 💓image-20240830162939227

为了方便分析,先定义好一些数学符号。记transformer模型的层数为 l l l ,隐藏层维度为 h h h ,注意力头数为 a a a 。词表大小为 V V V ,训练数据的批次大小为 b b b ,序列长度为 s s s

2. 模型参数量

decoder-only架构的大模型有两部分组成,输入&输出的词嵌入层(大部分模型词嵌入层共享参数)以及堆叠 l l l层的transformer块。

transformer块(上图2所示)由两部分组成:Attention和FFN(MLP),其中穿插了两层LN(Pre-Norm)。

  • Attention模块模型参数包括将输入投影为 Q , K , V Q,K,V Q,K,V的权重矩阵 W Q , W K , W V W_Q,W_K,W_V WQ,WK,WV 和偏置,输出矩阵为 W O W_O WO 和偏置,四个权重矩阵的size为 h × h h\times h h×h,四个偏置的size为 h h h。忽略激活函数,此时Attention模块的参数量为 4 h 2 + 4 h 4h^2+4h 4h2+4h,参数量来源于线性层投影矩阵。
  • FFN模块,由两个线性层组成,第一个线性层: $h \rightarrow 4h $ 权重矩阵和偏置分别为 h × 4 h , 4 h h \times 4h,4h h×4h,4h,第二个线性层: 4 h → h 4h \rightarrow h 4hh 的权重矩阵和参数量为 4 h × h , h 4h \times h,h 4h×h,h。忽略激活函数,此时FFN模块的参数量为 8 h 2 + 5 h 8h^2+5h 8h2+5h
  • 两个LN层,包含了2个可训练模型参数:缩放参数 γ \gamma γ和平移参数 β \beta β ,形状都是 h h h 。2个layer normalization的参数量为 4 h 4h 4h

此外,还包括一个输入输出的词嵌入层,词嵌入层的参数量取决于输入字典的大小 V V V, 参数量为 V h Vh Vh

关于位置编码,如果采用可训练式的位置编码,会有一些可训练模型参数,数量比较少。如果采用相对位置编码,例如RoPE和ALiBi,则不包含可训练的模型参数。我们忽略这部分参数。

综上Transformer decoder模型的**参数量为 12 l h 2 + 13 l h + V h 12lh^2+13lh+Vh 12lh2+13lh+Vh**。当隐藏维度 h h h 较大时,可以忽略一次项,模型参数量近似为 12 l h 2 12lh2 12lh2

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

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

相关文章

Python编码系列—Python代码重构:提升代码质量

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

Leetcode面试经典150题-151.反转字符串中的单词

class Solution {public String reverseWords(String s) {/**先trim一下去掉前后的空格*/String str s.trim();/**转成字符数组 */char[] sArr str.toCharArray();/**先整体倒置*/int l 0;int r sArr.length - 1;reverse(sArr, l, r);/**然后每个单词中逆序 */int left 0;…

SAM 提示框和 Unet的语义分割的融合:自动驾驶车道线分割

1、前言 最近SAM 模型复现的多了,看了不少官方的源码,尝试下SAM和Unet的结合 SAM的提示分割,其实就是在分割的时候,为数据增加一个提示信息,可以是框,点,或者文本等等。这样大模型网络就可以根…

【Python】简单的爬虫抓取

效果:抓取某个学校网站的教授名录,并获取研究方向。 由于网站使用的都是明文,所以抓起来没什么难度,且平时访问量小,很值得用来练习。 代码如下,解释请见注释 import timeimport requests from bs4 impor…

RN开发问题

1、滚动项定位错误 ERROR Invariant Violation: scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, otherwise there is no way to know the location of offscreen indices or handle failures. 原因:已修复&#xff0c…

求一个使用C语言将重力加速度gx,gy,gz积分获取到速度的代码

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

完整指南:CNStream流处理多路并发框架适配到NVIDIA Jetson Orin (一) 依赖库编译、第三方库编译安装

目录 1 jetson-ffmpeg的编译安装与配置--用来做视频编码、视频解码 2 CV-CUDA库的编译安装与配置--用来做图像缩放、裁剪、色域转换 3 cuda cudnn TensorRT相关库的拷贝与配置 3.1将cuda cudnn TensorRT相关的头文件拷贝到工程中 3.2 将cuda cudnn TensorRT相关的库拷贝到…

docker实战基础一

一、docker安装 # step 1: 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装 Doc…

FlowUs:强大图表功能与多维表结合,开启便捷办公新时代

在当今数字化办公的浪潮中,我们一直在寻找一款能够高效整合数据、清晰呈现信息的工具。而 FlowUs 以其强大的图表功能结合多维表的能力,为我们带来了前所未有的便捷体验。 一、多维表:数据管理的强大基石 FlowUs 的多维表功能就像是一个数据魔…

016_Save_the_picture_in_Matlab中保存图片

图片文件 Matlab核心功能包括出图,印刷质量的图片输出是Matlab核心竞争力之一,matplotlib疯狂追赶,但还是差距明显。出图的含义就是:打印或者导出图形窗体的内容,可供后续使用。在Matlab中,这个行为被定义…

弗洛伊德(Floyd)算法(C/C++)

弗洛伊德算法(Floyds algorithm),又称为弗洛伊德-沃尔什算法(Floyd-Warshall algorithm),是一种用于在加权图中找到所有顶点对之间最短路径的算法。这个算法适用于有向图和无向图,并且可以处理负…

[YM]课设-C#-WebApi-Vue-员工管理系统 (五)登录

分析: 请求路径:/login 请求方式:POST 接口描述:该接口用于员工登录Tlias智能学习辅助系统,登录完毕后,系统下发JWT令牌。 > api文档中提到JWT令牌 这个相对来说比较复杂 是用来加密,…

那些生意好的厂家如何找到目标客户呢?

寻找并精准定位目标客户是任何一家追求持续发展与业务增长的厂家必须掌握的关键技能。那些生意兴隆的厂家之所以能够脱颖而出,很大程度上得益于他们高效且精准的客户寻找策略。今天,我们将深入探讨这些成功厂家如何精准找到并吸引目标客户。 01明确目标…

基于梯度提升系列算法对二手车价格预测分析与研究

目录 1 引言 1.1 研究背景 1.2 研究目的 1.3 研究意义 1.3 国内外现状 1.4 研究思路与组织框架 2 关键技术理论介绍 2.1 二手车市场介绍 2.2 梯度提升回归系列算法介绍 3 数据来源及预处理 3.1 数据来源及说明 3.2 数据预处理及特征变换 第4章 数据分析及可视化 4.1 分析思路及…

自闭症孩子的康复治疗方法

在星贝育园,我们深知自闭症给孩子和家庭带来的巨大挑战。作为特教老师和生活老师,我们秉持着专业、负责的态度,为自闭症患儿提供全方位的康复治疗。 我们实行 24 小时陪伴,365 天全年无休的密集干预模式。这种模式能够确保孩子在任…

[Leetcode 216][Medium]组合总和 III--回溯

目录 一、题目描述 二、整体思路 三、代码 一、题目描述 原题地址 二、整体思路 对于组合问题,首先要想到回溯法。那么可以根据回溯法模版进行设计。 void backtrace(元素){if(满足题目要求的条件){保存目前路径/状态/结果;return;}for循环,往目前状态相邻的所…

100天带你精通Python——第8天面向对象编程

文章目录 前言面向对象技术简介类(Class)对象(Object)继承(Inheritance)封装(Encapsulation)多态(Polymorphism)Python类详解静态变量(Static Var…

【算法】演员~评论家方法

一、引言 演员-评论家算法(Actors-Critics Method)是一种用于并发编程中的同步机制,用于解决多线程环境下的资源竞争问题。与传统的锁和信号量等同步工具不同,演员-评论家方法采用更加灵活的协作策略。算法结合了策略梯度&#xf…

嵌入式Linux C应用编程指南-进程与线程(速记版)

第九章 进程 9.1 进程与程序 9.1.1 main()函数由谁调用? C 语言程序总是从 main 函数开始执行,main()函数的原型是: int main(void) 或 int main(int argc, char *argv[])。 操作系统下的应用程序在运行 main()函数之前需要先执行一段引导代…

「青鸟」作家导演起飞计划,助人才转型,共铸电影市场新活力

2024年6月,《上海市电影高质量发展三年行动计划》发布「青鸟」作家导演起飞计划应运而生(下文简称「青鸟计划」)。作为全国首个协助作家跨界转型、用画面讲好故事的扶持平台,青鸟计划重视电影的文学性,通过专业人士搭建…