引言

想象一下给 AI 展示一张特定品种猫的照片。标准的计算机视觉模型可能会告诉你: “这是一只猫。”更高级的模型可能会说: “这是一只加菲猫。”但如果你问: “这个卡通角色最喜欢的食物是什么?”模型就会碰壁。答案——千层面 (Lasagna) ——并不在像素数据中,它需要外部的世界知识。

这就是基于知识的视觉问答 (Knowledge-based Visual Question Answering, VQA) 所面临的挑战。与传统的 VQA 不同 (后者通常询问图像中可见的内容,如“这辆车是什么颜色的?”) ,基于知识的 VQA 要求模型利用图像本身不存在的事实、历史和常识来对视觉世界进行推理。

为了解决这个问题,研究人员通常使用检索增强生成 (Retrieval-Augmented Generation, RAG) 技术。他们获取图像,在数据库 (如维基百科) 中搜索相关文本,并将这些文本提供给模型。然而,这里有一个陷阱: 检索系统是充满噪声的。它们经常返回一堆文档,其中只有一两句是真正相关的,其余的都是干扰项。

在论文 “Self-Bootstrapped Visual-Language Model for Knowledge Selection and Question Answering” 中,研究人员提出了一个巧妙的解决方案。他们不再盲目相信所有检索到的知识,而是构建了一个两部分系统: 一个筛选高质量信息的选择器 (Selector) , 和一个预测结果的回答器 (Answerer) 。 至关重要的是,这两个模块通过一个称为自举 (self-bootstrapping) 的过程在一个循环中相互训练。

在这篇文章中,我们将剖析这个框架是如何工作的,为什么它能在基准测试中超越像 GPT-3 这样的巨型模型,以及它是如何通过仅微调 0.16% 的参数来实现这一点的。

问题所在: 图书馆里的噪声

要理解这个解决方案,我们需要先了解当前方法的瓶颈。

大多数最先进的方法使用密集段落检索 (Dense Passage Retrieval, DPR) 。 典型的工作流程如下:

  1. 将图像转换为文本描述 (生成字幕) 。
  2. 使用该文本搜索庞大的知识库 (如 Google 搜索或维基百科) 。
  3. 检索前 \(k\) 个文档 (例如,前 10 或 30 个) 。
  4. 将所有这些文档与图像一起输入大型语言模型 (LLM) 以生成答案。

问题出在第 4 步。DPR 是基于通用相似性来检索文档的,而不是基于对回答问题的具体效用。如果你问某栋建筑的建筑师是谁,DPR 可能会返回关于该建筑高度、位置或旅游时间的文档。

当你给 LLM 喂食大量不相关的文本 (噪声) 以及仅有的一条正确事实 (信号) 时,模型经常会感到困惑或产生幻觉。研究人员认为, 仅有检索是不够的;我们需要筛选。

解决方案: 选择器与回答器

研究人员提出了一个基于 BLIP-2 架构 (一种强大的视觉-语言模型) 的框架。他们将任务拆分为两个不同的模块:

  1. 选择器 (The Selector) : 一个判别模型,它查看检索到的文档并决定: “这份特定文档是否真的有助于回答这个问题?”
  2. 回答器 (The Answerer) : 一个生成模型,它获取被选中 (过滤后) 的文档并生成最终答案。

展示选择器和回答器架构的图表。选择器获取图像特征、问题和检索到的知识来进行相关性评分。回答器获取被选中的顶级知识来预测答案。

如上图 Figure 1 所示,两个模块共享相同的冻结视觉特征提取器 (ViT & Q-Former) 。奇妙之处在于它们是如何使用 LoRA (低秩适应) 进行微调的,这使得训练非常高效。

1. 选择器模块

选择器的工作是对 DPR 检索到的充满噪声的文档进行重新排序。它充当把关人的角色。

对于每一个检索到的文档,选择器会接收:

  • 图像的视觉嵌入。
  • 问题。
  • 文档本身。
  • 一个特定的提示词: “Does the retrieved knowledge document provide the key information to help answer the question?” (检索到的知识文档是否提供了有助于回答问题的关键信息?)

该模型被训练用于输出一个分数 (生成单词 “yes” 的概率) 。基于这些分数,系统只保留前 \(t\) 个文档。

在数学上,选择过程定义为:

公式 1 展示了选择器函数,基于图像 I 和问题 Q 将检索到的文档 P 过滤为更小的子集 P-hat。

这里,\(\hat{\mathcal{P}}_i\) 代表经过提炼的、“干净”的知识文档集。

2. 回答器模块

一旦知识被过滤,回答器就接手了。它不看那一整堆噪声数据;它只看选择器选出的高质量文档。

回答器处理图像、问题和被选中的知识以生成预测。

公式 2 展示了回答器函数,基于过滤后的知识集预测答案 a_i。

有趣的是,研究人员发现投票机制比拼接效果更好。回答器不是将所有选定的文档粘贴到一个长文本提示中,而是针对每个选定的文档单独预测一个答案。最终答案由这些预测中的多数投票决定。这隔离了推理过程,防止一个糟糕的文档破坏其他好文档的上下文。

核心创新: 自举学习 (Self-Bootstrap Learning)

你可能会问一个合理的问题: 我们要如何训练选择器? 我们有问答数据集 (如 OK-VQA) ,但我们没有关于维基百科哪一段包含答案的标签。我们没有选择器的“真值 (ground truth) ”。

这就是自举 (或循环训练) 发挥作用的地方。研究人员将其视为一个“先有鸡还是先有蛋”的问题,并通过让模块相互教学来解决它。

训练流程在两个阶段之间循环:

第一阶段: 训练回答器

