前言
在进行模型应用时,关注的指标有很大的区别,根据关注的指标做机器的缩扩容,和模型压缩量化。
那么,模型的指标一般包括时延、吞吐量、参数量、激活值、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 + b*c 。
对于 A(mxn)和 B(nxk)两个矩阵相乘的 MAC 是 𝑚∗𝑛∗𝑘m*n*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 数。
最后
为了助力朋友们跳槽面试、升职加薪、职业困境,提高自己的技术,本文给大家整了一套涵盖AI大模型所有技术栈的快速学习方法和笔记。目前已经收到了七八个网友的反馈,说是面试问到了很多这里面的知识点。
由于文章篇幅有限,不能将全部的面试题+答案解析展示出来,有需要完整面试题资料的朋友,可以扫描下方二维码免费领取哦!!! 👇👇👇👇

面试题展示
1、请解释一下BERT模型的原理和应用场景。
答案:BERT(Bidirectional Encoder Representations from Transformers)是一种预训练的语言模型,通过双向Transformer编码器来学习文本的表示。它在自然语言处理任务中取得了很好的效果,如文本分类、命名实体识别等。
2、什么是序列到序列模型(Seq2Seq),并举例说明其在自然语言处理中的应用。
答案:Seq2Seq模型是一种将一个序列映射到另一个序列的模型,常用于机器翻译、对话生成等任务。例如,将英文句子翻译成法文句子。
3、请解释一下Transformer模型的原理和优势。
答案:Transformer是一种基于自注意力机制的模型,用于处理序列数据。它的优势在于能够并行计算,减少了训练时间,并且在很多自然语言处理任务中表现出色。
4、什么是注意力机制(Attention Mechanism),并举例说明其在深度学习中的应用。
答案:注意力机制是一种机制,用于给予模型对不同部分输入的不同权重。在深度学习中,注意力机制常用于提升模型在处理长序列数据时的性能,如机器翻译、文本摘要等任务。
5、请解释一下卷积神经网络(CNN)在计算机视觉中的应用,并说明其优势。
答案:CNN是一种专门用于处理图像数据的神经网络结构,通过卷积层和池化层提取图像特征。它在计算机视觉任务中广泛应用,如图像分类、目标检测等,并且具有参数共享和平移不变性等优势。
6、请解释一下生成对抗网络(GAN)的原理和应用。
答案:GAN是一种由生成器和判别器组成的对抗性网络结构,用于生成逼真的数据样本。它在图像生成、图像修复等任务中取得了很好的效果。
7、请解释一下强化学习(Reinforcement Learning)的原理和应用。
答案:强化学习是一种通过与环境交互学习最优策略的机器学习方法。它在游戏领域、机器人控制等领域有广泛的应用。
8、请解释一下自监督学习(Self-Supervised Learning)的原理和优势。
答案:自监督学习是一种无需人工标注标签的学习方法,通过模型自动生成标签进行训练。它在数据标注困难的情况下有很大的优势。
9、解释一下迁移学习(Transfer Learning)的原理和应用。
答案:迁移学习是一种将在一个任务上学到的知识迁移到另一个任务上的学习方法。它在数据稀缺或新任务数据量较小时有很好的效果。
10、请解释一下模型蒸馏(Model Distillation)的原理和应用。
答案:模型蒸馏是一种通过训练一个小模型来近似一个大模型的方法。它可以减少模型的计算和存储开销,并在移动端部署时有很大的优势。
11、请解释一下LSTM(Long Short-Term Memory)模型的原理和应用场景。
答案:LSTM是一种特殊的循环神经网络结构,用于处理序列数据。它通过门控单元来学习长期依赖关系,常用于语言建模、时间序列预测等任务。
12、请解释一下BERT模型的原理和应用场景。
答案:BERT(Bidirectional Encoder Representations from Transformers)是一种预训练的语言模型,通过双向Transformer编码器来学习文本的表示。它在自然语言处理任务中取得了很好的效果,如文本分类、命名实体识别等。
13、什么是注意力机制(Attention Mechanism),并举例说明其在深度学习中的应用。
答案:注意力机制是一种机制,用于给予模型对不同部分输入的不同权重。在深度学习中,注意力机制常用于提升模型在处理长序列数据时的性能,如机器翻译、文本摘要等任务。
14、请解释一下生成对抗网络(GAN)的原理和应用。
答案:GAN是一种由生成器和判别器组成的对抗性网络结构,用于生成逼真的数据样本。它在图像生成、图像修复等任务中取得了很好的效果。
15、请解释一下卷积神经网络(CNN)在计算机视觉中的应用,并说明其优势。
答案:CNN是一种专门用于处理图像数据的神经网络结构,通过卷积层和池化层提取图像特征。它在计算机视觉任务中广泛应用,如图像分类、目标检测等,并且具有参数共享和平移不变性等优势。
16、请解释一下强化学习(Reinforcement Learning)的原理和应用。
答案:强化学习是一种通过与环境交互学习最优策略的机器学习方法。它在游戏领域、机器人控制等领域有广泛的应用。
17、请解释一下自监督学习(Self-Supervised Learning)的原理和优势。
答案:自监督学习是一种无需人工标注标签的学习方法,通过模型自动生成标签进行训练。它在数据标注困难的情况下有很大的优势。
18、请解释一下迁移学习(Transfer Learning)的原理和应用。
答案:迁移学习是一种将在一个任务上学到的知识迁移到另一个任务上的学习方法。它在数据稀缺或新任务数据量较小时有很好的效果。
19、请解释一下模型蒸馏(Model Distillation)的原理和应用。
答案:模型蒸馏是一种通过训练一个小模型来近似一个大模型的方法。它可以减少模型的计算和存储开销,并在移动端部署时有很大的优势。
20、请解释一下BERT中的Masked Language Model(MLM)任务及其作用。
答案:MLM是BERT预训练任务之一,通过在输入文本中随机mask掉一部分词汇,让模型预测这些被mask掉的词汇。
由于文章篇幅有限,不能将全部的面试题+答案解析展示出来,有需要完整面试题资料的朋友,可以扫描下方二维码免费领取哦!!! 👇👇👇👇
