跳转至

CARPRT: Class-Aware Zero-Shot Prompt Reweighting for Vision-Language Model

会议: ICLR2026
OpenReview: AScQDQqVXY
代码: https://github.com/tmlr-group/CARPRT
领域: 多模态VLM
关键词: 视觉语言模型, 提示集成, 零样本分类, 黑盒推理, 提示重加权

一句话总结

CARPRT 指出现有 VLM 提示集成方法给每个提示模板分配的权重是「全类共享」的,违背了「不同提示对不同类别亲和度不同」的事实;它用一套免训练、纯黑盒(只查相似度分数)的两阶段流程,为每个类别单独估计一组提示权重,在 11 个零样本分类基准上稳定超过 MPE / WPE 乃至人工筛选提示。

研究背景与动机

领域现状:CLIP 这类视觉语言模型(VLM)做零样本分类的标准套路是「提示集成」——把类别名填进多个模板(如「a photo of a [label]」「a satellite photo of [label]」),算图像与每个文本描述的相似度,再聚合成该类的最终得分。聚合时最朴素的做法 MPE(Mean Prompt Ensembling)对所有模板等权平均;WPE(Weighted Prompt Ensembling,原名 ZPE)进了一步,用无标注测试图像给每个模板估一个数据驱动的权重,把「跟下游任务整体不搭」的模板降权。

现有痛点:WPE 给提示 \(p_i\) 估出的权重 \(w_i\) 是在所有类别上共享的——a satellite photo of 这个模板要么对所有类都重要、要么对所有类都不重要。但现实显然不是这样:a satellite photo ofairport 很贴切,配 apple 就荒唐;a type of fruit 这种后缀对 strawberry 是加分项,对 lamb 反而误导。作者在 Flower102 上做了一个对照实验(用真标签模拟「完美的逐类知识」),发现把 WPE 按类别分别施加后准确率明显上升,且不同类别的最优提示权重确实不同(图 1)。

核心矛盾:MPE / WPE 隐含地假设「提示权重与类别条件独立」——给定图像后,一个提示该给多大权重跟它描述的是哪个类无关。这个独立性假设直接限制了权重方案的表达力:它表达不出「同一个提示对 A 类是良药、对 B 类是毒药」这种关系。

本文目标:在「只有一组固定预设模板 + 一批无标注图像、且只能黑盒访问 VLM(只拿得到相似度分数)」的最实用设定下,估出逐类的提示权重,且不需要任何梯度、训练或真标签。

切入角度:作者先用一套概率框架把零样本分类写成 \(\Pr(y^*\mid x^*, P, D)\) 的估计,证明类别无关权重等价于强加了一个会损失表达力的条件独立约束(命题 2:逐类权重能表示的图文关系集合严格包含类别无关权重的集合)。既然逐类更优是有理论保证的,剩下的就是怎么在没有标签的情况下把这组逐类权重估出来。

核心 idea:用「伪标签 + 打分聚合」代替「真标签监督」——对每张图、每个提示先伪标出最像的类,再统计「某提示在它自己认定的某类图像上能拿到多高的相似度」,以此作为该提示对该类的相关性权重。

方法详解

整体框架

CARPRT 的目标是求一个权重矩阵 \(W^*\in\mathbb{R}^{n\times C}\)\(n\) 个提示、\(C\) 个类),第 \(c\)\(W^*_c\) 是专属于类 \(y_c\) 的一组提示权重,取代 WPE 那种「一列权重全类通用」的做法。整条流水线只做两件事、且全程只调用 VLM 的前向相似度查询:第一步用图像编码器与文本编码器算出一个三维打分张量 \(s_{j,i,c}=\text{sim}(z^I_j, z^T_{i,c})\)(第 \(j\) 张图、第 \(i\) 个提示、第 \(c\) 类);第二步从这个张量里先抽伪标签、再聚合成逐类权重矩阵。拿到 \(W^*\) 后,测试时对每个类把各提示的相似度按其权重加权求和,取最高者为预测。

