TIPSv2:通过增强的 Patch-Text 对齐推进视觉-语言预训练 TIPSv2: Advancing Vision-Language Pretraining with Enhanced Patch-Text Alignment
TIPSv2 提出 iBOT++ 损失与多粒度文本增强,显著提升 ViT 视觉编码器的 patch-text 对齐。
前置知识
Vision Transformer (ViT)
ViT 是将 Transformer 架构应用到图像领域的模型。它把图像切分成固定大小(如 14×14 或 16×16 像素)的 patch,把每个 patch 线性投影成 token 后送入标准 Transformer 编码器。一个图像通常被切成数百个 patch token,外加一个 [CLS] token 代表全局语义。ViT 的输出既包含 [CLS] 的全局特征,也包含每个 patch 的局部特征。
本文核心是 patch 级的语义对齐,理解 ViT 既能输出全局特征又能输出 patch 局部特征是看懂 iBOT++ 的前提。
对比学习与图像-文本预训练 (CLIP/SigLIP)
CLIP/SigLIP 等模型通过 InfoNCE 或 Sigmoid 损失在大规模图像-文本对上做对比学习,让匹配的图像和文本在共享嵌入空间中靠近、不匹配的推远。CLIP 用 softmax 归一化的 InfoNCE,SigLIP 用 sigmoid 二分类损失。训练出的 [CLS] 图像特征天然与文本对齐,但 patch 特征通常没有显式的语言对齐。
TIPSv2 的训练目标 $L = L_{CLIP} + L_{DINO} + L_{iBOT++}$ 中 $L_{CLIP}$ 就是 SigLIP 风格的对比损失,patch-text 对齐的难点就来自全局对比学习对 patch 局部语义没有直接监督。
掩码图像建模 (MIM) 与 iBOT
MIM 把图像 patch 随机遮住一部分,让模型根据可见 patch 预测被遮住的内容。iBOT 采用 student-teacher 框架:teacher 看到原图,student 看到被遮住的图,student 必须把被遮 patch 的特征预测成 teacher 看到原图时该位置的 patch 特征。传统 iBOT 只在被遮住的 patch 上计算损失,对可见 patch 没有任何直接约束。
本文提出的 iBOT++ 正是对 iBOT 损失的关键修改,让可见 patch 也参与损失,这是理解核心创新的关键。
自蒸馏与 EMA 教师
自蒸馏方法(如 DINO、iBOT、DINOv2)通常维护一个 teacher 网络是 student 网络的指数移动平均 (EMA)。teacher 提供稳定的预测目标,防止 student 收敛到平凡解。这种方式需要在前向和反向传播中保留两份完整参数的副本,对显存和算力开销巨大。
本文的 head-only EMA 创新是只对投影头做 EMA、共享编码器参数,将可训练参数减少约 42%(以 ViT-B 为例),是工程上很重要的优化。
零样本语义分割 (Zero-shot Segmentation)
零样本分割指模型在没有任何像素级标注的情况下,把图像中每个 patch 的特征与所有候选类别的文本嵌入(比如 "cat", "dog")做余弦相似度比较,把相似度最高的类别作为该 patch 的预测。常用基准是 PASCAL VOC (21 类)、PASCAL Context (59/60 类)、ADE20K (150 类),指标是 mIoU。
零样本分割直接衡量 patch 级别文本对齐质量,是 TIPSv2 改进效果最显著的指标(PC59 mIoU 从 11.4 提升到 28.6)。
研究动机
视觉-语言预训练在 2024-2025 年虽然百花齐放,但一个根本性的痛点是:旗舰大模型(如 TIPS ViT-g、SigLIP2 ViT-g)在零样本密集分割上反而比它们蒸馏出来的小模型更差。具体到 TIPS ViT-g 在 PC59、PC60、VOC21、ADE150 上 mIoU 只有 11.4、10.8、19.7、2.6,而被它蒸馏出来的 ViT-L 学生却高达 33.5、30.4、30.5、20.8,反差高达 2-8 倍。这种『大模型全局强、密集弱』的矛盾是 Perception Encoder 等工作已经指出过的老问题,但即使 TIPS、SigLIP2 这些 2025 年的 SOTA 统一模型也没能解决。其根本原因在于:iBOT 风格的 MIM 损失只对被遮住的 patch 施加约束,可见 patch 的特征可以任意发展,只要它们能把被遮位置『猜对』就行。这导致最后一层 transformer 实际上变成了『全局对比解码器』,局部语义在预训练阶段就被稀释了。
本文的目标是本文要直接提升视觉编码器的 patch-文本对齐能力,让大模型在零样本语义分割、深度估计、法向量估计、检索、分类等 9 类任务 20 个数据集上都取得 SOTA 或接近 SOTA 的成绩,同时把训练成本显著降低。具体的可量化目标包括:(1)零样本分割 ADE150 mIoU 提升到 20+(TIPS ViT-g 仅 2.6);(2)在不损失其他指标的前提下,将训练可训练参数减少约 42%(ViT-B 上 head-only EMA 的效果);(3)综合在 dense 与 global 任务上同时取得领先,避免 PE-core 那种『dense 弱』的偏科。
与已有工作不同的是,之前的所有工作(包括 CLIP、PE、SigLIP2、TIPS、DINOv3、SILC)要么只在全局层面做对比学习(patch 对齐靠蒸馏或者外挂文本编码器后处理),要么在自监督阶段只用 iBOT 风格的 MIM(只监督被遮 patch)。本文的独特切入点是:通过详细消融发现蒸馏过程中『把所有 patch 都在 teacher 上对齐』这个不起眼的细节才是密集文本对齐的关键,然后把这个发现反过来改写预训练阶段的 iBOT 损失,提出 iBOT++ 让可见与被遮的 patch 都被显式监督。这是一个『从蒸馏经验反哺预训练设计』的逆向工程视角,区别于 DINOv3 用 Gram anchoring 改进密集特征图、或者 MaskAlign 用 frozen 模型对齐的路径。
核心方法
TIPSv2 的整体思路可以用一个比喻来理解:传统 iBOT 像『完形填空』,只检查被挖空的词是否被正确还原,对剩下的字没要求;iBOT++ 则像『全文抄写校对』,学生不仅要把挖空处填对,还要保证自己写的每个字都和老师写的一模一样。这样每个 patch 的语义都被显式对齐到 teacher,从根源上避免了最后一层退化为全局解码器。在此基础上,TIPSv2 还做了两个工程改进:第一,因为对比损失 $L_{CLIP}$ 已经能稳定训练防崩溃,所以 teacher 编码器不再需要 EMA,只需对投影头做 head-only EMA,参数和显存直接减半;第二,把原来单一来源的 PaliGemma 合成描述替换成『网页 alt-text + PaliGemma + Gemini』三种粒度的多源描述,让文本监督信号更丰富、更多样。
核心创新点就一个:iBOT++ 损失 $\mathcal{L}_{iBOT++} = -\sum_{i=1}^{N} h_t(f_t(I)_i)^T \log h_s(f_s(I^{mask})_i)$ ——和原始 iBOT 损失在公式上只差一个 mask 指示 $m_i$。原始 iBOT 把 $m_i$ 乘在损失前面,意味着只有被遮 patch($m_i=1$)才贡献梯度;iBOT++ 去掉这个 mask,让 $N$ 个 patch 全部参与损失。和已有方法的本质区别:(1)DMAE、SimMIM 也预测可见 patch 但预测的是像素值,不涉及与 teacher 的对齐;(2)MaskAlign 和 MR-MAE 虽然也对齐可见 patch,但需要 frozen 预训练模型作为 teacher;(3)TIPS 的蒸馏阶段虽然实现了『所有 patch 对齐』但只在蒸馏阶段。iBOT++ 是首次把这个想法移植到预训练阶段,让大模型从一开始就有强 patch 对齐。
方法步骤详情
TIPSv2 的训练流程分四步:第一步是输入构造,对每张图 $I$ 应用三层文本监督,包括原始网页 alt-text、PaliGemma 合成的短描述、Gemini 1.5 Flash 合成的长描述,三种描述按随机比例在两个 [CLS] token 上做监督。第二步是图像增广,应用多尺度 crops:低分辨率阶段用 1 个 224×224 全局 crop 加 6 个 98×98 局部 crop,高分辨率适配阶段把全局升到 448×448、局部升到 140×140;增广只用随机 resize、crop、flip。第三步是损失计算,整体损失为 $\mathcal{L} = \mathcal{L}_{CLIP} + \alpha \mathcal{L}_{DINO} + \beta \mathcal{L}_{iBOT++}$,其中 $\alpha=1.0$,$\beta=2.0$。第四步是 head-only EMA 更新,teacher 编码器直接和 student 共享($f_t = f_s$),但 teacher 投影头 $h_t$ 是 student 投影头 $h_s$ 的 EMA。预训练分两阶段:低分辨率 90k 步、batch size 8192,然后高分辨率适配 9k 步、batch size 4096;ViT-g 模型在 512 块 TPUv5 上训练 2 天即可完成。最终发布 ViT-B、ViT-L、ViT-SO、ViT-g 四个尺寸,ViT-g 直接预训练,其他三个通过 patch 级蒸馏得到。
技术新颖性
技术新颖性体现在三个层面:第一,方法论上,把『蒸馏带来 patch 对齐』这个原本被忽略的现象提升为可设计的预训练目标,iBOT++ 是首个在 MIM 预训练阶段同时对可见和被遮 patch 做 teacher 对齐的损失,消融表明去掉 mask 单这一个改动就能让 ADE150 零样本分割 mIoU 从 3.5 涨到 17.6(+14.1)。第二,工程上,head-only EMA 在有对比损失的设置下是首创,以往的 SSL(iBOT、DINOv2)和对比方法(CLIP、SigLIP)都不敢共享编码器参数因为担心模型崩溃。第三,数据上,多粒度描述(alt-text + PaliGemma + Gemini)的混合采样是首次系统地用于视觉编码器预训练,相对单用 PaliGemma 在 I→T Flickr 上从 92.0 提升到 95.0。
实验结果
实验围绕 9 类任务 20 个数据集展开,核心数据如下。**零样本分割(Dense)**是 TIPSv2 受益最大的方向:表 5 显示 ViT-L/14 在 PC59/PC60/VOC21/ADE150 上分别取得 37.1/33.9/44.4/24.7 mIoU,相对 TIPS 同尺寸(33.5/30.4/30.5/20.8)分别提升 +3.6/+3.5/+13.9/+3.9,相对 SigLIP2 SO/14 平均翻倍以上。**全局图文任务**:表 6 中 TIPSv2 g/14 在 COCO I→T 75.7、T→I 60.7、DOCCI I→T 68.9、T→I 72.8 全部 SOTA;PE-core G/14 参数量比 TIPSv2 多 56%,训练图像对数量多 47 倍。**纯图像任务**:表 7 中 TIPSv2 g/14 在 PASCAL 分割 85.1、ADE20k 分割 51.6、NYUv2 深度 0.334、UnED 检索 67.0、KNN ImageNet 83.7 全部第一或并列第一。**与 DINOv3 对比**:表 8 中 TIPSv2 L/14 在 6 个指标中胜 4 个,DINOv3 用 7B 参数 + 15 倍图像的训练规模,TIPSv2 用 1.1B 参数 + 116M 图像,性价比优势明显。**消融**:表 4 在 7 项任务上逐步累加 iBOT++、多粒度描述、head-only EMA,ADE150 零样本分割从 3.5 涨到 19.1(+15.6)。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 零样本分割 (PC59) | mIoU | TIPSv2 L/14: 37.1 | TIPS L/14: 33.5 | +3.6 |
| 零样本分割 (PC60) | mIoU | TIPSv2 L/14: 33.9 | TIPS L/14: 30.4 | +3.5 |
| 零样本分割 (VOC21) | mIoU | TIPSv2 L/14: 44.4 | TIPS L/14: 30.5 | +13.9 |
| 零样本分割 (ADE150) | mIoU | TIPSv2 L/14: 24.7 | TIPS L/14: 20.8 | +3.9 |
| COCO 图到文检索 | Recall@1 | TIPSv2 g/14: 75.7 | PE-core G/14: 75.4 | +0.3 (新 SOTA) |
| COCO 文到图检索 | Recall@1 | TIPSv2 g/14: 60.7 | TIPS g/14: 59.4 | +1.3 |
| DOCCI 图到文检索 (长文) | Recall@1 | TIPSv2 g/14: 68.9 | TIPS g/14: 57.2 | +11.7 |
| PASCAL VOC 线性分割 | mIoU | TIPSv2 g/14: 85.1 | TIPS g/14: 83.6 | +1.5 |
| NYUv2 深度估计 | RMSE (越低越好) | TIPSv2 g/14: 0.334 | DINOv2 g/14: 0.372 | -0.038 (相对误差降低约 10%) |
| ImageNet 0-shot 分类 | Top-1 | TIPSv2 g/14: 80.7 | TIPS g/14: 79.9 | +0.8 (但弱于 PE-core 的 85.4) |
| DINOv3 对比 (NYUv2 深度) | RMSE | TIPSv2 L/14: 0.339 | DINOv3 L/16: 0.352 | -0.013 |
| DINOv3 对比 (零样本分割 ADE150) | mIoU | TIPSv2 L/14: 25.1 | DINOv3 L/16: 24.7 | +0.4 (使用 TCL 滑窗协议) |
局限与改进
作者坦诚的限制有:(1)iBOT++ 的高 masking ratio(75%)仍然是 MIM 取得好性能的关键,去掉 mask 反而不利于预训练,这意味着 iBOT++ 不能简单替代『先大模型预训练再蒸馏』的范式。(2)ImageNet 分类不是 TIPSv2 的强项,KNN 83.7、linear 86.8 都不如 PE-core 的 86.8、89.5,原因是优化目标偏向通用能力而非分类。(3)head-only EMA 在没有对比损失的纯 SSL 中会『severe training instability』,没法推广到纯 SSL 场景。我观察到的额外限制:(1)TIPSv2 在 ImageNet 分类上的相对落后说明『dense 和 global 都很强』这个目标还没完全达成;(2)零样本分割评测依赖 PASCAL/ADE20K 的英文类名,没评估中文或多语言场景;(3)TIPSv2 训练 batch size 8192 配 512 TPUv5,这个算力门槛对小团队几乎不可复现;(4)iBOT++ 与 $L_{CLIP}$ 耦合很紧,单独拿出来做大规模验证可能有困难。
独立分析的弱点
我独立分析后认为 TIPSv2 还有以下可改进点:(1)**iBOT++ 与 $L_{CLIP}$ 的耦合太紧**:head-only EMA 完全依赖对比损失防止编码器崩溃,无法直接复用到 DINOv3、WebSSL 等纯 SSL 大模型;改进方向是把 head-only EMA 推广到 SSL 场景,比如给编码器加一个轻量级辅助自监督损失替代对比损失。(2)**ImageNet 分类相对落后**:TIPSv2 g/14 KNN 83.7 远弱于 PE-core 86.8;改进方向是增加分类专用的 linear fine-tune 阶段。(3)**多粒度描述的混合策略过于人工**:当前 Gemini 描述只在第二个 [CLS] 上采样,比例是手动调的;改进方向是用路由器网络根据图像内容自动决定使用哪种粒度。(4)**PASCAL Context mIoU 仍不极致**:TIPSv2 L/14 PC60 33.9 比 SigLIP2 SO/14 低 14 分;改进方向是在高分辨率适配阶段加入 mask-based 的 dense 监督。(5)**小模型蒸馏代价没说清楚**:附录说 ViT-B/L/SO 都从 ViT-g 蒸馏,但没说蒸馏要多少 TPU 小时,复现门槛难以评估。
未来方向
作者明确提出的未来方向有:(1)把 TIPSv2 扩展到视频和 3D 场景以验证 iBOT++ 的通用性;(2)探索更细粒度的 captioning 策略如 LocCa 风格的位置感知描述;(3)将 head-only EMA 思想扩展到更复杂的 SSL 框架中。基于本文成果可延伸的方向有:(1)**iBOT++ 的理论分析**:为什么去掉 mask 的 MIM 能在预训练阶段 work(不同于蒸馏阶段)?可以从信息瓶颈或条件熵角度给出解释;(2)**iBOT++ 与 LLM 结合**:把 patch-text 对齐强的视觉编码器接到更强的 LLM(如 Gemini 2.5)上做 VLM;(3)**动态 masking 策略**:让模型在训练中后期把更多注意力放在难 patch 上;(4)**多语言 patch 对齐**:把多粒度描述扩展到多语言场景;(5)**iBOT++ 在具身智能/机器人场景的应用**:NAVI 等 3D 数据集已经纳入评测,可以用于 affordance grounding、open-vocabulary 抓取等任务。
复现评估
复现可行性整体是『中等偏低』。**开源情况**:作者明确说明 code 和 models 通过项目页 https://gdm-tipsv2.github.io/ 发布,TIPS 本身已开源(ICLR 2025),从 TIPS 仓库 fork 后替换损失函数可以低成本实现。**数据集**:使用 Google 内部的 WebLI 数据集的 116M 过滤子集,这个数据集完整版本需要 Google 授权,116M 子集是否完全公开不确定;PaliGemma 描述公开,Gemini 1.5 Flash 描述需要 Gemini API 访问。**算力需求**:ViT-g 预训练是 512 块 TPUv5 跑 2 天(约 24,576 TPU·小时),加上高分辨率适配和蒸馏,粗略估计完整复现 ViT-g 至少需要 30,000+ TPUv5·小时;TPUv5 是 Google 内部硬件,外部研究者只能用 TPUv4 或 A100/H100 替代,时长会再翻几倍。**复现难度**:iBOT++ 改动简单(去掉一个 mask 乘法),核心消融可以在小模型上 100k 步重跑;完整复现的最大障碍是 WebLI 数据集和 512 TPUv5;附录 A.1 显示 iBOT++ 在 CLIP 上的可移植性已经验证(CLIP ViT-L 零样本分割从 4.3 涨到 22.9)。**总体建议**:个人研究者建议从 CLIP+iBOT++ 这个简化实验入手(数据公开、算力门槛低、能验证核心想法)。
论文图表