大模型参数估算

大模型参数估算

引用:

大模型训练需要多少GPU?大模型显存怎么算? #大模型 #AI系统(本文主要基于该视频的内容,ZOMI老师牛逼)

LLaMA: Open and Efficient Foundation Language Models

ML 2021 Spring (ntu.edu.tw)

[1810.04805] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (arxiv.org)

符号约定

参数含义
l解码器的层数
h隐藏层维度/特征向量维度
a注意力头数
V词表大小/词向量维度
b批大小
s序列长度

大模型架构

以以下架构为准进行估算

在这里插入图片描述

嵌入层

在这里插入图片描述

这里假设位置嵌入采用不可学习的方式,因此只计算词嵌入矩阵大小为Vh

Transformer层

自注意力层

在这里插入图片描述

矩阵形式表达如下:

在这里插入图片描述

  1. 将三个权重矩阵QKV拆分为a份,分别进行注意力计算。
  2. 最后的输出结果被concat起来并通过 W 0 W^0 W0矩阵映射到输出

QKV每个头的每个矩阵大小为 h 2 a \frac{h^2}{a} ah2,一共3a个矩阵,参数一共为 3 h 2 3h^2 3h2,注意这个结果与不分头是一样的。concat后的形状为 V × ( h a × a ) V\times (\frac{h}{a} \times a) V×(ah×a) W 0 W_0 W0的形状为 h × h h\times h h×h,因此所有的参数加起来为 4 h 2 4h^2 4h2

MLP层

包含两个线性层,分别从 h → 4 h h \rarr 4h h4h和从 4 h → h 4h \rarr h 4hh,总参数为 h × 4 h + 4 h × h = 8 h 2 h\times 4h+4h\times h=8h^2 h×4h+4h×h=8h2

归一化层

可训练参数有两个,为缩放参数 γ \gamma γ和平移参数 β \beta β,对于 V × h V\times h V×h的输入矩阵,对列进行归一化。归一化层共两个,因此参数量为 2 × h × 2 = 4 h 2\times h\times 2=4h 2×h×2=4h

总参数量与模型大小估算

transformer层的总参数量为
l × ( 4 h 2 + 8 h 2 + 4 h ) ≈ l ( 12 h 2 ) l\times(4h^2+8h^2+4h)\approx l(12h^2) l×(4h2+8h2+4h)l(12h2)
对于采用FP16格式保存的模型,其大小约为 24 l h 2 24lh^2 24lh2B。

模型名称hl 12 l h 2 12lh^2 12lh2实际参数量模型大小(FP16)
LLAMA-6B40963264424509446.7B12GB
LLAMA-13B5120401258291200013.0B23.4GB
LLAMA-33B6656603189768192032.8B59.4GB
LLAMA-65B8192806442450944065.2B120GB

这里的计算忽略了Transformer层之外的层,但可以看到,也已经非常接近了。

输出层

总体参数

总体参数为:
V h + l × ( 4 h 2 + 8 h 2 + 4 h ) + 输出层参数 Vh+l\times(4h^2+8h^2+4h)+输出层参数 Vh+l×(4h2+8h2+4h)+输出层参数
实际上估算可用如下公式:
V h + l ( 12 h 2 ) Vh+l(12h^2) Vh+l(12h2)

计算尝试

from transformers import LlamaConfig
from transformers import LlamaModel

config=LlamaConfig()
Llama=LlamaModel(config) # 注意这里默认参数很大,可以把config中参数调小

print(Llama) # 查看模型架构
  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 直方图是一种表示数据分布情况的方法,可以通过统计数据在各个区间内的数量来绘制。在matlab中,利用直方图可以估算噪声模型参数。 具体来说,假设我们有一组数据x,它受到了噪声n的影响,我们希望通过直方图估算噪声n的分布情况和参数。首先,我们可以通过x的直方图观察到噪声n对x的影响,如n的均值和标准差。由于噪声n一般是高斯分布的,我们可以利用高斯分布的概率密度函数来估算n的参数。具体来说,我们可以利用x的均值和标准差来估算n的均值和标准差,并将其带入高斯分布的概率密度函数中进行估算。 此外,我们还可以利用直方图来估算噪声n的统计量,如偏度和峰度等。这些统计量可以帮助我们更好地理解n的分布情况和参数,从而更准确地进行噪声去除等处理操作。 总之,利用直方图可以快速有效地估算噪声模型参数,从而帮助我们更好地处理数据和提高算法的性能。 ### 回答2: Matlab是数据分析中经常使用的一款工具软件,通过利用Matlab中的直方图来估算噪声模型参数,能够更加方便地分析数据。直方图是指将数据按照数据范围进行分组,统计每组数据的数量,从而得到数据分布的图表。在实际应用中,我们将数据通过直方图进行分组后,能够较准确地估算噪声模型参数。 首先,我们可以通过Matlab中的imnoise函数在图像中添加噪声,添加的噪声类型可以是高斯噪声、椒盐噪声、泊松噪声等,然后通过Matlab中的直方图函数histogram来生成图像的直方图。直方图的横轴是数据范围,纵轴是该范围内数据的数量。我们可以从直方图中看出数据分布的情况,从而进一步估算噪声模型参数。 例如,对于高斯噪声,其概率分布函数能够用其均值和标准差来描述。通过分析图像直方图的均值和方差,我们可以对高斯噪声的均值和标准差进行估算,并用这些参数进行噪声模型建模。得到噪声模型后,我们可以通过滤波等处理方法来降低噪声对图像的影响,从而得到更加清晰的图像。 总之,通过利用Matlab中的直方图函数来估算噪声模型参数,能够有效地处理图像数据的噪声,从而得到更加准确、清晰的图像,提高图像处理的准确性和效率。 ### 回答3: 在图像处理中,噪声是不能避免的,因为它与相机、传感器等设备本身的特性有关。在图像去噪时,需要知道噪声的模型参数。一种方法是利用直方图估算噪声模型参数。 在MATLAB中,可以使用imhist函数来绘制图像的直方图。接下来,为了获得均值和方差的值,可以将直方图转换为正态分布,即创建高斯拟合对象g。其中,均值与方差可以通过g里的mu和sigma属性获得。在噪声模型为高斯噪声时,均值即为0。 例如,对于一张含有噪声的图像im,可以利用以下代码来估算噪声模型参数: % 计算图像直方图 [counts, bins] = imhist(im); % 将直方图转换为正态分布 g = fitdist(bins, 'Normal', 'Weights', counts); % 获得均值和方差的值 mean = g.mu; var = g.sigma^2; 另外,需要注意的是,直方图估算噪声模型参数的精度受到图像本身的影响,因此对于具有高信噪比的图像,该方法可能会产生误差。因此,选择适当的方法和参数对于图像去噪非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值