这套流程的合理性由一段概率推导托底:把零样本预测写成对权重空间的边缘积分 \(\Pr(y^*\mid x^*,P,D)=\int_W \Pr(y^*\mid x^*,P,D,W)\,\Pr(W\mid P,D)\,dW\),其中权重后验 \(\Pr(W\mid P,D)\) 的估计落到「类先验」与「类条件似然」上——前者用伪标签的经验分布近似(命题 1:随样本数增大以指数速率收敛到真分布),后者用能量模型把相似度当作负能量来建模。Lemma 1 进一步说明,逐类权重 \(w_{i,c}\) 正是决定每个提示对各类似然贡献的量;CARPRT 的两个阶段,本质就是这套概率分析的「可计算实现」。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["无标注图像 + 固定提示池 + 类别名"] --> B["打分张量计算<br/>s(j,i,c)=sim(图像,提示×类别)"]
    B --> C["逐类权重计算<br/>伪标签聚合 + 温度归一化"]
    C --> D["黑盒推理<br/>按类加权打分→取最大<br/>(可选迭代精化)"]

关键设计

1. 逐类提示权重:一个提示的好坏要看它描述的是哪个类

CARPRT 的全部出发点,是把 WPE「权重在类间共享」这条隐含假设拆掉。作者用概率框架给出了形式化理由:在能量模型视角下,图像 \(x_j\) 在类 \(y_c\) 下的相对似然正比于 \(\exp\big(\sum_i (w_{i,c} z^T_{i,c})^\top z^I_j\big)\)(Lemma 1),其中权重 \(w_{i,c}\) 带类下标 \(c\)——也就是说,最一般的提示集成形式本来就允许逐类权重。WPE 这类方案强行令 \(w_{i,1}=w_{i,2}=\dots=w_{i,C}\),等于把一个本可逐类变化的量按死。命题 2 把这件事说死:类无关权重能表示的图文似然函数集合 \(\mathcal{F}_{CI}\) 是逐类权重集合 \(\mathcal{F}_{CS}\)真子集,所以存在某些图文关系类无关方案根本表达不出来。结论是:要榨干提示集成的潜力,权重必须逐类——这不是工程偏好,而是表达力上的硬约束。

2. 打分张量:一次前向把所有「图×提示×类」相关性算齐

要逐类估权重,先得有逐类的「相关性原料」。CARPRT 对无标注集 \(D\) 里每张图 \(x_j\)、每个模板 \(p_i\)、每个类 \(y_c\),算出相似度 \(s_{j,i,c}=\text{sim}(z^I_j, z^T_{i,c})\),其中 \(z^T_{i,c}=g(p_i(y_c))\) 是「把类 \(y_c\) 填进模板 \(p_i\)」后的文本嵌入。这堆数构成一个 \(m\times n\times C\) 的打分张量,每个元素都是 \(\Pr(x_j\mid y_c,W,P)\) 的一个未归一化估计。关键在于:公式里虽然写成嵌入内积,实际只需要 VLM 吐出的相似度标量,不需要拿到嵌入向量本身——这让 CARPRT 能挂在一个只暴露「打分接口」的黑盒 CLIP 上跑。这张张量是后面一切聚合的唯一信息来源。

3. 伪标签聚合 + 温度归一化:把打分张量压成逐类权重矩阵

有了张量,怎么在没标签的情况下判断「提示 \(p_i\) 对类 \(y_c\) 到底有多相关」?CARPRT 的答案是「让提示自己投票」。先对每个(图,提示)对取最像的类,得到伪标签 \(\hat{y}_{j,i}=\arg\max_{y_c} s_{j,i,c}\)。然后对每个(提示,类)对,把所有被该提示伪标成 \(y_c\) 的图像上的相似度做平均,得到中间权重

