CANN5.0黑科技解密 | 别眨眼!缩小隧道,让你的AI模型“身轻如燕”!

2023-11-23 19:40

本文主要是介绍CANN5.0黑科技解密 | 别眨眼!缩小隧道,让你的AI模型“身轻如燕”!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着深度学习的发展,推理模型巨大的参数量和计算量,需要耗费越来越多的硬件资源,也给模型在移动端的部署带来了新的挑战。

能不能像哆啦A梦一样,变出一条缩小隧道,不管再大的模型,塞进去后就能变小变轻,在寸土寸金的AI硬件资源上身轻如燕…

答案是:当然可以!

通常来说,想要构建深度学习领域的模型缩小隧道,加速模型推理部署,一般需要借助量化、剪枝、低秩分解、知识蒸馏等模型压缩技术,降低模型参数量、计算量。

但是,模型压缩通常不是无损压缩,是牺牲一定精度为代价来获取计算性能的提升。而作为衡量AI推理应用成效的双重标准,精度和性能同等重要,模型压缩算法的落地自然也需要同时兼顾精度损失和性能提升的均衡。

AMCT:模型缩小隧道

昇腾异构计算架构CANN,作为连接AI框架和AI硬件的桥梁,提升昇腾AI计算效率的关键平台,通过AMCT模型压缩工具(Ascend Model Compression Toolkit),构筑了一条现实版的模型缩小隧道。

AMCT是一个python工具包,有效适配Caffe/TensorFlow/ 昇思MindSpore/PyTorch/ONNX等主流深度学习框架,提供包含量化、张量分解、通道稀疏在内的多种模型压缩功能。在保证模型精度前提下,可有效降低模型的存储空间和计算量,提升模型推理性能。

相比于其他同类平台,AMCT支持的模型压缩特性更加完备,通过多种压缩算法以及硬件亲和模型优化最大化用户模型部署推理性能;AMCT支持的训练框架也更加丰富,适配不同领域不同用户人群开发使用;除此之外,AMCT还致力于通过自动调优、自动补齐等高阶特性来提升工具的易用性,让用户可以付出极低代价就可以获取尽可能大的收益。

量化:低比特压缩,减少数据bit位宽

顾名思义,模型量化是一种将浮点计算转成低比特定点计算的技术(例如32bit的浮点模型转换为8bit的定点模型),可有效降低模型的存储开销和计算复杂度,从而提升模型推理性能。

常见的量化算法有二值化、对数量化和线性量化。

二值化量化,

由于模型压缩太过激进,对于模型性能提升较大但是相应的精度损失也较大,适用范围较小;

对数量化,

由于依赖专用的硬件计算单元且性能提升有限,也未能获得大规模应用;

AMCT采用线性量化方式,

支持8bit、4bit位宽量化。一般而言,网络做8bit量化的精度风险小,可通过训练后量化的方式实现;对于4bit量化的精度损失风险较大,当前AMCT仅支持通过量化感知训练的方式实现。

