把鞋的轮廓图
放回鞋身:
需要多少计算量?
最基本的Pix2Pix机型需要消耗56.8G;
另一方面,使用新技术压缩Pix2Pix机型时,1.219G为1/46.6,大大节约了计算量。
这里使用的技术是字节跳动技术团队在计算机视觉会议ICCV 2021上发表的在线多粒度蒸馏算法(online multi-granularity distillation,简称OMGD )。
该模型压缩框架由于GAN模型体积太大,计算太费力气,目前将代码(地址为句末)和CycleGAN和Pix2Pix的预训练模型开源,落地于嘀嗒等产品上。
与同类模型压缩算法相比,OMGD这一新框架不仅被压得更小,而且被压得更好。
例如,在把马变成斑马的过程中:
MACs表示消耗的计算量,括号内的数字是上升倍数
然后把夏天变成冬天:
将分割后的街景还原为照片(注意骑自行车的人) :
实验表明,该技术最少可以将GAN模型的计算量减少到1/46,参数量最少可以减少到1/82。
换算下来,相当于节约了计算量的97.8%。
OMGD 是怎么实现的
模型压缩通常使用一种叫做“知识蒸馏”的方法。 也就是说,将参数多、体积大的模型作为“教师模型”,监督优化参数少、体积小的“学生模型”,使学生模型在不扩大体积的情况下获得教师模型传授的知识。
OMGD技术通过两种在神经网络宽度和深度两方面互补的教师模型来优化一个学生模型,总体Pipeline如下:
该框架将不同层次的概念从中间层和输出层转移,在无分类和无地面路由的设置下进行训练,实现知识提取,整体优化了在线蒸馏方案。
Pix2Pix和CycleGAN两种知名机型上的实验数据表明,OMGD只需最小的参数、最小的计算量就能达到最好的图像生成效果。
m=pc”>
最右侧的 FID 分数越小,表明生成效果越好
为什么要把大模型变小?
字节跳动技术团队相关研发同学说,这是第一个用在线知识蒸馏来压缩 GAN 的技术方案,已经在抖音落地。
没错,你在抖音里看到的各种好玩的特效道具,背后都需要各种算法模型来运行,尤其是在处理图像相关的特效上,GAN 是通用的方法,这套 GAN 模型压缩方案也已经在抖音落地,比如「动态照片」:
「舞蹈手套」:
还有「三屏人生」:
不过,GAN 模型通常体量很大,需要做大量的计算才能完成,想要落地在手机尤其是算力不足的低端机上是很大的挑战。OMGD 研发团队的一位同学说:“我们会衡量模型的覆盖率,也就是一个模型有多少机型能流畅运行,成功压缩模型后可以覆盖更多手机,让更多人用上,假如原来有的模型可能要 iPhone 11 才能用,压缩之后 iPhone 7 也能用。”
所以,模型压缩是个刚需,如何让 GAN 被更多人用上、更普惠的提供服务,是技术界一直在追求的方向。
字节跳动技术团队最早 2017 年投入模型压缩方面的研究,今日头条、抖音、剪映、西瓜视频等多个 App 都有相关技术落地,还曾获得过 2020 年 IEEE 举办的低功耗计算机视觉挑战赛(LPCV)两条赛道的冠军。
在经过 OMGD 压缩之前,团队内通常使用蒸馏或剪枝等算法来完成 GAN 模型的压缩,因为模型需要的输入分辨率很大,其计算量依旧很大,没有压缩到极致。
如何才能实现更极致的压缩呢?
在研究了海量学术界现有方法之后,字节跳动技术团队同学没有找到适合公司业务的方法,转而决定自行研究,创造性地在 GAN 模型压缩上首次想到了用两个互补的教师模型来训练同一个学生模型的方式,并且取得了实验的成功。
现在,OMGD 在实践中可以比原来的方法加速 20~30%,甚至有的能达到 80%。
并且,作为可以「在线压缩」的方法,OMGD 大大降低了 GAN 模型生产的复杂性。这里的「在线」并不是我们日常生活中所指的网络在线的状态,而是指蒸馏过程一步到位地完成,“之前的 GAN 压缩方法都是分几步进行的,比如先预训练,压缩之后再训练一遍,之后还有一些其他步骤,整体比较复杂;我们的新方法只要一步就可以完成整个过程,效果也比其他方法好得多。”团队技术同学说。
现在,这类模型压缩技术不仅能节约算力和能源,更能为用户提供流畅体验,帮助创作者激发创造力,丰富生活。
相关链接
论文地址:
https://arxiv.org/abs/2108.06908
GitHub 代码及与训练模型:
https://github.com/bytedance/OMGD
关注「字节跳动技术范儿」
了解更多字节跳动技术相关信息
博士毕业一年,我拿下 ACL Best Paper
100张图训练1小时,照片风格随意变,文末有Demo|SIGGRAPH 2021
亮相Google I/O,字节跳动是这样应用Flutter的
这群程序员中的「广告狂人」,把抖音广告做成了AR游戏