Visual Prompt

本文介绍了VisualPromptTuning技术,一种用于视觉大模型微调的方法,包括VPTDeep和VPTShallow两种方式。论文对比了多种微调策略,如全参数微调、线性层和Adapter等,并在FGVC和VTAB任务上展示了VPT的优势,尤其是在少量训练数据情况下。此外,VPT适用于多种Backbone模型,如ViT、Swin和MocoV3。
部署运行你感兴趣的模型镜像

视觉大模型微调技术——Visual Prompt Tuning


论文代码放在此处,方便感兴趣者快速获取。

写在前面

  • 最近随着大语言模型的火热发展,Prompt技术在LLMs中的应用也受到了大量研究学者、工程技术人员的关注,但目前在NLP领域中似乎应用的更多一些。但在当前的浪潮下,视觉大模型的崛起也是必然趋势,那么将Prompt技术应用于视觉领域进行微调,可能也会是一个让视觉大模型在特定下游任务上取得良好表现的好思路。
  • Visual Prompt Tuning 这篇论文其实是2022年的作品了,所以应该这方面很可能还有更多研究投入,本人也在逐渐学习中,因此这篇文章可能会持续更新。
  • Visual Prompt Tuning(视觉提示微调技术,下简称VPT)。

一图速读论文框架

Visual Prompt OverView

  • 论文贡献
    • 提出了Transformer架构下视觉大模型的两种微调方式: VPT Deep(上图(a))和VPT Shallow(上图(b))。
    • FGVC和VTAB的共计24个下游任务做了VPT与其他7种微调方法的对比实验,VPT Deep在20个下游任务上的average accuracy 都优于其他微调方法,包括全参数微调,这个现象是在当时prompt技术在NLP任务中不曾表现出来过的
    • 在少量训练数据的情况下,VPT也能表现优异
    • VPT可以适配ViT,Swin, 和MocoV3等Backbone模型做下游任务的微调。

微调方法对比实验

  1. 对比了其他哪些微调方法?

    类型方法简介
    全参数微调backbone+classifier head
    分类头微调只微调线性层
    partical-k
    MLP-k
    更新子集Sidetune
    Bias
    引入新的可学习参数Adapter
  • 全参数微调方法:更新backbone和分类头的所有参数。
  • 只微调分类头的方法
    即将预训练的骨干网络视为特征提取器,在微调过程中保持其权重不变,只更新分类头的参数。具体有以下方法:
    • 线性层:只使用线性层作为分类头。
    • 部分-k:微调骨干网络的最后k层,同时冻结其他层,这在[85,88,60,30]中被采用。它重新定义了骨干网络和分类头之间的边界。
    • 多层感知机(MLP)-k:将多层感知机(MLP)与k层代替线性层作为分类头。
  • 更新backbone子集或添加新的可训练参数的方法
    • Sidetune:训练一个"side"网络,并在线性插值之前将预训练特征和side-tuned特征进行插值,然后输入到分类头。
    • Bias:仅微调预训练骨干网络的偏置项。
    • Adapter:在Transformer层内部插入具有残差连接的新MLP模块。
  1. 论文中在哪些下游任务上验证了VPT微调的有效性?

    • FGVC (Fine-Grained Visual Classification tasks) , 包含5个视觉分类任务

      备注:具体为CUB-200-2011、NABirds、Oxford Flowers、Stanford Dogs、Stanford Cars五个任务

    • VTAB ,包含19个视觉分类任务,每个任务都有1000个训练样本。

      备注:VTAB的19个视觉分类任务又划分为三种类型,即Natural - tasks(图片由标准相机拍摄), Specialized - tasks(由专业设备捕获的图像,如医疗和卫星图像), Structured - tasks(目标计数等), 文中给出的准确率也是按照这三种类型分别给出的。

  2. 实验设置:

    • 对train set 做8/2的划分
    • 最后一次evaluation时会使用全部的training data
    • average accuracy是在test set上跑了三次取的均值
  3. 实验结果

    不同微调方法在不同data scale下的表现
    在这里插入图片描述
    不同微调方法在不同back-bone下的表现
    在这里插入图片描述
    不同微调方法在24个下游任务上的指标

其他

关于Visual Prompt Tuning后续也有很多相关的研究和论文,此处列出一些供感兴趣者继续学习。

[1]: Exploring Visual Prompts for Adapting Large-Scale Models
[2]: Explicit Visual Prompting for Low-Level Structure Segmentations(CVPR 23)

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

### 关于视觉提示 (Visual Prompt) 的概念及其在信息技术中的定义和应用 #### 定义 视觉提示是指通过图像、图形或其他可视化形式向计算机系统提供额外的信息或指导。这些提示可以用于引导机器学习模型理解特定的任务需求,尤其是在涉及复杂数据集的情况下[^1]。 #### 应用场景 1. **增强现实(AR)** 和 **虚拟现实(VR):** 视觉提示广泛应用于 AR/VR 技术中,帮助设备识别环境特征并作出相应反应。例如,在游戏开发中,开发者可以通过设置特定的标记作为触发条件来启动某些事件。 2. **自动驾驶汽车:** 自动驾驶车辆利用摄像头捕捉道路状况,并借助预先训练好的算法解析交通标志和其他重要物体的位置与状态。这种基于视觉的数据处理对于确保行车安全至关重要。 3. **医疗影像分析:** 在医学领域,医生们会使用带有标注的关键部位图片作为输入给AI诊断工具,以便更精准地定位病变区域以及评估病情发展情况。 4. **自然语言处理(NLP) 中的多模态融合:** 当前一些先进的 NLP 解决方案不仅依赖纯文本信息,还会结合来自其他感官渠道(如声音波形图谱或者视频帧序列)的知识共同完成语义解释工作。这种方式能够显著提升对话系统的交互质量和服务效率。 ```python import cv2 from matplotlib import pyplot as plt def visualize_image(image_path): img = cv2.imread(image_path) rgb_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) plt.imshow(rgb_img) plt.axis('off') plt.show() # Example usage visualize_image('./example.jpg') ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

steptoward

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值