CVPR 2023 | 模块化MoE将成为视觉多任务学习基础模型

简介: CVPR 2023 | 模块化MoE将成为视觉多任务学习基础模型


机器之心专栏

机器之心编辑部

UMass Amherst 淦创团队提出了 Mod-Squad 模型,它可以从多任务大模型中提取针对单一任务的相同性能小模型,在 Taskonomy 大数据集和 PASCALContext 数据集上取得了最佳效果。


多任务学习(MTL)存在很多挑战,因为不同任务之间的梯度可能矛盾。为了利用任务之间的关联,作者引入了 Mod-Squad 模型,它是多个专家组成的模块化模型。模型可以灵活优化任务和专家的匹配,针对任务选择部分专家。模型让每一个专家只对应部分任务,每一个任务只对应部分专家,以此最大化利用任务之间的正向联系。Mod-Squad 整合了 Mixture of Expert (MoE) 层到 Vision Transformer 模型中,并引入了新的损失函数鼓励专家和任务之间的稀疏但强烈的依赖关系。此外,对于每个任务,模型都可以只保留小部分专家网络,并且性能与原来的大模型相同。模型在 13 个视觉任务的 Taskonomy 大数据集和 PASCALContext 数据集上取得了最佳效果。


论文地址:https://arxiv.org/abs/2212.08066项目地址:https://vis-www.cs.umass.edu/mod-squad/Github地址:https://github.com/UMass-Foundation-Model/Mod-Squad
多任务学习(MTL)的目的是建模任务之间的关系,并为多种任务构建统一的模型。如图 1 所示,Mod-Squad 的主要动机就是要让专家只被一些任务更新而不是所有任务,且每一个任务只更新部分专家。这样可以利用模型的全部容量的同时避免任务间的互相干扰。

图 1.Mod-Squad: 专家和任务互相选择。MoE ViT: 所有专家都被所有任务使用。
下面简单介绍下该文章。

模型结构

图 2.Mod-Squad: 将专家组 (mixture-of-expert) 插入到 Vision Transformer.

如图 2 所示, Mod-Squad 的结构就是将 Mixture-of-expert (MoE) 引入 Vision Transformer (ViT)。MoE 是一种机器学习模型,其中多个专家组成了一个混合模型。每个专家都是一个独立的模型,并且每个模型对于不同的输入有不同的贡献。最后,所有专家的贡献被加权并组合在一起以得到最终的输出。这种方法的优势在于它可以根据输入图像的内容动态地选择最佳的专家并且控制计算量。

之前的 MoE 模型收敛后,可以根据不同图片使用不同的专家,但是针对某个任务,模型会收敛到倾向于使用全部专家。Mod-Squad 可以做到让模型针对图片来使用不同的专家,并且模型可以在收敛后,达到一个任务只使用一部分专家的状态。接下来介绍这是怎么实现的。

最大化专家和任务之间的 mutual information

本文提出了一个任务和专家的联合概率模型来优化专家 E 和任务 T 之间的分配。这个概率模型会用来计算专家和任务之间的 mutual information,并作为额外的损失函数来优化 MoE 里的权重网络。Mutual information 公式如下,E 和 T 的概率可以由 MoE 里的权重网络得到,具体可以参见论文。 


最大化任务和专家之间的 mutual information 之后,模型就可以让专家和任务拥有稀疏且非常强的依赖关系,如图 3 所示。最左边的就是 Mod-Squad 的任务使用专家频率。可以看出,Mod-Squad 的任务和专家之间有着更稀疏但尖锐的频率。

图 3. 任务使用不同专家的频率图对比。横轴是不同的专家,纵轴是不同的 task,颜色深代表更高的使用频率。Mod-Squad 的频率图更加稀疏且尖锐。

这个任务和专家之间稀疏且非常强依赖关系的好处就是:
1. 相近的任务倾向于使用同一个专家;2. 专家倾向于被一组正相关的任务使用;3. 模型的容量被全部使用,但每个任务只使用部分容量,可以根据任务调整使用容量;4. 可以针对特定任务从多任务大模型中提取出单任务小模型,并具有和大模型一样的性能。这个特性能用于从超大多任务模型中提取出单任务小模型。

根据任务之间分享专家的频率,模型还可以算出任务之间的相似性,如下图所示。可以看出,偏 3D 的任务之间更倾向于使用相同专家,因此更加相似。

实验部分