训练后量化(Post-Training Quantization, 简称PTQ,是指将训练后模型中的权重由浮点数量化到低比特整数,并通过少量校准数据基于推理过程进行校准量化。对于8bit量化,一般网络通过训练后量化即可达到较低的量化精度损失。

量化感知训练(Quantization-Aware Training, 简称QAT,是指借助用户完整训练数据集,在重训练过程中引入量化操作,在训练前向计算中对数据和权重进行伪量化(量化反量化),引入量化误差损失,从而在训练过程中提高模型对量化效应的适应能力,提高最终的量化模型精度。对于4bit以及更低bit位宽的量化,一般需要通过量化感知训练来降低量化精度损失。

我们在昇腾AI处理器上分别测试了ResNet-50和YOLOV3网络在8bit PTQ和4bit QAT下的性能及精度表现。

精度方面,可以看到不同网络对量化的敏感度不同,在经典CV网络,8bit量化量化精度损失可保持在1%以内,4bit量化量化精度损失可保持2%以内。

性能方面,不同模型由于其模型结构及网络规格的差异,量化所获取的性能提升也各不相同,其中ResNet-50 INT8相较于FP16,INT4相较于INT8而言平均约有40%左右的性能提升;YOLOV3则都在30%左右。

使用方面,开发者调用AMCT提供的API即可轻松完成模型量化。AMCT默认会对整网所有可量化算子(主要为卷积类和矩阵乘类算子)进行量化,开发者也可自行指定具体量化哪些层、每一层的量化bit位宽。如果量化后精度损失大于预期,可以通过跳过一些关键层的量化来恢复精度。例如,我们通常认为网络的首尾层对网络的业务精度影响较大,则需要优先进行量化回退。

3       稀疏:权重剪枝,缩减模型参数量

许多实验证明,神经网络模型都是过参数化的(over-parameterized),许多参数都是冗余的,恰当剔除这些相对“不重要”的参数对模型最终的结果几乎没有影响。

模型稀疏就是对模型的参数进行删减,从而降低模型的存储和计算开销。而模型稀疏按照稀疏颗粒度,从最小的element-wise到channel-wise甚至更大,稀疏颗粒度从小到大,对模型的精度影响越大,但是相应能够获取到的性能收益也越大。

以上稀疏颗粒度示意图,从左到右颗粒度依次增加。但是对于单个权重、权重向量、单个卷积核kernel的稀疏都需要硬件特殊适配才能够拿到对应的性能或者存储收益。

而通道稀疏(filter-level sparsity)由于裁剪了输出数据通道,等价于缩小了模型的规格,不需要特定的硬件支持就可以拿到对应的性能收益,是一个比较理想的选择。但是如前所述,通道稀疏的颗粒度较大,对于网络的精度风险也较大,一般需要进行Fine-tune。

AMCT目前主要支持基于重训练的通道稀疏模型压缩特性。

通道稀疏主要是通过裁剪网络通道数,在保持网络功能的前提下缩减模型参数量。通道稀疏的实现通常包括两个步骤:首先是通道选择,需要选择合适的通道组合以保留丰富的信息;然后是重建,需要使用选择的通道对下一层的输出进行重建。

在昇腾AI处理器上分别测试了ResNet-50网络进行30%稀疏的精度和性能表现。

精度方面,可以看到不同网络对通道稀疏的敏感度不同,ResNet50做30%比例的通道稀疏后精度损失仍能保持在1%以内。

性能方面,主要测试了ResNet-50在不同batch-size情况下的性能情况,在batch-size=32场景下通道稀疏约提升了40%的推理速度。

使用方面,开发者同样只需要调用AMCT提供的API,配置你期望的全局稀疏率或者每一层的稀疏率即可,工具能自动判定可稀疏通道,轻松完成稀疏工作。

4       张量分解:低秩近似,降低模型计算量

对于卷积神经网络来说,卷积层的运算量是占网络总运算量的大头,并且卷积核越大,参数量和计算量越庞大。

而张量分解,正是采用数学方法,将一个大卷积核通过低秩近似分解为多个小卷积核,构造计算量更小的卷积算子,从而达到压缩模型与计算量的目的。

以1个64*64*3*3的卷积分解为32*64*3*1和64*32*1*3的级联卷积为例,可以减少1 - (32*64*3*1 + 64*32*1*3) / 64*64*3*3 = 66.7%的计算量,在计算结果近似的情况下带来更具性价比的性能收益。

AMCT中的张量分解则充分考虑昇腾AI处理器硬件特性,选择能够充分发挥硬件算力的卷积形式,尽可能减小搬运开销对算子性能的影响。

实验表明,张量分解在昇腾AI处理器的推理速度以及模型大小的优化上都起到了非常显著的效果。

经测试,13张经典CV网络经过张量分解后,推理时间平均减少24.4%,模型大小平均减少38.8%,而finetune后的精度几乎与分解前相当(最大损失不超过0.5%)。

使用方面,通过AMCT提供的API,开发者仅需调用1或2个接口(取决于框架),即可完成对原始模型的分解,并对分解后的模型进行finetune。

写在最后

CANN作为释放昇腾硬件算力的关键平台,面对既要保精度又要提性能的尴尬问题,坚持“精度和性能两手抓,两手都要硬”,始终站在开发者视角,想开发者所想,及开发者所及。通过深耕先进的模型压缩技术,聚力打造AMCT模型压缩工具,在保证模型精度前提下,不遗余力地降低模型的存储空间和计算量。

轻装前行,放得远方!面对人工智能的蓬勃发展,相信通过CANN构筑的模型缩小隧道,定将给大参数量、大计算量的AI模型带来更加广阔的应用场景,和更加巨大的想象空间!

欢迎登陆昇腾社区网站LINK或扫描下方二维码了解更多信息。

这篇关于CANN5.0黑科技解密 | 别眨眼!缩小隧道,让你的AI模型“身轻如燕”!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/420283

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费