Redian新闻
>
视觉prompt工程!无需微调、无需任何模型修改,让一个通用模型可以执行多种指定任务

视觉prompt工程!无需微调、无需任何模型修改,让一个通用模型可以执行多种指定任务

公众号新闻


MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。
社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。
转载自 | 极市平台
作者丨科技猛兽

太长不看版

提出一个问题的解决方案:如何在没有特定任务微调或任何模型修改的情况下将预训练好的视觉模型适应新的下游任务?注意几个关键词:没有微调以及任何模型修改,预训练好的模型,适应不同新的任务。
这个事情在 NLP 的 GPT-3 模型当中做过,解决方案是:Prompt。
面对新的任务,在推理时给 GPT-3 输入输出的示例和新的输入 (Prompt),目标是自动生成输出结果,且与给定示例一致。
因此,本文希望在视觉中实现这一点,即:在推理时,给定新任务的输入输出图像示例和新输入图像,目标是自动生成输出图像,与给定示例一致。
那如何解决这个问题呢?本文的结论是:只要在正确的数据进行训练,并将这个问题作为图像修复问题 (image inpainting),就可以解决。
作者在 Arxiv 学术论文的 88k 张无标注数据集上进行训练,并在很多图像到图像的下游任务,比如前景分割,单目标检测,着色,边缘检测上证明了方法的有效性。

本文做了什么工作

  1. 证明许多计算机视觉任务都可以按照图像修复任务来对待,只需给一些任务输入和输出示例和查询图像就可以做成。
  2. 构建了一个包含 88000 量的大型数据集,允许模型能够学习图像修复任务。无需任何标注信息,任务相关的描述。
  3. 展示出为训练数据集增加额外数据 (比如 ImageNet) 能获得更好效果。
论文名称:Visual Prompting via Image Inpainting (NeurIPS 2022)

译名:通过图像修复任务完成视觉提示

论文地址:http://arxiv.org/pdf/2209.00647.pdf
论文主页:http://yossigandelsman.github.io/visual_prompt/

语言模型中一个通用模型做多种下游任务的特点能否迁移到视觉领域?

在过去的几年里,自监督学习在计算机视觉和自然语言处理中越来越受欢迎。现代深度学习模型的容量日益增大,使它们在较小的有标注数据集上训练时容易出现过拟合现象。自监督学习为这个问题提供了很好的解决方案,即解决这些高容量深度学习模型的数据饥饿问题。
但是,自监督学习学到的特征并不是 "拿来即用 (ready for use)" 的,通常需要通过对一些有标注数据集进行微调来适应给定的下游任务。那么,有没有可能去避免这种微调?
其实这个问题在 NLP 中早就已经被解决掉了,解决的方法就是所谓的提示 (Prompt)。Prompt 的意思是对于一种特定的语言理解任务,在测试时为期提供对应于目标任务的示例输入,和 query 信息。比如,下面就是一个 Prompt 的信息:
Je suis désolé I'm sorry
J'adore la glace
模型的结果是:
I love ice cream
对不同的下游任务,在测试时给提示的作法能否推广到视觉领域?换言之,与现在的 CV 任务一个模型做一个任务的范式不同,我们可否拥有一个通用模型,可以执行多种用户指定的任务,且无需任何权重微调?
本文提出:只要在正确的数据上进行训练大规模的图像修复 (image impainting) 模型,就能够成为视觉提示 (Visual Prompting) 的工具。
如下图1所示,作者构建了一个网状图片。其中,任务的输入输出示例和新的 query 使用绿色框,然后模型通过简单地修复图像的其余部分来生成结果,结果使用红色框。作者简单地将它们连接成一个带有黑色孔的单图像。本文方法的唯一要求是任务必须被定义为 image to image translation,这是视觉问题的一个非常大的子集。
图1:通过图像修复进行视觉提示
通过这样的做法,就可以利用图像修复进行视觉提示。这个问题就能很好地解决。当新的下游任务 (比如 Segmentation) 出现时,只需要给一个输入输出示例,和 query。再把它们排列成网格状送入模型,就能够输出对应的结果。

MAE-VQGAN 方法介绍

