【AI系统】推理参数

简介: 本文介绍了AI模型网络参数的基本概念及硬件性能指标,探讨了模型轻量化的重要性。随着深度学习的发展,模型参数量和计算量不断增大,导致难以直接部署到移动端。文章详细解析了FLOPs、FLOPS、MACCs等计算指标,并对比了标准卷积层、Group卷积、Depth-wise卷积和全连接层的参数计算方法,为模型优化提供了理论基础。

本文将介绍 AI 模型网络参数方面的一些基本概念,以及硬件相关的性能指标,为后面让大家更了解模型轻量化做初步准备。值得让人思考的是,随着深度学习的发展,神经网络被广泛应用于各种领域,模型性能的提高同时也引入了巨大的参数量和计算量(如下图右所示),一般来说模型参数量越大,精度越高,性能越好(如下图左所示)。

但由于大部分的神经网络模型的参数量很大,无法满足直接部署到移动端的条件,因此在不严重影响模型性能的前提下对模型进行重新设计,来减少网络参数量和计算复杂度,提升运算能力是目前相当热门的研究方向。同时也希望在后续的文章中,让大家更了解模型轻量化的一些经典网络结构。

Introduction

复杂度分析

模型参数量和计算量是两个重要的考量因素。模型参数量指的是模型中的参数数量,对应于数据结构中空间复杂度的概念。而计算量则对应于时间复杂度的概念,与网络执行时间的长短有关。

计算量和复杂度的衡量指标主要是 FLOPs(浮点运算次数),FLOPS(每秒所执行的浮点运算次数),MACCs(乘-加操作次数),Params(模型含有多少参数),MAC(内存访问代价),内存带宽(内存带宽),下面将对每个计算指标进行详细讲解。

FLOPs

FLOPs 是 floating point operations 的缩写(s 表复数),指浮点运算次数,可以用来衡量算法/模型的复杂度,表示计算量。论文中常用的还有 GFLOPs 和 TFLOPs。

FLOPS

每秒所执行的浮点运算次数(Floating-point Operations Per Second),理解为计算速度,是一个衡量硬件性能/模型速度的指标,即一个芯片的算力。

单位换算

  • 一个 MFLOPS(MegaFLOPS)等于每秒一百万($=10^{6}\quad$)次浮点运算。

  • 一个 GFLOPS(GigaFLOPS)等于每秒十亿($=10^{9}\quad$)次浮点运算。

  • 一个 TFLOPS(TeraFLOPS)等于每秒一万亿($=10^{12}\quad$)次浮点运算。

  • 一个 PFLOPS(PetaFLOPS)等于每秒一千万亿($=10^{15}\quad$)次浮点运算。

  • 一个 EFLOPS(ExaFLOPS)等于每秒一百京($=10^{18}\quad$)次浮点运算。

  • 一个 ZFLOPS(ZettaFLOPS)等于每秒十万京($=10^{21}\quad$)次浮点运算。

GFLOPS 就是 Giga FLoating-point Operations Per Second,即每秒 10 亿次浮点运算,常作为 GPU 性能参数但不一定代表 GPU 的实际表现,因为还要考虑具体如何拆分多边形和像素、以及纹理填充,理论上该数值越高越好。1GFLOPs = 1000MFLOPs。

MACCs

乘-加操作次数(Multiply-accumulate Operations),MACCs 大约是 FLOPs 的一半,将 $w*x+b\quad\quad\quad$ 视为一个乘法累加或 1 个 MACC。

MAdds

MACs 全称 Multiply–Accumulate Operations,即乘加累积操作,1MACs 包含一个乘法操作与一个加法操作,大约包含 2FLOPs。通常 MACs 与 FLOPs 存在一个 2 倍的关系,而 MACs 和 MAdds 是同一个含义。
关于神经网络利用率

