如果你一直在关注 LLaVA、GPT-4V 或 Gemini 等大型视觉语言模型 (LVLM) 的爆发式增长,你会知道它们理解和推理图像的能力令人印象深刻。然而,在每一个强大的模型背后,都存在一个巨大且昂贵的瓶颈: 视觉指令微调 (Visual Instruction Tuning, VIT)

为了训练这些模型,研究人员需要整理海量的图片数据集,并配以复杂的文本指令 (问答对) 。创建这些数据集通常涉及将数千张图像输入到昂贵的专有模型 (如 GPT-4) 中,以生成描述和问答对。这给预算有限的学生和研究人员带来了一个两难的选择: 要构建高质量的数据集,你需要钱;为了省钱,你通常只能退而求其次使用低质量的数据。

但是,如果你不需要为每张图片都生成指令呢?如果你可以看着一堆未标注的图片,只挑选最有用的那些,然后把预算花在标注这些图片上呢?

在这篇文章中,我们将深入探讨一篇名为 “Filter Images First, Generate Instructions Later” (先筛选图像,后生成指令) 的论文,该论文介绍了 PreSel 。 这种新方法彻底颠覆了数据筛选的工作流程,在保持最先进性能的同时,将指令生成成本削减了 85%。

问题所在: 冗余的高昂代价

视觉指令微调 (VIT) 是教会模型根据视觉输入遵循人类指令的过程。一个典型的 VIT 数据集可能包含数十万个图像-指令对。

优化这一过程的行业标准做法是数据筛选 (Data Selection) 。 逻辑很清晰: 并非所有数据都是平等的。有些图像是冗余的;有些则太简单,无法教会模型任何新东西。通过筛选出一个高质量的子集,你可以加速训练。

然而,这里有个陷阱。大多数现有的数据筛选方法就像下图中“顶部方法 (Top Method) ”所示的那样运作:

传统 VIT 数据筛选与 PreSel 的对比。

图 1 (上部分) 所示,传统方法要求你从 100% 的未标注图像开始,并在筛选出最佳子集之前,先生成 100% 的指令 (使用昂贵的 API 或人工) 。这本质上意味着你为数千张最终会被丢弃的图片支付了昂贵的标注费用。

这篇论文的作者提出了底部方法 (Bottom Method,即 PreSel) 。 他们的方法直接在未标注的图像上进行筛选。通过根据视觉特征和任务重要性识别出最有希望的图像,他们只需为筛选出的子集 (例如 15%) 生成指令。

解决方案: 预指令数据筛选 (PreSel)

PreSel 解决的核心挑战是: 如果我们不知道指令内容是什么,我们如何知道一张图片是否重要?

研究人员通过将问题分解为两个阶段来解决这个问题:

  1. 任务重要性评估 (Task-Importance Estimation) : 确定哪些类型的视觉任务 (例如 OCR、视觉问答、图像描述) 对模型最有价值。
  2. 基于任务的聚类筛选 (Task-Wise Cluster-Based Selection) : 在这些任务中筛选出最具代表性的视觉示例。

让我们看看 PreSel 的整体架构:

PreSel 架构和工作流程概览。

图 3 所示,该过程从分为多个任务 (\(T_1... T_M\)) 的大型未标注图像池开始。系统抽取一个极小的、随机的参考集 (Reference Set) (约占数据的 5%) ,并仅为这这一小部分数据生成指令。它利用这个参考集来学习哪些任务是重要的。然后,它使用视觉编码器 (DINOv2) 对剩余的未标注图像进行聚类,并筛选出最好的图像来填补预算。

让我们拆解这两个阶段背后的数学原理和逻辑。

第一阶段: 任务重要性评估

在一个庞大的数据集中,你可能有 50,000 张用于“一般对话”的图片,而只有 5,000 张用于“复杂推理”的图片。简单地按比例筛选图片是一个糟糕的策略;对话数据可能充满了冗余,而推理数据则信息密度极高。

为了解决这个问题,PreSel 引入了指令相关性评分 (Instruction Relevance Score, IRS)

首先,我们定义一下数据样本的样子。

图像 (I)、问题 (Q) 和回答 (R) 的图示。

图 2 所示,一个样本由图像 (\(I\))、问题 (\(Q\)) 和回答 (\(R\)) 组成。

IRS 的目标是衡量与仅看图像相比,文本问题在多大程度上实际帮助了模型生成回答。

  • 如果模型仅看图像 (\(I\)) 就能猜出回答 (\(R\)),那么问题 (\(Q\)) 就不是非常必要。
  • 如果模型仅凭图像很难猜出 (\(R\)),但在给出问题 (\(Q\)) 后表现完美,那么该指令就是高度相关且重要的。

IRS 背后的数学原理

为了计算这一点,作者首先在这个 5% 的微小参考集上训练一个临时的“参考模型”。然后,他们计算两个特定的损失。

1. 有上下文时的损失 (Q + I): 这个公式衡量了当给定图像 (\(I\)) 和问题 (\(Q\)) 时,模型预测回答 (\(R\)) 的误差。

给定问题和图像时的损失公式。

2. 无上下文时的损失 (仅 I): 这个公式衡量了给定图像 (\(I\)) 时预测回答 (\(R\)) 的误差,实际上是强迫模型去猜测上下文。

仅给定图像时的损失公式。

3. IRS 比率: 指令相关性评分仅仅是这两个损失的比率。

指令相关性评分 (IRS) 公式。

解读:

  • 低 IRS: 分子 (有 Q 时的损失) 远低于分母 (无 Q 时的损失) 。这意味着问题提供了关键信息。这些任务是重要的。
  • 高 IRS: 添加 Q 并没有太大地改变损失。指令可能是冗余的,或者任务太简单。