给定一张输入图片x∈R^{HxWx3}和一个二值化的 mask 矩阵m∈{0,1}^{HxW}, 图像修复函数f的目标是合成新的图像y∈R^{HxWx3}, 即把 mask 位置填上:
为了训练f函数,本文提出 MAE-VQGAN 方法,由 MAE[1]和 VQGAN[2]模型构成,如下图2所示。
图2:MAE-VQGAN 方法介绍
在训练期间,输入图像被像 ViT 那样分成 Patches,再 mask 掉一些 Patches 并送到 MAE 中。与直接预测像素的 MAE 不同,MAE-VQGAN 通过 softmax 层预测 visual token。作者通过使用 VQGAN Encoder 将图像映射成为 visual token 的 indices 来获得 GT 的 visual token。对于每个 masked token,解码器输出预训练的 VQGAN code book 上的分布。该模型使用交叉熵损失进行训练。
假设z hat = (z_1 hat, ..., z_k hat) 是预测的 visual token 的有序集合,为了得到z_i hat,作者使用argmax函数:
最后,为了将 visual tokens 解码回像素,再使用 VQGAN Decoder 通过z hat来输出y。

给训练好的图像修复模型加提示

作者构建了一个视觉提示 (Visual Prompt),一个由任务输入输出示例和新的 query 图像组成的网格状图像。修复模型必须修复图像的空白部分。
定义S={(x_i,y_i)},(i=1,...,n)为输入输出图像示例, 比如x_i是输入图片, y_i是 segmentation mask。然后给定一个新的 query 图像x_q, 目标是预测对应的标签y_q。作者需要定义一个函数g, 该函数将示例集S和查询图像x_q映射成新的图像和掩码:
其中, 图像x_vp是视觉提示, 掩码m定义了修复模型应该预测的部分。
修复模型的目标是根据视觉提示x_vp, 在不执行任何额外的训练的情况下输出y_vp, 并取出 mask 对应的部分得到y_q。

Visual Prompt 的设计

函数g的作用是将示例集S和查询图像x_q映射成新的图像和掩码。本文的函数g创建一个图像, 它包含(n+1)*2个 cells, 第i对输入输出示例就在第i行, 最后一行左侧是 query 图像。作者在实验部分讨论了多种 Visual Prompt 的设计方案和对应的结果。

数据集

函数g生成的图像不是自然图像。具体而言,这些图像具有类似网格的网状结构,因为是将来自不同分布的图像拼接在一起,如自然图像和分割掩码。因此,在像 ImageNet 这样的标准数据集上训练出来的模型可能难以处理这种网格状的图像。为此作者创建了一个新的数据集 Computer Vision Figures。
这个数据集包含 88, 645 张图片,更接近本文视觉提示的结构。该数据集是从 Arxiv 收集的。作者下载了从 2010 到 2022 年的所有论文,并提取了 cs.CV 分区,因为它们包含更类似于网格结构的图像,如下图3所示。
图3:Computer Vision Figures 中的随机图片示例
为了删除不相干的源图片,例如图标,作者手动标记了 2000 张图片,并训练了一个二值图像分类器。分类器为那些具有图形状结构且至少一张自然图像的图片分配高分。然后,作者对整个数据集使用这个分类器,只保留信息量最大的图片,来自 23302 个不同的论文。作者随机划分 90% 的数据用于训练,其余用于验证。

实验结果

为了研究模型选择对提示结果的影响,作者使用了不同的模型进行实验,包括 MAE-VQGAN 和 VQGAN,BEiT,和 MAE 等等其他几个修复模型。

下游任务实验结果