假设用一个简单的 CNN 网络做 forward 时,对于硬件资源的利用情况称之为利用率,所以利用率的计算简单描述为:

  • 计算网络的计算量,通常是乘累加的次数

  • 测量网络运行耗时

  • 乘累加次数除以耗时,计算该网络的 GFLOPS

  • 用计算的网络 GFLOPS 除以硬件资源的理论 GFLOPS,即利用率

Params

模型含有多少参数,直接决定模型的大小,也影响推断时对内存的占用量,单位通常为 M,通常参数用 float32 表示,所以模型大小是参数数量的 4 倍。

MAC

内存访问代价(Memory Access Cost),指的是输入单个样本,模型/卷积层完成一次前向传播所发生的内存交换总量,即模型的空间复杂度,单位是 Byte。

内存带宽

内存带宽决定了它将数据从内存(vRAM)移动到计算核心的速度,是比计算速度更具代表性的指标,内存带宽值取决于内存和计算核心之间数据传输速度,以及这两个部分之间总线中单独并行链路数量。

神经网络的计算量

网络前向计算时,卷积运算占据耗时 90%以上。重点关注下如何计算卷积的运算量。为简化问题,以下讨论认为:卷积采用滑动窗口且忽略非线性计算的开销。

假设对于 CNN 网络,有卷积层的参数包括:输入 feature map 的 Cin,宽 Hin,高 Win,输出 feature map 的 Cout,宽 Hout,高 Wout,卷积核的尺寸 K,卷积核通道等于 Cin,卷积核个数等于 Cout。

则该卷积核与 feature map 做卷积的运算量为:

$$ W_{out}=W_{in}/strie_{w},H_{out}=H_{in}/stride_{h} \\ $$

$$ FLOP_{s}=(K*K*C_{in}*2+1)*W_{out}*H_{out}*C_{out} \\ $$

其中的 1 表示偏置量。偏置值每个卷积核对应 1 个,共有 Cout 个。

典型结构对比

下面将会对神经网络模型的典型结构的参数进行对比,标注其参数计算方式。

标准卷积层

  • Params

模型参数量计算公式为:

$$ k_{h}\times k_{w}\times c_{in}\times c_{out} \\ $$

其中 $k_{h}$ 是卷积核的高度,$k_{w}$ 是卷积核的宽度; $c_{in}$ 是输入的通道数; $c_{out}$ 是输出的通道数

  • FLOPs

浮点运算数即计算量。可以用来衡量算法/模型的复杂度,公式如下:

$$ k_{h}\times k_{w}\times c_{in}\times c_{out}\times H \times W \\ $$

其中 $k_{h}$ 与 $k_{w}$ 分别为卷积核的高宽,$c_{in}$ 与 $c_{out}$ 分别是输入输出维度。

Group 卷积

  • Params

$$ (k_{h}\times k_{w}\times c_{in}/g\times c_{out}/g)\times g = k_{h}\times k_{w}\times c_{in}\times c_{out}/g \\ $$

  • FLOPs

$$ k_{h}\times k_{w}\times c_{in}\times c_{out}\times H \times W /g \\ $$

Depth-wise 卷积

  • Params

$$ k_{h}\times k_{w}\times c_{in}\times c_{out}/c_{in} = k_{h}\times k_{w}\times c_{out} \\ $$

  • FLOPs

$$ k_{h}\times k_{w}\times c_{out}\times H \times W \\ $$

全连接层 FC

  • Params

$$ c_{in}\times c_{out} \\ $$

  • FLOPs

$$ c_{in}\times c_{out} \\ $$

其中 $c_{in}$ 与 $c_{out}$ 分别是输入输出维度。

如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~