最后,作者计算每个任务 (\(T_i\)) 的平均重要性,并对其进行归一化以创建采样权重 (\(w\))。

平均任务 IRS 公式。

任务权重归一化公式。

这个权重 \(w(T_i)\) 确切地告诉系统最终数据集中应该有多少百分比来自每个任务。

第二阶段: 基于任务的聚类筛选

现在 PreSel 知道要从每个任务中抽取多少图像,它需要决定抽取哪些具体的未标注图像。

由于剩余 95% 的数据没有文本标签,该方法依赖于视觉特征。作者使用 DINOv2 (一种轻量级视觉编码器) 从图像中提取特征向量。

在每个任务内部,PreSel 执行 K-Means 聚类 。 其理念是将视觉上相似的图像归为一组。如果一个聚类包含 1,000 张猫坐在沙发上的照片,你可能只需要其中的几张就能教会模型这个概念。

从每个聚类中筛选的图像数量 (\(n_c\)) 由我们之前计算的任务权重决定:

聚类采样预算公式。

邻域中心度 (NC)

一旦进入聚类内部,哪张图片是最好的?PreSel 避免选取异常值 (奇怪的、不具代表性的图像) ,而是选取位于邻居“中心”的图像。他们使用邻域中心度 (Neighbor Centrality, NC) 评分:

邻域中心度评分公式。

这个公式计算了一张图像 (\(I\)) 与其 \(k\) 个最近邻居之间的平均余弦相似度。NC 分数高的图像高度代表了该聚类的视觉概念。

实验结果

理论听起来很扎实,但在实践中效果如何?研究人员在 LLaVA-1.5Vision-Flan 等主要数据集上测试了 PreSel,并将其与随机筛选和其他最先进的筛选方法 (如 TypiClust, IFD, 和 COINCIDE) 进行了比较。

LLaVA-1.5 上的表现

下表展示了在 LLaVA-1.5 数据集上的表现。目标是最大化相对于使用 100% 数据训练的模型的“相对性能” (Rel %) 。

LLaVA-1.5 数据集上的结果表。

表 1 的关键结论:

  1. PreSel (最后一行) 仅使用 15% 的数据就达到了全量模型 97.9% 的性能。
  2. 请看 “Req. Inst.” (所需指令) 一列。几乎所有其他高性能方法都要求在筛选发生之前生成 100% 的指令。PreSel 只需要 15%
  3. PreSel 超过了随机 (Random) 筛选 2% 以上,在这个领域这是一个显著的差距。

跨采样率的一致性

有人可能会想,PreSel 是否只在 15% 时有效。下图追踪了采样率从 10% 增加到 50% 时的性能变化。

跨采样率的相对性能图表。

图 4 所示,PreSel (黑色实线) 始终处于领先地位。即使在极低的预算 (10-15%) 下,它也能保持高性能,而随机筛选 (红色圆圈) 的相对有效性实际上会下降。有趣的是,在 50% 的采样率下,PreSel 甚至略微超过了全量微调基线 (超过 100% 标记) ,这表明过滤掉“坏”数据实际上可以产生比使用“所有”数据更好的模型。

为什么有效?平衡的力量

PreSel 成功的一个主要原因是它如何重新平衡数据集。它不仅仅相信原始数据的分布。

任务比例分布对比。

图 5 比较了“基于规模的平衡 (Size-Balanced) ”采样 (灰色) 与 “PreSel” 采样 (蓝色) 。

  • 注意前三个柱状图 (LLaVA-Conv, Detail, Reason) 。基于规模的方法在这里分配了大量预算,因为这些任务有许多图像。
  • PreSel 大幅减少了这些任务的分配。
  • 取而代之的是,PreSel 将预算重新分配给了更难、信息密度更高的任务,如 A-OKVQAGQA (图表右侧) 。

IRS 指标正确地识别出对话任务是冗余的,而模型需要在复杂的视觉问答上进行更多练习。

效率与鲁棒性

作者还在 Vision-Flan 数据集上验证了该方法,该数据集包含更多样化的任务 (191 个任务) 。

Vision-Flan 数据集上的结果表。

表 2 中,PreSel 仅用 15% 的数据就达到了 100.1% 的相对性能。它实际上击败了在完整数据集上训练的模型!这证实了 Vision-Flan 数据集存在大量冗余,而 PreSel 有效地从噪声中分离出了信号。

此外,筛选出的数据可以很好地迁移到不同的模型架构。

展示不同模型骨干 (Vicuna, Llama) 结果的表格。

表 7 显示,使用小型 Vicuna-7B 模型筛选的数据在训练更大的模型 (Vicuna-13B) 或不同的架构 (Llama-3-8B) 时也能提高性能。这意味着你可以在小模型上执行廉价的筛选过程,并将节省下来的资源用于大规模模型训练。

结论与启示

本文提出的“预指令数据筛选”范式是向大众化 LVLM 研究迈出的重要一步。

通过将筛选过程转移到昂贵的标注阶段之前发生,PreSel 解决了房间里的大象: 成本。

  • 对于研究人员: 它使得用极少的预算创建定制的、高性能的数据集成为可能。
  • 对于行业: 它减少了训练的计算开销以及使用 GPT-4 等 API 生成数据的财务开销。

该方法证明了我们不需要更多的数据;我们需要更好的数据。关键是,我们可以通过观察图像和少量的指令样本来识别出“更好”的数据,而不是为了找到那根针而花钱标注整个草堆。

如果你正在从事视觉指令微调工作,实施“先筛选,后生成”的流程可能是你下一个项目中投资回报率 (ROI) 最高的决定。