Mod-Squad 可以在不损失精度的情况下针对单一任务进行剪枝,下图纵轴是性能,横轴是参数量。


在大数据集 Taskonomy 上也有很大的提升,可以看到,Mod-Squad 比单纯的 MTL 平均高了 2.8 个点,并且在剪枝以后保持着一样的性能。


在 PASCAL-Context 上跟其他方法的对比,Mod-Squad 比其他 MoE 方法平均高出了接近两个点。


具体细节可以参照原文。


相关文章
|
6月前
|
机器学习/深度学习
大模型开发:解释卷积神经网络(CNN)是如何在图像识别任务中工作的。
**CNN图像识别摘要:** CNN通过卷积层提取图像局部特征,池化层减小尺寸并保持关键信息,全连接层整合特征,最后用Softmax等分类器进行识别。自动学习与空间处理能力使其在图像识别中表现出色。
99 2
|
6月前
|
文字识别 前端开发
CodeFuse-VLM 开源,支持多模态多任务预训练/微调
随着huggingface开源社区的不断更新,会有更多的vision encoder 和 LLM 底座发布,这些vision encoder 和 LLM底座都有各自的强项,例如 code-llama 适合生成代码类任务,但是不适合生成中文类的任务,因此用户常常需要根据vision encoder和LLM的特长来搭建自己的多模态大语言模型。针对多模态大语言模型种类繁多的落地场景,我们搭建了CodeFuse-VLM 框架,支持多种视觉模型和语言大模型,使得MFT-VLM可以适应不同种类的任务。
694 0
|
30天前
|
机器学习/深度学习 开发框架 人工智能
[大语言模型-论文精读] 悉尼大学-ACL2024-提升大型语言模型的复杂视觉推理能力
[大语言模型-论文精读] 悉尼大学-ACL2024-提升大型语言模型的复杂视觉推理能力
31 0
|
2月前
|
人工智能 计算机视觉 Python
AI计算机视觉笔记十九:Swin Transformer训练
本文介绍了使用自定义数据集训练和测试目标检测模型的步骤。首先,通过安装并使用标注工具labelme准备数据集;接着修改配置文件以适应自定义类别,并调整预训练模型;然后解决训练过程中遇到的依赖冲突问题并完成模型训练;最后利用测试命令验证模型效果。文中提供了具体命令及文件修改指导。
|
6月前
|
并行计算 算法 物联网
LLM 大模型学习必知必会系列(七):掌握分布式训练与LoRA/LISA微调:打造高性能大模型的秘诀进阶实战指南
LLM 大模型学习必知必会系列(七):掌握分布式训练与LoRA/LISA微调:打造高性能大模型的秘诀进阶实战指南
LLM 大模型学习必知必会系列(七):掌握分布式训练与LoRA/LISA微调:打造高性能大模型的秘诀进阶实战指南
|
6月前
|
人工智能 Python
LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型
LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型
|
6月前
|
机器学习/深度学习 数据可视化 计算机视觉
【YOLOv8改进】MCA:用于图像识别的深度卷积神经网络中的多维协作注意力 (论文笔记+引入代码)
YOLO目标检测专栏介绍了YOLO的创新改进和实战案例,包括多维协作注意力(MCA)机制,它通过三分支架构同时处理通道、高度和宽度注意力,提高CNN性能。MCA设计了自适应组合和门控机制,增强特征表示,且保持轻量化。该模块适用于各种CNN,实验证明其在图像识别任务上的优越性。此外,文章还展示了如何在YOLOv8中引入MCA层的代码实现和相关任务配置。
|
6月前
|
人工智能 数据可视化 物联网
10分钟微调专属于自己的大模型
本文主要介绍使用魔搭社区轻量级训练推理工具SWIFT,进行大模型自我认知微调,帮助初阶炼丹师快速微调出专属于自己的大模型。
|
自然语言处理 Java 物联网
干货!MFTCoder论文多任务微调技术详解
代码大模型(Code LLMs)已经成为一个专门的研究领域,通过使用代码相关数据对预训练模型进行微调来提升模型的编码能力。以往的微调方法通常针对特定的下游任务或场景进行定制,意味着每个任务需要单独进行微调,需要大量的训练资源,并且由于多个模型并存而难于维护和部署。此外,这些方法未能利用不同代码任务之间的内在联系。
422 0
|
机器学习/深度学习 Windows
深度学习原理篇 第三章:SWIN-transformer
简要介绍swin-transformer的原理。
456 0