AI大模型超强总结:9个大模型评估指标,看到就是赚到!!
AI大模型超强总结:9个大模型评估指标,看到就是赚到!!
在AI大模型的应用中,如何评估模型的性能是一个关键问题。本文将详细介绍9个重要的评估指标,包括延迟、吞吐量、参数量、激活值、MAC、FLOP、FLOPS、OP、OPS,并通过CNN模型为例,详细解释每个指标的含义和计算方法。
前言
在进行模型应用时,关注的指标有很大的区别,根据关注的指标做机器的缩扩容,和模型压缩量化。
那么,模型的指标一般包括时延、吞吐量、参数量、激活值、MAC、FLOP、FLOPS、OP、OPS:
- 延迟(Latency):处理一次任务的时间;
- 吞吐量(Throughput):可以同时处理任务的数量;
- 参数量(Parameters):由模型结构决定;
- 激活值(Activate):特征参数,与特征图大小,batch 大小有关;
- MAC:Multiply accumulate operation,是一次乘法与一次加法累加;
- FLOP:floating point operation 的缩写,浮点运算;
- FLOPS:floating point operation per second 的缩写,每秒可以进行的浮点运算;
- OP:operations,运算;
- OPS:operation per second,每秒进行的运算数;
每个参数如何计算,下面以 CNN 为例做详细说明。
1、各参数细讲
(1)Latency & Throughput
高吞吐量一定低延迟吗?低延迟一定是高吞吐量吗?答案显然是不一样,只是考虑的场景不同。
移动端更关心延迟,数据中心更关心吞吐量。影响 Latency 的两个因素,一个是计算量,一个是内存。
(2)Parameters & model size
对于 CNN 的单层模型,输出 X 的维度是 [ci,hi,wi],卷积核大小 [ci,kh,kw],通道数是 co。
所以卷积层的参数量是:
上述参数求和大约是 61M,模型大小与参数量和每个参数的大小有关。
常用 Bit Width 有 float32、float16、int8、int4。以 float32 为例。AlexNet 的 model size 是 61*4=244M。
(3)Activations
参数量与模型大小有关,激活值与峰值激活值才是模型推理和计算的瓶颈,并且对于 CNN 这种网络,前几层的激活值内存比较大(因为特征图大),后几层小,存在不均衡问题。
峰值激活值一旦超过 SRAM 的大小,则需要频繁的数据搬运,这非常耗时(主存中数据搬运的耗时远远大于计算的耗时)。
收到 batch 等影响,激活值一般比模型参数占内存大,他们的变换趋势如下。一般前几层激活值占内存大,或几层是网络参数站内存大。
(4)MAC
Multiply accumulate operation,是一次乘法与一次加法累加 𝑎←𝑎+𝑏∗𝑐a \leftarrow a + bc 。
对于 A(mxn)和 B(nxk)两个矩阵相乘的 MAC 是 𝑚∗𝑛∗𝑘mn*k。
对于 CNN 的单层模型,输出 X 的维度是 [ci,hi,wi],卷积核大小 [ci,kh,kw],通道数是 co。
所以卷积层的参数量是:
AlexNet 大于是 7.24 亿的 MAC。
(5)FLOP & FLOPS
FLOP 浮点运算,一个 MAC 等于两个 FLOP,所以 AlexNet 是 1.4G FLOPs。
FLOPS 是没秒进行浮点运算,是一个硬件指标:
(6)OP & OPS
OP 是 FLOP 的扩充,不只是浮点运算,所有的运算都包括,包括整数运算、掩码运算等等都属于 OP。OPS 是每秒进行的 OP 数。