视觉提示的构建策略:给定1个示例对和1个查询图像,作者以相同的方式为所有的任务构建视觉提示:作者构建了一个 2×2 的网格,包含4个子图。其中,输入输出示例在第1行,query 图像出现在第2行左下角。如图1所示。
作者在3个视觉任务上面评估图像修复模型。
前景分割 (Foreground Segmentation) 任务:目标是将查询图像二进制分割为前景和背景。输入输出示例是一张图片及其对应的二值分割掩码,query 图片是新的图像,目标是获得其二值分割掩码。作者使用 Pascal-5i 数据集,并报告 mIoU 指标。
单目标检测 (Single Object Detection) 任务:与前景分割类似,这个任务的目标是对 query 图像中出现的 Object 进行二进制分割。然而,这项任务比前景分割更具挑战性,因为 mask 是从边界框中获得的。作者使用 Pascal VOC 2012 数据集及其相关的检测框。为简单起见,作者使用 Pascal 注释仅包含具有 Single Object 的图像,并过滤掉那些 Object 覆盖了超过 50% 图像的图像。作者遵循与前景分割类似的过程来获得二进制分割掩码,并报告 mIoU 指标。
图像着色 (Colorization) 任务:目标是将灰度图像映射到彩色图像。示例对是灰度图像和相应的彩色图像,如图 4 所示。作者从 ImageNet 验证集中随机抽取 1000 个示例对和图像 query,并将它们转换为灰度以获得每个图像的灰度和着色版本,并报告了 MSE 损失和 LPIPS 指标。
图4:视觉提示预测示例
实验结果如下图4和5所示。MAE-VQGAN 在检测和分割方面大大优于其他模型,并且生成了比 MAE 更清晰的图像。可以发现 VQGAN 很难输出准确的结果,这可能是由于顺序解码。BEiT 模型的表现优于 MAE。
图5:视觉任务的视觉提示结果

合成数据研究

为了评估修复模型的组合预测能力,作者创建了 3 个简单的合成任务以及它们的组合,并在每个任务 100 个示例上评估每个模型。
视觉提示策略:给定2个示例对和1个 query 图像,作者以相同的方式为所有的任务构建视觉提示:作者构建了一个 3×2 的网格,包含6个子图。其中,输入输出示例在前2行,query 图像出现在第3行左下角。如下图6所示。
图6:合成数据研究结果
每个示例对都有一个彩色形状的图像,以及另一个相应的带有一些变化的图像。这些变化可以是颜色、形状、大小或两者的组合,示例图详细的描述如下:
Resize:每个示例对都包含一个圆的图像,以及一个圆圈大小较小的对应图像。目标是在给定图像 query 的情况下使用调整大小的版本预测图像。
Shape:每个示例对都是一个带圆圈的图像,以及一个带有矩形的相应图像。两者的大小相似,出现在同一个位置。目标是在给定新的图像 query 的情况下,用矩形预测图像。
Color:每个示例对都包含一个出现在同一位置的圆图像,颜色从绿色变为蓝色。给定一个新的图像 query,目标是预测对应的图像,圆用蓝色着色。
评估:作者从一组预定义的选项中将每个预测像素映射到其最近邻颜色:黑色、白色、蓝色或绿色。然后通过将出现在 GT 形状颜色中的像素预测视为前景,并将其余部分视为背景来测量和报告颜色感知 mIOU。
实验结果如图7所示。从结果可以发现,如果本文模型没有在本文提出的数据集上面进行预训练,图像修复模型就无法泛化到这些之前从来没有见过的任务。当所有的模型都在本文提出的数据集进行预训练之后,所有的模型性能都会提高。但是由于复杂性增加,相同的模型可能会难以处理任务的组合。VQGAN 模型使用顺序解码,缺乏上下文导致性能不佳。MAE 模型在颜色上优于 MAE-VQGAN,BEiT 在 Resize 上不佳。这些模型需要 dVAE 或者 codebook,可能不适合这些任务。
图7:合成数据研究结果

数据集规模的影响

作者评估了数据集规模对预训练的影响。作者尝试了仅在 ImageNet,或者仅仅使用本文数据集,以及和二者组合这几种情况训练。如下图8所示是 Pascal-5i 上的前景分割实验结果。在 ImageNet 上训练的 MAE-VQGAN 实现了始终低5个点的 mIoU。在组合数据集上训练的模型表现最好,这表明 MAE-VQGAN 可以从大量无标注图像中获益。
图8:Pascal-5i 上的前景分割的实验结果。在更多的数据上预训练 MAE-VQGAN 可以改善视觉提示的结果

视觉提示工程