目录
相关文章
|
15天前
|
人工智能 监控 搜索推荐
给RAG打分:小白也能懂的AI系统评测全攻略
RAG系统评估听起来高深,其实跟我们生活中的'尝鲜评测'没啥两样!本文用轻松幽默的方式,带你从检索质量、生成质量到用户体验,全方位掌握如何科学评测RAG系统,避免踩坑,让你的AI应用又快又准。#RAG技术 #AI评估 #信息检索 #大模型 #数据科学
|
9天前
|
SQL 人工智能 数据可视化
高校迎新管理系统:基于 smardaten AI + 无代码开发实践
针对高校迎新痛点,基于smardaten无代码平台构建全流程数字化管理系统,集成信息采集、绿色通道、宿舍管理等七大模块,通过AI生成框架、可视化配置审批流与权限,实现高效、精准、可扩展的迎新服务,大幅提升管理效率与新生体验。
|
14天前
|
存储 机器学习/深度学习 算法
​​LLM推理效率的范式转移:FlashAttention与PagedAttention正在重塑AI部署的未来​
本文深度解析FlashAttention与PagedAttention两大LLM推理优化技术:前者通过分块计算提升注意力效率,后者借助分页管理降低KV Cache内存开销。二者分别从计算与内存维度突破性能瓶颈,显著提升大模型推理速度与吞吐量,是当前高效LLM系统的核心基石。建议收藏细读。
169 0
|
4天前
|
人工智能 数据库 索引
超越幻觉:检索增强生成如何为AI大模型“装上”事实核查系统
超越幻觉:检索增强生成如何为AI大模型“装上”事实核查系统
159 107
|
2月前
|
人工智能 算法 前端开发
超越Prompt Engineering:揭秘高并发AI系统的上下文工程实践
本文系统解析AI工程范式从Prompt Engineering到Context Engineering的演进路径,深入探讨RAG、向量数据库、上下文压缩等关键技术,并结合LangGraph与智能体系统架构,助力开发者构建高可靠AI应用。
234 1
|
15天前
|
存储 人工智能 NoSQL
用Context Offloading解决AI Agent上下文污染,提升推理准确性
上下文工程是将AI所需信息(如指令、数据、工具等)动态整合到模型输入中,以提升其表现。本文探讨了“上下文污染”问题,并提出“上下文卸载”策略,通过LangGraph实现,有效缓解长文本处理中的信息干扰与模型幻觉,提升AI代理的决策准确性与稳定性。
84 2
用Context Offloading解决AI Agent上下文污染,提升推理准确性
|
1月前
|
人工智能
AI推理方法演进:Chain-of-Thought、Tree-of-Thought与Graph-of-Thought技术对比分析
大语言模型推理能力不断提升,从早期的规模扩展转向方法创新。2022年Google提出Chain-of-Thought(CoT),通过展示推理过程显著提升模型表现。随后,Tree-of-Thought(ToT)和Graph-of-Thought(GoT)相继出现,推理结构由线性链条演进为树状分支,最终发展为支持多节点连接的图网络。CoT成本低但易错传,ToT支持多路径探索与回溯,GoT则实现非线性、多维推理,适合复杂任务。三者在计算成本与推理能力上形成递进关系,推动AI推理向更接近人类思维的方向发展。
131 4
|
1月前
|
人工智能 算法 数据库
给AI装上一个'超级大脑':信息检索如何改变RAG系统的游戏规则
从传统检索方法到现代向量检索,通过一个购物助手的故事,直观展示了不同检索技术的原理与应用。学会这些技巧,让你的AI不再是「记忆只有金鱼长度」的大模型!
109 24
|
15天前
|
人工智能 监控 数据可视化
如何破解AI推理延迟难题:构建敏捷多云算力网络
本文探讨了AI企业在突破算力瓶颈后,如何构建高效、稳定的网络架构以支撑AI产品化落地。文章分析了典型AI IT架构的四个层次——流量接入层、调度决策层、推理服务层和训练算力层,并深入解析了AI架构对网络提出的三大核心挑战:跨云互联、逻辑隔离与业务识别、网络可视化与QoS控制。最终提出了一站式网络解决方案,助力AI企业实现多云调度、业务融合承载与精细化流量管理,推动AI服务高效、稳定交付。