电子发烧友网报道(文/李弯弯)当前,全球众多科技企业都在积极研究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能够在手机上运行。
全部0条评论
快来发表一下你的评论吧 !