作者探索了为前景分割任务构建不同的视觉提示及其相应的 MAE-VQGAN 结果。可以发现,模型在更改提示布局,比如水平顺序与垂直顺序 (图8所示) 和更改掩码颜色、纹理或仅使用边缘时 (图9所示) 都可以生成合理的补全。
图9:视觉提示实验结果。以及所选的 Patch 的平均注意力图 (用黑色边界框注释)
图10:视觉提示工程
图11中的 mIoU 结果表明,当分割掩码为黑白,且提示为垂直布局的情况下,模型表现最好。有趣的是,通过分析掩码 token 的平均注意力头,可以观察到注意力会随着提示布局的变化而发生变化。
图11:使用不同的 Prompt 的提示工程实验结果
参考
  1. ^Masked Autoencoders Are Scalable Vision Learners
  2. ^Taming Transformers for High-Resolution Image Synthesis


技术交流群邀请函

△长按添加小助手

扫描二维码添加小助手微信

请备注:姓名-学校/公司-研究方向
(如:小张-哈工大-对话系统)
即可申请加入自然语言处理/Pytorch等技术交流群

关于我们

MLNLP 社区是由国内外机器学习与自然语言处理学者联合构建的民间学术社区,目前已经发展为国内外知名的机器学习与自然语言处理社区,旨在促进机器学习,自然语言处理学术界、产业界和广大爱好者之间的进步。
社区可以为相关从业者的深造、就业及研究等方面提供开放交流平台。欢迎大家关注和加入我们。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
一切都不一样了Llama 3突然来袭!开源社区再次沸腾:GPT-4级别模型可以自由访问的时代到来LLM上下文窗口突破200万!无需架构变化+复杂微调,轻松扩展8倍【讲座】Llama 3技术剖析、微调、部署以及多模态训练字节发布视觉基础模型ViTamin,多项任务实现SOTA,入选CVPR2024全网首发!Llama 3技术剖析、微调、部署以及多模态训练CVPR 2024 | 通用视觉新突破!UC伯克利提出首个无自然语言的纯视觉大模型清华推出首个通用城市时空预测模型UniST,零样本场景开箱即用|KDD2024CVPR 2024 | 基于MoE的通用图像融合模型,添加2.8%参数完成多项任务英伟达开源最强通用模型Nemotron-4 340B检测一切!Visual Prompting:视觉提示扩展检测模型能力OpenAI掌门人最新专访:GPT-4o让我爱不释手 下代大模型可能不叫GPT-5吴恩达团队新作:多模态多样本上下文学习,无需微调快速适应新任务吉娃娃or松饼难题被解决!IDEA研究院新模型打通文本视觉Prompt,连黑客帝国的子弹都能数清楚Mamba遇见扩散模型!DiM:无需微调,高分辨图像生成更高效!Mamba视觉新主干!悉尼大学&商汤提出LocalMamba:新的视觉状态空间模型37项SOTA!全模态预训练范式MiCo:理解任何模态并学习通用表示|港中文&中科院无需人类或GPT-4打标签!南大&旷视研究院无监督范式大幅降低视觉大模型对齐成本英伟达开源3400亿巨兽,98%合成数据训出最强开源通用模型!性能对标GPT-4o如何快速掌握 Prompt 核心技巧与 GPT 技术理论?| 极客时间参与图书馆空间改造ChatGPT 之父最新专访:发现 GPT-4o 惊喜用途,下一代模型可能不是 GPT-5玻璃缸里的孙凤 (53)OpenAI掌门人:GPT-4.0让我爱不释手 下代大模型可能不叫GPT-5科学家开发出首个通用、可编程、多功能光子芯片如何快速掌握 Prompt 核心技巧与 GPT 技术理论? | 极客时间ISSTA 2024 | 北大提出CoderUJB,面向代码大模型的可执行多任务代码评估基准揭示真实能力与局限通用图大模型HiGPT:一己之力建模任何图结构关系!来自港大数据智能实验室&百度微软开抢年收入上亿美元的 Redis 饭碗?开源性能遥遥领先的 Garnet:无需修改,Redis 客户端可直接接入RAG还是微调?万字长文总结大模型微调技能图谱LSTM杀入视觉!Vision-LSTM:全新的通用视觉主干!临王宠《竹林七贤》第一遍早春二月杏花开今日arXiv最热NLP大模型论文:一文读懂大模型的prompt技术曾经火出圈的提示工程要死了吗?危!大模型能自己优化Prompt了
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。