ICML 2023 | UPop: 使用统一渐进剪枝压缩视觉-语言Transformers

UPop是一种针对视觉-语言Transformer模型的结构化剪枝框架,旨在有效压缩多模态和单模态任务的模型。它通过统一搜索(Unified Search)自适应地分配不同组件的压缩率,以及逐步剪枝(Progressive Pruning)消除剪枝前后的参数差距,提高模型的收敛性和高压缩率下的性能。在多个数据集和任务上的实验表明,UPop在视觉推理、图像描述、视觉问答、图像-文本检索等任务上实现了较好的压缩效果,同时保持了高准确性。
摘要由CSDN通过智能技术生成

9fbc792c84324c40c898e2853dc8b627.gif

TL;DR: UPop 是首个针对 Vision-Language Transformers 的结构化剪枝框架,此外也适用于单模态 Transformers。UPop 在各种多模态和单模态任务上进行了广泛的实验,相关代码已开源。

9194dba8dc000daceee507d30c109925.png

论文题目:

UPop: Unified and Progressive Pruning for Compressing Vision-Language Transformers

文章链接:

https://proceedings.mlr.press/v202/shi23e/shi23e.pdf

代码链接:

https://github.com/sdc17/UPop

网站链接:

https://dachuanshi.com/UPop-Project

随着 AI 模型(例如各种 Transformer [1] 模型)的飞速发展,它们的参数量和计算代价也在急剧增长。要让这些大模型能在更多的消费级设备上使用和部署,模型压缩至关重要。虽然此前的研究者们提出了多种方法用于模型压缩(例如模型剪枝、量化、知识蒸馏等等),但是这些方法主要针对于单模态模型(例如单模态的 CV 和 NLP 模型)。至于如何压缩多模态模型,相对来说是有待探究的。

本文将介绍使用结构化剪枝方法 UPop 实现对于 Vision-Language Transformer 模型的压缩。

2f61df258bbab4fd888ef100dacfa183.png

简介

是什么:UPop 是首个用于 Vision-Language Transformer 模型的结构化剪枝框架,它能够对各种多模态和单模态任务(视觉推理、图像描述、视觉问答、图像-文本检索,文本-图像检索、图像分类和图像分割)、数据集(NLVR2、COCO Caption、VQAv2、COCO、Flickr30K、ImageNet 和 ADE20K)和模型结构(BLIP [2]、CLIP [3]、DeiT [4] 和 Segmenter [5])进行有效的结构化剪枝。

解决了什么问题:视频中演示了:(1)不同于以往使用网格搜索进行重复实验,UPop 使用的 Unified Search 能更高效地为不同模态和结构搜索给定总压缩率下各自的最优压缩率。(2)此外,UPop 使用的 Progressive Pruning 消除了以往的剪枝方法中存在着的,搜索后的模型与待重新训练的子网络之间的参数权重 gap,从而获得了更好的收敛性和在高压缩率下更好的表现。

表现如何:例如在多模态任务上,UPop 能在视觉问答的 VQAv2 数据集和视觉推理的 NLVR2 数据集上分别以 1.2% 和 2.0% 准确度的损失实现 2 倍的压缩。而例如在单模态任务上,UPop 能在图像分类的 ImageNet 数据集和图像分割的 ADE20K 数据集上分别实现 1.5 倍和 1.2 倍不降低准确度的无损压缩,下表展示了 UPop 在 vector-level structured 剪枝粒度下的部分实验结果。

需要注意的是 UPop 的实验结果是使用切实更小的参数矩阵得到的。例如剪枝前的模型参数矩阵为 ,那么剪枝后模型的参数矩阵则为 ,,其中至少有一个小于号是严格的。而对于非结构化剪枝(unstructured/weight pruning)的方法来说,剪枝后模型的参数矩阵为 ,也即剪枝后的模型参数矩阵由原有的模型参数矩阵乘上相同形状 element-wise 的 01 掩码矩阵 得到,剪枝后总体参数形状仍为 (因为矩阵中每行每列非 0 元素数量不同,所以不能实际剪出来一个小矩阵)。

d914062cb528a8dda1506e9ba80048c8.png

17a573ceb74945a8097869b1066111ea.png

方法

2.1 剪枝粒度

UPop 实现的是 vector-level 的结构化剪枝,也即最小的剪枝单元为模型参数矩阵的整行或者整列。相比于非结构化的剪枝方法,vector-level 的结构化剪枝使得UPop 可以将剪枝后的小模型真正地从原模型中抽取出来(矩阵消除整行或整列后仍然是一个合法的矩阵,然而非结构化剪枝会导致矩阵中每行或者每列需要剪掉的参数数量不同,从而剪枝后的参数无法构成一个合法的矩阵)。

总体而言,非结构化剪枝由于具有更精细的粒度,因此剪枝后的模型准确度会相对更高,但是部署会相对更困难。而结构化剪枝由于粒度更粗糙,因此剪枝后的模型的准确度会相对更低,但部署会更简单。UPop 方法本身并不受限于某一种粒度,而具体使用结构化还是非结构化来实现剪枝算法实际上是在模型准确性和可部署性之间的一个 tradeoff,因而在比较剪枝后的模型准确度时应限定在相同的粒度下进行比较才是公平的。

aa4c2ceadc40fb27d711109bdd46c9ee.png

▲ UPop is implemented as a vector-level structured pruning method.


2.2 Unified Search

Unified Search 的使用解决了以往的方法中存在着的第一个 challenge:当给定一个总的压缩率时,我们需要手动地为不同模态中的不同的可压缩成分分配各自合适的压缩率。然而手动分配是十分低效的,尤其是当模型存在着多种类型的可压缩组件时(例如模型的视觉和语言分支中各自的 Self-Attentions, Cross-Attentions 以及 Feed-Forward Nets)。

下面以 50% 的总压缩率为例对比以往的方法和 UPop 所使用

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值