\[w'_{i,c}=\frac{\sum_{j=1}^m s_{j,i,c}\,\mathbb{1}_{\hat{y}_{j,i}=y_c}}{\sum_{j=1}^m \mathbb{1}_{\hat{y}_{j,i}=y_c}}.\]

直觉上,\(w'_{i,c}\) 衡量「当提示 \(p_i\) 自己把某图认成 \(y_c\) 时,它给出的相似度有多强」——既反映相关性强度,又通过计数隐式编码了类先验(呼应命题 1 用伪标签估类分布)。最后对每个类把各提示的中间权重做带温度的 softmax 归一化:

\[w^*_{i,c}=\frac{\exp(w'_{i,c}/\tau)}{\sum_{j=1}^n \exp(w'_{j,c}/\tau)}.\]

温度 \(\tau\) 控制分布尖锐度:\(\tau<1\) 把权重集中到强提示上但牺牲多样性,\(\tau\) 大则趋于均匀;实验里 \(\tau=1.0\) 在相关性与多样性之间最平衡。归一化保证每类权重和为 1,维持概率合法性。整个第二阶段没有任何参数更新。

4. 黑盒推理与可选迭代精化

拿到 \(W^*\) 后,测试图 \(x^*\) 的预测是把各提示的相似度按其逐类权重加权聚合:\(\hat{y}(x^*)=\arg\max_c \sum_{i=1}^n w^*_{i,c}\, s_{*,i,c}\),其中 \(s_{*,i,c}=\text{sim}(z^I_*, z^T_{i,c})\)。这一步同样只需要相似度分数,不碰参数、梯度或内部嵌入,所以是彻底的 score-only 黑盒推理。作者还给了一个可选的迭代精化:用当前权重把各提示的预测融合成更准的伪标签,再回去更新权重,如此交替——全程无梯度、无真标签,伪标签质量越高、权重估得越准,实验显示能稳定带来增量。

一个完整示例

设无标注集里有一批花卉图,提示池含 P1「a photo of a [ ], a type of flower.」、P2「satellite photo of [ ].」、P3「a close-up photo of the [ ].」。对某张 Marigold 图:P1 与 P3 给「Marigold」算出的相似度高、把它伪标成 Marigold,P2(卫星视角)则把它伪标到别处。在聚合阶段,统计所有「被 P1 伪标成 Marigold」的图像,P1 在 Marigold 上拿到的平均相似度很高 → \(w'_{P1,\text{Marigold}}\) 大;而 P2 几乎从不把图认成 Marigold,对应计数小、权重低。归一化后,Marigold 这一列里 P1/P3 权重高、P2 权重几乎为零。反观 airport 这类类别,P2(卫星视角)就会拿到高权重。最终同一个提示 P2 在不同类的列里权重天差地别——这正是 WPE 那种「P2 全类一个权重」做不到的。

实验关键数据

主实验

11 个细粒度/大规模基准,三种配置(CLIP-ViT-B/16、CLIP-ResNet50、DeCLIP-ViT-B/32),统一用 Allingham et al. 的 247 个模板。下表为 CLIP-ViT-B/16 上的平均准确率(%):

方法 Flower102 Pets EuroSAT ImageNet 11 项平均
MPE 64.21 79.46 51.86 67.59 64.26
Majority Vote 67.20 81.27 52.07 67.98 65.08
WPE 66.60 82.38 49.60 68.28 65.13
CARPRT 71.36 89.13 55.56 68.59 67.45
Human Selection* 71.23 88.91 47.60 68.31 65.34

* Human Selection 用 CLIP 作者人工筛的提示、引入外部知识,本不与自动方法直接可比;CARPRT 仍超过它。语义边界清晰的数据集(Flower102 +4.76、Pets +6.75 相对 WPE)增益最大,Aircraft 这类高度专业、伪标签本就难的域增益小。

消融实验

配置 11 项平均 说明
CARPRT(完整) 67.45 逐类权重
CARPRT-Uniform ↓ 平均 2.39 先算逐类权重再跨类平均成全局权重,保留打分机制但丢掉类级适配

分布漂移鲁棒性(CLIP-ViT-B/16,权重只在 in-distribution ImageNet 上估一次后直接迁移):CARPRT 在 ImageNet 五个变体上平均 61.73,超过 WPE 的 61.08 与 MPE 的 60.51,全列最高。

关键发现

  • 类级适配是收益主来源:CARPRT-Uniform 把逐类权重平均掉后平均掉 2.39%,且仍优于 WPE,说明「打分机制」与「类级适配」各有贡献,但后者是关键。
  • 温度不敏感\(\tau=1.0\) 跨任务稳定,无需逐任务调参;过小过大都掉点(图 4)。
  • 伪标签质量决定增益上限:显式过滤低置信伪标签(按置信度/熵)只带来边际且不稳定的提升,说明不必显式过滤;反而迭代精化随伪标签变准而稳定上升。
  • 更好的提示能放大收益:把通用模板换成 LLM 生成的领域提示后 CARPRT 进一步变强,说明它对提示质量是「顺势而为」而非死磕通用池。

亮点与洞察

  • 把「提示权重该不该逐类」从直觉升级成可证的表达力命题:命题 2 用「可表示似然集合的真子集」关系,把「类无关权重更弱」说成数学事实,而不是又一个 trick——这让方法动机站得很稳。
  • 伪标签 + 打分聚合替代监督:在完全无标签、纯黑盒的约束下估出逐类权重,整套只用相似度标量、零梯度零训练,可以当成现有 CLIP 零样本流水线的即插即用替换件。
  • 「让提示自己认类、再统计它在自己认的类上有多强」这个聚合设计很巧:它同时编码了相关性强度和类先验,且天然对「某提示从不认某类」给出近零权重,思路可迁移到任何「多源打分、需按目标类自适应加权」的集成场景。

局限与展望

  • 依赖初始伪标签质量:在 Aircraft 等专业域,基座 VLM 的伪标签本身就差,CARPRT 增益受限——这是方法的天花板所在。
  • 需要一批无标注图像来估权重:纯单样本/即时场景下没有 \(D\) 可统计,逐类权重就估不出;权重估计也对该集合的类覆盖与样本量敏感(ImageNet 大样本才有稳定迁移)。
  • 理论用了能量模型 + 条件独立等简化假设:相对似然推导依赖 \(\ell_2\) 归一化嵌入与内积相似度等前提,实际 VLM 不完全满足,命题给的是方向性保证而非精确等式。
  • 可改进方向:把迭代精化与 LLM 生成的领域提示更紧地耦合,或对低质伪标签做更结构化的加权而非简单过滤,可能在专业域进一步抬升。

相关工作与启发

  • vs MPE(Mean Prompt Ensembling):MPE 对所有提示等权平均(\(W\) 全 1 矩阵),CARPRT 给每类每提示一个学到的权重;MPE 在提示池含误导模板时直接被拖累,CARPRT 能把它们逐类降权。
  • vs WPE / ZPE(Allingham et al. 2023):WPE 是 CARPRT 最直接的对手,它给每个提示估一个全类共享权重;CARPRT 证明这等价于强加条件独立、损失表达力,并把权重扩展到逐类。CARPRT 复用了 WPE 的 247 模板与打分思路,但把「一列权重」变成「一个矩阵」。
  • vs Majority Vote:多数投票只用每个提示的硬预测做众数,丢掉了相似度的连续信息;CARPRT 保留并聚合连续相似度,信息利用更充分。
  • vs LLM 生成类描述的路线:那条路靠 LLM 生成更丰富的类描述提性能,但引入重计算开销、削弱零样本的「轻量」优势;CARPRT 不改提示内容、只改权重,且能与 LLM 提示叠加增益。

评分

  • 新颖性: ⭐⭐⭐⭐ 「逐类 vs 类无关」的切入点清晰,并用表达力命题把直觉证成定理,少见的「动机有理论支撑」的小而美工作。
  • 实验充分度: ⭐⭐⭐⭐ 11 基准 × 3 架构 + 分布漂移 + 温度/伪标签消融,覆盖到位;但都是分类任务,对「更广 VLM 应用」的承诺主要靠附录支撑。
  • 写作质量: ⭐⭐⭐⭐ 概率框架与两阶段实现衔接顺,图 1 动机实验有说服力。
  • 价值: ⭐⭐⭐⭐ 免训练、黑盒、即插即用,能直接挂到现有 CLIP 零样本流水线上,落地门槛低。