论文链接:
https://arxiv.org/pdf/2407.01400
简介
提示学习已被广泛采用来有效地适应视觉语言模型(VLM),例如CLIP,用于少量图像分类。尽管取得了成功,但大多数学习方法都需要在分类准确性和鲁棒性之间进行权衡,例如用于域泛化或分布外(OOD)检测。作者引入了全局局部提示(GalLoP),利用全局和局部视觉特征来学习多种不同的提示。局部提示的训练依赖于具有增强的视觉文本对齐的局部特征。为了仅关注相关特征,这种局部对齐与局部特征选择中的稀疏策略相结合。此外,使用新的“提示dropout”技术和局部提示的多尺度策略来强制提示集的多样性。 GalLoP 在领域泛化和 OOD 检测方面都表现出很强的鲁棒性,甚至优于专用的 OOD 检测方法。
论文贡献
(1)有效的局部提示学习。在 GalLoP 中,将局部提示与 k 个图像区域的稀疏子集对齐,从而实现捕获细粒度语义的文本到图像匹配。为了使视觉表示适应下游数据集,采用适合少数镜头学习的简单线性投影来细化视觉局部特征的文本对齐。
(2)强化整体多样性。学习与整个图像一致的全局提示和局部空间定位提示,并加强它们之间的多样性以改善它们的组合。引入新的“提示dropout”策略通过随机化引入多样性,这在学习多个提示时增强了泛化能力。此外,作者采用多尺度策略将局部提示与不同大小的图像区域对齐,捕获概念语义的不同视觉方面。
GalLoP方法
GalLoP旨在从全局和局部 CLIP 的视觉表示中学习不同提示的集合。如图 2 所示,GalLoP 学习两组专门的提示:从全局视觉表示接收信号的“全局提示”,以及仅使用局部特征训练的“局部提示”。
考虑一组 个可学习的局部提示 和一组 个可学习的全局提示 这些提示 中的每一个都由 个可学习的嵌入组成,即 ,并添加到类名嵌入 之前以执行分类。令 表示下游数据集,其中 是图像, 是其类别,令 和 分别表示 CLIP 的文本和视觉编码器。文本编码器生成第 c 类的标准化文本表示 。给定输入图像 ,视觉编码器生成视觉表示 。 可以是用于学习全局提示的全局向量,即 CLIP 已预训练的全局视觉特征。对于本地提示, 将是编码器输出的一组本地化特征。根据其视觉表示 ,图像 被分类到类 的概率可以表示为:
其中 是相似度的度量,是固定的温度缩放参数。使用标准交叉熵损失 训练提示。
为了训练全局提示,使用图像 x 的全局视觉表示,即 。全局向量 和提示之间的相似度简化为余弦相似度,即 ,全局提示 可以通过最小化以下损失函数来训练:
从局部视觉表征中学习提示
本文暂时考虑单个局部提示。在这种情况下,考虑的视觉表示 z 是视觉局部特征的集合,即 。定义向量集为 和第 c 个类的文本表示之间的相似性,
稀疏局部相似性。获得所有区域的单一相似性的一种简单方法是将每个空间位置与类的文本表示的相似性进行平均。然而,局部特征的很大一部分与类别无关,例如来自背景区域的特征,这可能会引入噪声并扰乱学习过程。为了解决这个问题,作者采用稀疏方法,仅保留与类语义相关的局部特征来执行分类。如图3所示,选择与提示类文本表示相似度最高的top-k局部特征,并对它们的相似度进行平均以测量。
将提示 和视觉特征集 之间的相似度定义为 k 个最相似区域的平均相似度:
改善局部文本视觉对齐。将 CLIP 局部视觉特征与下游数据集的类标签的文本表示重新对齐来提高 CLIP 局部视觉特征的判别能力。使用简单的线性投影 θ。为了简化学习过程,将线性层 θ 初始化为恒等式,以便初始特征接近 CLIP 的表示。此后,使用一组线性变换的局部视觉特征θ 来计算分类:
因此,可以通过利用交叉熵损失最大化该概率来优化局部提示。 GalLoP 中的这些设计能够针对局部特征训练强大的分类器:稀疏性有助于关注图像中最相关的区域并消除潜在的背景噪声,而线性投影则增强了文本视觉对齐并提高了精细度。
学习多样性提示
除了利用不同的信息源(全局信息源和视觉信息源)之外,作者还引入了两种增加多样性的机制:“提示dropout”和多尺度训练.
提示dropout。在“提示dropout”中,随机屏蔽批次中每个图像的提示子集。或者,从每个提示的角度来看,选择该批图像的不同子集,从而通过输入随机化在提示的学习过程中引入多样性。
全局提示集的训练是在以下损失的情况下进行的:
多尺度训练。为提高局部提示的多样性,文中为每个局部提示选择不同数量的特定于类的视觉补丁(尺度)。通过这种方式,专用于小尺度的提示将从与小视觉概念相对应的类中获得更多信号,例如“雏菊花”或“尾青蛙”,而以较大尺度学习的提示将从具有更广泛概念的图像中接收更多信号,例如“城堡”或“山谷”。更正式地,令 表示一组递增尺度,其中 为第一个尺度,Δk 为扩展因子。每个局部提示 都将以其相关的尺度 来学习。
然后,通过优化概率来训练 n 个局部提示,每个提示具有不同的尺度,即 k 的值:
训练提示集的总体损失 是局部多尺度损失和全局损失的总和:
实验
如表 1 所示,在 11 个数据集上将 GalLoP 与 ViT-B/16 主干进行比较。平均而言,GalLoP 的表现远超之前的方法,与排名第二的 PromptSRC▷ 相比,高出 +1.5 分。此外,GalLoP 在大多数数据集上表现良好,在提示学习方法中达到了最佳水平。例如,在大规模 ImageNet 数据集上,它的表现比 PLOT 高出 +2.5 pt,比 PromptSRC▷ 高出 +1.9 pt。在某些数据集上,例如 FGVC Aircraft,GalLoP 的表现远超排名第二的方法,与 PromptSRC▷ 相比,高出 +7.5 pt。
图 6a 比较了 GalLoP 与其他提示学习方法的域泛化性能。在 ImageNet(16 个镜头)上进行训练后,模型针对与 ImageNet 具有相同类别的不同域(即 ImageNet-V2、ImageNet-Sketch、ImageNet-A,ImageNet-R)进行 top-1 精度评估。 GalLoP 平均优于域泛化特定方法 PromptSRC⋄ +0.5pt,在 ImageNet 上比它高出 4.9pt。这说明了 PromptSRC 在 top-1 精度和域泛化之间进行的权衡。事实上,GalLoP 的性能优于 PromptSRC▷(专为 ImageNet 精度而设计),在 ImageNet 上高出 1.9 pt,在领域泛化方面平均高出 1.5 pt。 GalLoP 在 top-1 性能和域泛化之间实现了最佳权衡。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。