首先,我们使用当前的选择器挑选它能找到的最好的文档。然后,我们训练回答器利用这些文档来预测正确答案。

公式 3 和 4 展示了回答器损失函数,利用选定的知识在正确答案 a* 上进行训练。

第二阶段: 训练选择器 (使用伪标签)

这是巧妙的部分。一旦回答器被更新,我们就用它来为选择器生成标签。

我们拿着回答器,给它输入每一个检索到的文档。如果回答器利用某个特定文档成功预测了正确答案,我们就将该文档标记为“正样本” (有用的) 。如果回答器失败了,我们就将其标记为“负样本” (无用的) 。

这就生成了伪标签 (Pseudo-Labels) (\(y_{i,j}\)):

公式 5 定义了伪标签的生成。如果答案正确且文档包含答案字符串,则 y 为 ‘yes’;否则为 ’no’。

现在我们有了这些生成的标签,就可以训练选择器来预测它们。选择器学会了识别那些可能帮助回答器成功的文档。

公式 7 展示了选择器损失函数,最大化由回答器生成的伪标签的可能性。

通过重复这两个阶段,选择器在寻找好文档方面变得更强,这使得回答器能够更稳健地学习,进而为选择器带来更准确的伪标签。这是一个良性循环。

实验与结果

团队在 OK-VQA 上测试了这个框架,这是一个具有挑战性的开放领域视觉问答基准。他们使用 Google 搜索作为知识源。

与最先进技术 (SOTA) 的比较

结果令人印象深刻。如下面的 Table 1 所示,所提出的方法达到了 62.83% 的准确率,优于像 Flamingo (800亿参数) 这样的巨型模型和使用 GPT-3 (1750亿参数) 的方法,尽管它使用的骨干网络要小得多 (BLIP-2 T5-XL,30亿参数) ,并且仅微调了 0.16% 的参数。

Table 1 将该方法与 Flamingo、GPT-3 和其他 BLIP2 变体等 SOTA 模型进行比较。所提出的方法达到了 62.8% 的准确率。

值得注意的是,基线 BLIP-2 模型 (无外部知识) 仅得分 55.4%。加入自举知识选择后,性能有了巨大的飞跃。

筛选真的重要吗?

有人可能会争辩说,现代 LLM 足够聪明,可以忽略噪声,所以也许选择器并不是必需的。 Table 2 中的消融实验证明事实并非如此。

Table 2 比较了随机选择、DPR 分数选择和所提出的选择器。选择器始终优于其他方法。

  • 随机选择 (Random Selection): 55.05%
  • DPR 分数 (标准 RAG): 60.69%
  • 选择器 (Ours): 62.83%

使用检索引擎 (DPR) 的原始分数比随机好,但专门的选择器提供了超过 2% 的显著提升。这证实了通用检索分数 (衡量文本相似度) 并不完全等同于“对回答有帮助”。

投票 vs. 拼接

研究人员还研究了回答器应该如何利用这些知识。是将所有知识合并成一个长段落( Concatenating,拼接 ),还是要求模型根据每个文档分别回答并进行投票( Voting,投票 )?

Table 3 显示投票产生的准确率 (62.83%) 高于拼接 (62.06%)。

Table 3 显示投票产生了最好的结果。拼接在上下文窗口中引入了太多的噪声,而投票允许模型针对具体的证据片段清晰地进行推理。

循环训练的力量

最后,为了验证“自举”概念,他们比较了独立训练 (分别训练模块,没有循环) 与循环训练。

Table 4 显示循环训练将准确率从 59.02% (独立训练) 提高到了 62.83%。

Table 4 显示,独立训练的表现实际上比基线更差。没有反馈循环,选择器学不到回答器真正需要什么。循环训练对于系统的成功至关重要。

定性分析

通过观察模型的实际运行情况,有助于理解选择器的影响。

Figure 2 展示了定性示例。在第一行中,选择器正确识别了关于 ‘Big Ben’ 的知识,而 DPR 基线检索到了关于 ‘St Petersburg’ 的不相关信息,导致答案错误。

Figure 2 中,请看上面的例子。图片显示了威斯敏斯特宫的钟楼。

  • 基线 (DPR): 检索到的文档提到了“圣彼得堡”和“埃菲尔铁塔” (可能是由于检索嵌入空间中的视觉相似性) 。模型错误地回答了 “st petersburg”。
  • 选择器: 过滤掉了这些干扰项,选择了明确提到 “Big Ben” (大本钟) 和 “Elizabeth Tower” (伊丽莎白塔) 的文档。回答器随后正确识别出 “big ben”。

这清楚地表明,仅检索到正确的文档是不够的;模型必须选择它并忽略干扰项才能正确推理。

结论

这篇关于“自举视觉-语言模型”的论文教给我们关于 AI 架构的一个宝贵教训: 数据越多并不总是越好;数据质量好才是真的好。

通过承认检索系统是不完美且充满噪声的,研究人员构建了一种动态过滤知识的机制。他们的选择器-回答器框架,由巧妙的自举训练循环驱动,允许模型在没有人为干预的情况下优化自己的训练数据。

关键要点:

  1. 筛选 > 检索: 仅仅从 Google 抓取文档是不够的。你需要一个专门的大脑 (选择器) 来验证这些文档是否有用。
  2. 自举带来的协同效应: 回答器教选择器 (通过伪标签) ,选择器帮助回答器 (通过干净的数据) ,这种循环创造了强大的反馈回路。
  3. 效率: 你不需要一个 1750 亿参数的模型来达到最先进的结果。智能的架构和参数高效的微调 (LoRA) 可以胜过单纯的模型规模。

这种方法为更可靠的多模态 AI 系统铺平了道路,使其不仅能识别物体,还能理解其背后的丰富背景和知识。