电子发烧友网报道(文/李弯弯)当前,全球众多科技企业都在积极研究AI大模型,然而因为参数规模太大,要想实现AI大模型在边/端侧部署,需要用到模型压缩技术。当前谷歌、微软、腾讯等厂商在该领域均有布局,加速AI技术与智能终端的融合。
为什么需要模型压缩技术
模型压缩是一种缩小训练后的神经网络的技术,目的是保证模型预测效果的前提下,尽可能地降低模型的大小。模型压缩之后,所需要的计算资源变小,有利于在移动端部署。
有一个很形象的例子,深度学习变脸业务,假设在模型优化前,原始模型处理每个视频要30秒,那么一张GPU卡一分钟只能处理2个视频。假设APP的使用峰值是1000人同时使用,那么这家公司至少要有500张GPU卡才能满足需求。
如果模型压缩技术能让模型变小许多,使得每个视频处理只需要10秒,那么这个客户可能只需要150张卡就能满足业务需求。每年的成本可以从原来的3000万控制在1000万左右,省下的2000万,就是模型压缩技术的价值。
量化、网络剪枝和知识蒸馏
模型压缩的方法主要有量化、网络剪枝、知识蒸馏。量化的意思是,将浮点计算转成低比特定点计算,模型由大量的浮点型权重组成,如果能用float32替代原有的float64表示,模型就近乎减小一倍,量化也是最容易实现的一种压缩方式。
传统意义上的量化即为将连续信号转换为离散信号,在神经网络的量化中,即将浮点数float32→int8,int4,int2等,量化其本质就是低精度,常规精度一般使用FP32存储模型权重,低精度则表示FP16,或INT8等数值格式,不过目前低精度往往指的是INT8。
模型压缩,使得原本只能在云端运行大模型,也能够部署在终端设备上。比如,近年来很流行的基础模型 Stable Diffusion ,它是一个非常出色的从文本到图像的生成式 AI 模型,能够基于任何文本输入,在数十秒内创作出逼真图像。Stable Diffusion 的参数超过 10 亿,此前主要限于在云端运行。
高通 AI Research 利用高通 AI 软件栈(Qualcomm AI Stack)执行全栈 AI 优化,首次实现了在Android智能手机上部署 Stable Diffusion,其中就用到了模型压缩技术量化的方法。
据介绍,高通的全栈 AI 研究指跨应用、神经网络模型、算法、软件和硬件进行优化。针对 Stable Diffusion,他们从 Hugging Face 的 FP32 1-5 版本开源模型入手,通过量化、编译和硬件加速进行优化,使其能在搭载第二代骁龙 8 移动平台的手机上运行。
为了把模型从 FP32 压缩为 INT8,高通使用了其 AI 模型增效工具包 (AIMET) 的训练后量化。自适应舍入 (AdaRound) 等先进的高通 AIMET 量化技术能够在更低精度水平保持模型准确性,无需进行重新训练。
这些技术能够应用于构成 Stable Diffusion 的所有组件模型,即基于 Transformer 的文本编码器、VAE 解码器和 UNet。这对于让模型适合于在终端上运行至关重要。
网络剪枝,是指除神经网络中冗余的通道、神经元节点等。深度学习模型可以看作是一个复杂树状结构,如果能减去一些对结果没什么影响的旁枝,就可以实现模型的减小。
模型的构成是由许多浮点型的神经元相连接,每一层根据神经元的权重将信息向下传递。但是有一些神经元的权重非常小,这类神经元对整个模型加载的信息影响微乎其微。如果可以把这些权重较小的神经元删减掉,既减少了模型大小,也不会对模型的效果带来大的影响。
每一层把数值小的神经元去掉,但是剪枝粒度维持到多大也是有讲究的,比如可以把每层最小的5个减掉,也可能只剪3个,或者每层有每层不同的策略。剪多了,模型精度影响会比较大,剪少了没有效果。所以这里面需要大量的尝试和迭代。
知识蒸馏,是指将大模型作为教师模型,用其输出训练性能接近、结构更简的学生模型。一般而言,大模型往往是单个复杂网络或者是若干网络的集合,拥有良好的性能和泛化能力,而小模型因为网络规模较小,表达能力有限。
因此,可以利用大模型学习到的知识去指导小模型训练,使得小模型具有与大模型相当的性能,但是参数数量大幅降低,从而实现模型压缩。
小结
当下,AI大模型发展如火如荼,然而因为参数规模太大,不仅仅是训练,大模型的部署推理,也需要倚赖丰富的计算资源。如果想要大模型能够在边/终端侧实现部署,这其中就需要用到模型压缩技术,如高通使用量化的方法,让Stable Diffusion能够在手机上运行。
-
AI
+关注
关注
87文章
30140浏览量
268411
发布评论请先 登录
相关推荐
评论