村里要办一届特别的“看图猜谜”大赛。第一轮,主持人举出一张红苹果的照片,问:“这是什么颜色?”台下齐声回答,人人都能拿奖。第二轮,主持人换上一辆停在街边的汽车照片,问:“这是哪家公司的车?”全场安静了——照片上没有任何品牌标志,而答案就藏在这辆车的整体设计、历史记忆和大众常识里。这就是这届大赛最特别的地方:有些题,光看图答不出来,必须借助眼睛以外的知识。 在人工智能的世界里,这届大赛有一个正式的名字:视觉问答(VQA,Visual Question Answering)。传统 VQA 基准考的是“看图认物”,而 OK-VQA(Outside Knowledge VQA,外部知识视觉问答)考的是“看图之外还要调用外部知识”。它是一块多模态模型知识能力的试金石,也是我们今天要认识的主角。

岗位关联

理解 OK-VQA 的构造方式与评测逻辑,是从事多模态大模型评测、视觉问答研究的基础功,能帮你快速定位模型在“知识+视觉”维度上的真实短板。

目录
  1. 可视化演示
  2. 基准背景
  3. 数据集构造
  4. 知识类型分布
  5. 评测指标
  6. 模型能力挑战
  7. 基准对比关系
  8. 主流模型表现
  9. 未来展望
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示OK-VQA如何需要图像外的知识才能回答,以及十大知识类型分类的分布和评测流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

OK-VQA外部知识需求 图像输入:COCO场景图片提供视觉信息 问题输入:需要图像外知识才能回答的提问 知识融合:外部知识+视觉信息→答案 Image + Question + Knowledge → Answer 仅靠视觉无法解答,需外部知识补充

基准背景

请看图猜谜大赛的第一轮题目:主持人举起红苹果,问“这是什么颜色”,全场都能答对。这类题目考验的是眼睛,而不是大脑里积累的世界经验。传统视觉问答基准(VQA 1.0、VQA 2.0)就是这样一个“红苹果”考场——它要求模型看图作答,而绝大多数答案都可以直接从图像像素中找到线索。

但真实世界远比红苹果复杂。当主持人举起一辆没有任何标志的汽车照片,问“这是哪家公司的车”时,眼力再好的人也会卡壳。你需要认出车身轮廓属于某一代车型,再调动记忆里的品牌知识,才能给出答案。OK-VQA 就是为这类问题设计的基准,全称是 Outside Knowledge VQA,意为“需要外部知识的视觉问答”。

OK-VQA 于 2019 年提出,它从 MS COCO 图片中构造了约 1.4 万个问题,核心原则只有一条:确保这些问题无法仅从图片本身回答。它把 VQA 的考察对象从“视觉理解”扩展到了“视觉理解 + 知识调用”,让研究人员第一次可以量化评估:当问题超出图像内容时,模型还能不能答对。

如果把传统 VQA 比作看图猜物的热身赛,OK-VQA 就是“知识专场”的正赛。它揭开了视觉问答隐藏的另一半——人类答题时根本不是只看图,而是早在看到图的瞬间,就已经在调用脑子里几十年的生活经验和百科知识了。

数据集构造

出题组要为大赛准备一套“看图答不出”的题库,流程非常严格。第一步是选图,他们从庞大的图片库中挑选适合出题的日常场景;第二步是派人对着图片自由提问,再把所有“光看图就能答”的题统统扔掉;第三步是请另一组人验证,保证题目即使不看图也无法靠猜来作答。层层筛选之后,留下的才是真正需要“看图 + 知识”双重推理的好题。

OK-VQA 的数据集构造正是这个逻辑。研究者从 MS COCO 中选取了数千张覆盖常见生活场景的图片,然后通过亚马逊众包平台(Amazon Mechanical Turk)雇佣标注员为每张图编写问题。关键环节是“知识必要性筛选”:标注员拿到纯净图片后被要求先判断“不看图能不能答”,再判断“看了图能不能答”。只有那些“不看图答不出、看了图也答不出、必须结合外部知识才能答”的问题才会被保留。

答案的生成同样讲究。每个问题由多位标注员给出答案,然后再对近似表达做合并与清洗,比如“小孩”和“孩子”会被视为同一答案,形成标准答案集合。这样既控制了歧义,也让开放文本答案的评测成为可能。数据集中问题的知识来源也因此得到标注,为后续按知识类型分析模型表现打下了基础。

节目组的“枪毙重出”保证了题库质量,OK-VQA 的筛选机制则保证了基准的纯粹性。每一道题都必须同时绑定图像证据与外部知识,任何一条腿断了,题目就会被淘汰——这正是它和普通 VQA 最根本的区别。

知识类型分布

节目组把题库分成了好几个文件夹:常识文件夹里装着“水果什么季节成熟”,文化文件夹里装着“某品牌咖啡的标识颜色”,物理文件夹里装着“为什么斜坡上的车会下滑”。不同文件夹对应选手脑内不同的“知识频道”,谁也不知道下一题会从哪个文件夹里抽出来。

OK-VQA 对问题所需的外部知识做了类别标注,其中最主要的几类包括:

  • 常识知识(Commonsense):日常世界如何运转,比如“鸭子会游泳吗”“盘子通常是放在桌上还是地上”。
  • 文化知识(Culture):品牌、商标、地域特色、名人、艺术风格等,比如“这种风格的外观属于哪个国家”。
  • 物理知识(Physical):物体的物理属性与规律,比如重力、材料硬度、光影来源。
  • 视觉推理与场景知识:需要从图中细节出发做多步推断,比如“根据雪的存在,判断这是哪个季节”。

在这份“题库清单”里,常识类题目占比最高,文化类紧随其后,物理和推理类也占据相当份量。这种分布意味着:一个只会“看图说话”的模型,即使视觉能力再强,也很难在 OK-VQA 上拿到高分——因为它没有打开过这些“知识文件夹”。

对研究者来说,知识类型的分布不仅是一份统计表,更是一张“短板地图”。当模型在常识类上得分很高、在文化类上分数崩溃时,你就知道问题不在视觉编码器,而在于它所缺少的世界知识储备。

评测指标

大赛的计分规则极其简单:主持人亮出标准答案,选手给出的答案一致就记 1 分,不一致就记 0 分,最后看总积分排名。OK-VQA 的开放文本评测采用同样的思路——开放文本答案严格匹配,预测与标准答案一致才计分。整体准确率的定义如下:

除总体准确率外,研究者还会把测试题按知识类型分组,分别计算每组准确率,用来观察模型在哪类知识上掉链子;同时以人类标注者在同一批问题上的准确率作为参照基线。计分规则虽然残酷,却让“知识能力”第一次有了可以被横向比较的尺子。

Acc=1N∑i=1N1(a^i=ai)\displaystyle \text{Acc}=\frac{1}{N}\sum_{i=1}^{N}\mathbb{1}\big(\hat{a}_i=a_i\big)
一句话理解:把每道题的“对/错”加总平均,就是正确率。它是衡量模型在 OK-VQA 上综合表现的核心指标。
  1. 样本总数 N$N$ 表示测试用的问答对总数。可以把每道题想象成一次抢答,$N$ 就是整场比赛的抢答总次数。
  2. 指示函数$\mathbb{1}\big(\hat{a}_i=a_i\big)$:当模型答案 $\hat{a}_i$ 与标准答案 $a_i$ 完全一致时,函数值为 1,否则为 0。就像主持人核对答案后给出“对”或“错”的判定。
  3. 累加求和$\sum_{i=1}^{N}$:把每一题的 1 或 0 按顺序累加起来,得到整场比赛答对的总题数。
  4. 取平均$\frac{1}{N}$:用答对题数除以总题数,得到 0 到 1 之间的正确率,再换算为百分数,就是观众熟悉的“得分率”。

模型能力挑战

台上的选手们面对“看图猜品牌”这类题时,表现各不相同。有的选手脑子里空空如也,只能瞎猜;有的选手知识库里明明有答案,却不知道把图像线索和哪条知识对上号;还有的选手训练时见过类似的题,换一张新图就露馅了。这些表现,正好对应 OK-VQA 抛给模型的四重挑战。

第一重是知识获取。模型要么把知识隐式地存在预训练参数里(相当于“脑内知识库”),要么在推理时显式检索外部知识库,比如维基百科、ConceptNet(相当于“场外查资料”)。第二重是跨模态融合:把图像特征、问题文本、知识表示三种信息对齐在一起,不是把知识“贴”在图像旁边,而是让知识和视觉证据互相印证。第三重是推理能力:检索到知识只是第一步,模型还要判断哪条知识在该图中适用。第四重是知识边界:训练数据有截止日期,新品牌、新事件、冷门知识都会让模型失效,而静态知识库的更新又非常缓慢。

这四重挑战让 OK-VQA 成为一面照妖镜:只会背题、不会迁移的模型会在这里原形毕露。就像大赛主持人常说的:“我们考的不是你背了多少书,而是你会不会在关键时刻把合适的知识拿出来用。”

基准对比关系

这档“看图猜谜”节目其实是一个系列:入门版叫 VQA 2.0,进阶版叫 OK-VQA,豪华版叫 A-OKVQA。入门版考眼力,进阶版考知识调用,豪华版不仅要求答对,还要求选手当场解释“你是怎么想到这个答案的”。

VQA 2.0 是 OK-VQA 的“前辈”,它主要解决语言先验问题——防止模型不看图、只靠问题高频词就能蒙对。但 VQA 2.0 的答案大体仍可从图像中推出,属于“看图找线索”。OK-VQA 则向前跨了一大步,明确要求外部知识,很多题目仅凭图像信息根本无法作答。A-OKVQA 则是 OK-VQA 的进阶扩展:样本规模更大,问题需要更多步骤的推理,并且额外标注了答案理由(rationale),还同时支持多项选择与开放问答两种评测格式。

这条演进脉络清晰地展示了多模态评测的方向:从防止“偷懒”(VQA 2.0 去偏),到逼迫“调用知识”(OK-VQA),再到要求“解释思考过程”(A-OKVQA)。研究者通过这套梯度基准,可以像看成长曲线一样,观察模型如何从“看见”走向“知道”,再走向“理解”。

主流模型表现

每次节目更新,排行榜都会大洗牌。早期选手靠背题纲和翻资料,得分在 30% 附近徘徊;后来出现了一批“知识储量巨大”的选手,准确率直接翻倍。OK-VQA 的榜单变化正是如此。

经典模型时期,主流做法是把外部知识库(如 ConceptNet、Wikipedia)检索结果与图像特征拼接起来,再用注意力或图网络做融合,但效果有限,准确率长期在 30%~40% 区间。多模态大模型时代到来后,Flamingo、PALI、GPT-4V 等模型凭借海量预训练中沉淀的隐式知识,将 OK-VQA 上的表现推高到 60% 以上,部分顶尖系统已经接近甚至超过了早期人们认为遥不可及的高度。

但榜单分数需要冷静解读。OK-VQA 的排名不仅反映视觉理解,更反映知识储备、知识融合和推理能力的综合水平。两个模型可能视觉编码器一样,分数却相差十几个百分点,这就是知识环节的差距。同时,人类在该基准上依然有明显的优势,说明“看图 + 调用世界知识”这条路上,机器还有很大的追赶空间。

未来展望

节目组已经在酝酿下一季的改版方案:为了防止选手背题,他们会定期更换图片和问题;为了让选手有更充足的“场外资料”,他们会开放实时知识库接口;为了减少评分争议,他们还会引入“不仅要答对,还要解释清楚”的加分项。这些改版方向,正是 OK-VQA 这类基准的未来走向。

在动态基准方面,研究者开始设计可持续更新的题目池,避免模型通过记忆训练集刷分,也让评测结果更接近真实能力。在开放知识融合方面,新的评测会考察模型能否与实时检索系统配合,在知识库更新后快速适应,而不是固守训练时的知识截止日期。在多维度评测方面,除了准确率,还将加入答案理由的合理性、事实一致性、幻觉率以及偏见程度等指标。

OK-VQA 开创的“外部知识问答”范式,已经成为多模态评测的标准配置。未来无论题目怎么改版,这个内核不会变:真正的智能不是看见什么说什么,而是看见之后能调用万千世界经验,得出超越像素的判断。

AI 应用场景

多模态大模型发布前的知识能力体检

阶段:模型评测与基准测试

解决的问题:传统 VQA 榜单分数高,不代表模型真的懂世界。一个只会“看颜色、数个数”的模型,在需要品牌知识、常识推理的题目上会原形毕露,而 OK-VQA 恰好能填补这块盲区。

具体案例:某团队在发布新一代多模态大模型前,先在 OK-VQA 上跑一遍整体准确率,再按“常识 / 文化 / 物理”分组统计分准确率。结果发现文化类得分比常识类低 20 个百分点,据此在下一轮训练中加入更多图文配对的品牌语料。

检索增强视觉问答(RAG-VQA)效果验证

阶段:知识增强与检索生成

解决的问题:大模型的知识有截止日期,冷门问题容易“一本正经地胡说八道”。通过外部知识库检索把“场外求助”的能力接到模型上,是当前工程热点,而 OK-VQA 是最合适的试验田。

具体案例:工程师搭建了一条流水线:先用 CLIP 提取图像特征,再用文本检索器从百科召回候选知识,最后把图像、问题、知识一起送入语言模型生成答案。在 OK-VQA 上对比“纯模型”和“检索增强模型”,确认知识检索模块带来了超过 10 个百分点的提升。

智能助手的常识问答评测

阶段:应用部署与效果评估

解决的问题:手机助手拍摄识物时,常被问到“这是什么品牌”“这东西有什么用”,这些都需要外部知识。直接上线前,需要一套能反映知识能力的评测指标。

具体案例:智能助手团队从 OK-VQA 的训练分布中得到启发,自建了一批“拍图问答”测试集,模拟用户日常拍照问品牌、问用途、问原理的场景,并用 OK-VQA 的开放匹配方式计分,作为助手知识能力的关键质量门禁。

Python 演示

python69 行
# -*- coding: utf-8 -*-"""模拟 OK-VQA 小规模评测流程:对比有无外部知识库的模型表现。"""  class TinyOKVQAEval:    def __init__(self):        self.questions = []        self.answers = []        self.k_types = []        self.kb = {}        self.gc_count = 0        self.verified = []        self.free_lists = {}        self._init_data()     def _init_data(self):        self.questions = [            "图里这种水果通常什么季节成熟?",            "这家咖啡店的标志性颜色是什么?",            "为什么静止的车在斜坡上会下滑?",            "图中乐器属于哪个乐器家族?",            "这种天气现象常见于哪个地区?",            "图上建筑使用的石材特点是什么?",        ]        self.answers = ["秋天", "绿色", "重力", "弦乐", "热带", "坚硬"]        self.k_types = ["常识", "文化", "物理", "文化", "物理", "常识"]        self.kb = {            "水果季节": "秋天", "咖啡馆标志": "绿色",            "斜坡下滑": "重力", "乐器家族": "弦乐",            "天气地区": "热带", "石材特点": "坚硬",        }        self.free_lists = {k: 0 for k in set(self.k_types)}     def predict(self, q, model_kb=True):        if model_kb:            for key, val in self.kb.items():                if key in q:                    return val        return "不知道"     def evaluate(self, use_kb=True):        self.verified = []        self._counts = {k: 0 for k in set(self.k_types)}        for q, a, kt in zip(self.questions, self.answers, self.k_types):            pred = self.predict(q, use_kb)            hit = pred == a            if hit:                self._counts[kt] += 1                self.gc_count += 1            self.verified.append((q, pred, hit, kt))     def report(self):        total = len(self.questions)        acc = self.gc_count / total * 100.0        print("总体准确率: %.1f%% (%d/%d)" % (acc, self.gc_count, total))        for kt in self._counts:            n = self.k_types.count(kt)            print("%s类: %.1f%%" % (kt, self._counts[kt] / n * 100.0))  if __name__ == "__main__":    print("=== 不使用外部知识 ===")    m1 = TinyOKVQAEval()    m1.evaluate(use_kb=False)    m1.report()    print("\n=== 使用外部知识库 ===")    m2 = TinyOKVQAEval()    m2.evaluate(use_kb=True)    m2.report()
目的:用 6 道模拟“OK-VQA 风格”的题目,演示评测流程的核心逻辑——按知识类型分组、严格匹配计分、计算总体准确率,直观看到是否有外部知识库对得分的影响。
  1. self.kb = {...}模拟“场外知识库”,是模型答对这些外部知识题的关键来源。
  2. def predict(self, q, model_kb=True)模拟模型的推理入口:开启知识库时能命中答案,否则只能答“不知道”。
  3. hit = pred == a开放文本答案的严格匹配计分,对应 OK-VQA 的准确率判定。
  4. self._counts[kt] += 1按知识类型分组统计答对数,方便观察模型对不同知识类别的短板。
  5. acc = self.gc_count / total * 100.0计算总体准确率,对应公式 \(\frac{1}{N}\sum\mathbb{1}(\hat{a}=a)\)。

常见误区

误区VQA2.0 和 OK-VQA 不都是图配题的问答数据集吗?只是 OK-VQA 的题更偏更冷门,本质上还是从图里找答案。

正解两者知识性质完全不同。VQA2.0 的答案基本能从图像信息中推断出来,只是需要更强的视觉理解;OK-VQA 在构造时专门做了“知识必要性筛选”,确保题目无法仅从图像内容回答。用比喻说,一个考的是“盯着看”,一个考的是“看完还得想”。

为何常见:两者题目形式完全一样,都是“图片 + 问题 + 答案”,不看论文细节很难发现筛选机制的差异。

误区所谓外部知识,就是像搜索引擎一样,把维基百科的词条抓回来拼到答案里。

正解外部知识涵盖常识、文化、物理规律、推理结论等多种形态。模型可以从预训练参数中隐式获得这些知识,也可以显式检索百科,但 OK-VQA 真正考的是“结合图像使用知识”的综合能力,而不是“搜到就算赢”。就像猜谜比赛,允许你翻书,但翻到哪一页、怎么用,才是得分关键。

为何常见:“外部知识”一词容易让人第一反应联想到联网查资料,忽略了知识本身是多样的、内化的。

误区VQA 是视觉问答,分数高自然代表模型看图看得准。

正解OK-VQA 的准确率更多反映知识储备与融合能力。两个模型如果视觉编码器相同,一个接入了大规模百科知识库,另一个没有,分数可以相差十几个点。榜单上的分数是“视觉 + 知识 + 推理”的合力结果,不能简单归功于视觉模块。

为何常见:VQA 名字里带“视觉”,又在一张图片上作答,直觉上容易把分数归因到视觉能力。

误区两个数据集都叫 OKVQA,内容差不多,评测时选一个就行。

正解A-OKVQA 是 OK-VQA 的进阶版,样本规模更大、问题需要更多推理、额外标注了答案理由,还支持多项选择与开放问答两种形式。它考察的能力广度和深度都超过 OK-VQA,二者是“进阶”而非“平替”的关系。

为何常见:名字相似、主题重叠,容易让人误以为只是版本号不同的同一份数据。

面试题

Q1. OK-VQA 的核心特点是下列哪一项?

单选题 · easy

  • A.题目简单易回答
  • B.需外部知识作答← 正确答案
  • C.只有图像无文本
  • D.只有文本无图像

答案:B。OK-VQA(Outside Knowledge VQA)最核心的设定是“必须调用外部知识才能正确作答”,这和只看图就能答的传统 VQA 有本质区别。选项 A 与事实相反,C、D 都误解了视觉问答“图文配对”的基本形式。

Q2. 下列哪一项不属于 OK-VQA 的主要知识类型?

单选题 · easy

  • A.基础常识知识
  • B.文化背景知识
  • C.编程语法规则← 正确答案
  • D.物理世界知识

答案:C。OK-VQA 的知识类型包括常识、文化、物理、视觉推理等面向真实世界的知识,而“编程语法”属于计算机语言领域,不是看图问答所需的外部世界知识。就像猜谜大赛的题库里不会放程序员考试题。

Q3. 在 OK-VQA 准确率公式中,指示函数的作用是?

单选题 · mid

  • A.统计图片的总数
  • B.判断答案一致性← 正确答案
  • C.计算答案的平均
  • D.更新模型的参数

答案:B。指示函数 \(\mathbb{1}(\hat{a}_i=a_i)\) 的作用是“对答案”——当模型预测答案与标准答案一致时取 1,否则取 0。它不负责统计图片、计算平均,更与参数更新无关,相当于主持人亮标准答案时给出的一次性判定。

Q4. 相比 OK-VQA,A-OKVQA 最重要的新增是什么?

单选题 · mid

  • A.更大规模语料库
  • B.答案理由标注← 正确答案
  • C.纯视觉问答对
  • D.自动生成的问题

答案:B。A-OKVQA 不仅扩大了规模,还重点增加了答案理由(rationale)标注,要求模型解释“为什么给出这个答案”。规模扩大只是量的变化,理由标注才是质的飞跃,它把评测从“答对”推进到“讲清道理”。

Q5. OK-VQA 中的“外部知识”可以包括哪些?

多选题 · mid

  • A.驾驶中的常识← 正确答案
  • B.品牌文化信息← 正确答案
  • C.物理基本规律← 正确答案
  • D.图像像素数值

答案:ABC。外部知识是“图像之外”的世界知识:驾驶常识是常识类,品牌文化是文化类,物理规律是物理类。而图像像素数值属于图像本身的信息,是传统 VQA 就能用到的视觉特征,不算外部知识。

Q6. OK-VQA 对模型最大的考验是什么?

单选题 · mid

  • A.提高图像分辨率
  • B.跨模态知识融合← 正确答案
  • C.加快模型训练
  • D.扩大训练样本

答案:B。OK-VQA 的难点在于把图像特征、问题文本和外部知识三者对齐融合:图像提供证据,文本提供问题意图,知识提供答案线索。分辨率、训练速度、样本量都是工程问题,不是这个基准的核心考点。

Q7. 在 OK-VQA 上做公平的模型对比,正确的做法有哪些?

多选题 · hard

  • A.统一训练测试集← 正确答案
  • B.统一答案评估标准← 正确答案
  • C.允许测试集泄露
  • D.按知识类型分组← 正确答案

答案:ABD。公平对比要求所有模型使用相同的训练/测试划分和相同的答案匹配规则,并可以按知识类型分组观察短板。允许测试集泄露会让训练数据混入测试题,分数虚高,是评测中的严重违规行为。

Q8. OK-VQA 与传统 VQA 基准的本质区别是什么?

单选题 · hard

  • A.图片规模更加庞大
  • B.问题无法只看图作答← 正确答案
  • C.答案内容全是数字
  • D.完全取消人工标注

答案:B。OK-VQA 在构造时通过筛选机制保证:题目既不能从图内直接找到答案,也不能在不看图的情况下靠猜答出,必须结合图像与外部知识。规模大小、答案形式、标注方式都不是本质差异。

Q9. 关于 OK-VQA 的定位,下列描述最准确的是?

单选题 · extreme

  • A.它是纯文本填空基准
  • B.知识来源仅限百科
  • C.整合多源图像知识← 正确答案
  • D.不提供任何训练数据

答案:C。OK-VQA 是图文结合的多模态基准,它鼓励模型把图像信息与多种外部知识(常识、文化、物理等)整合起来作答。知识来源不限于百科,且包含图片和问题在内的完整训练数据,因此 A、B、D 都不正确。

Q10. 下列哪些指标可用于 OK-VQA 的模型评测?

多选题 · hard

  • A.总体准确率← 正确答案
  • B.分类型准确率← 正确答案
  • C.推理消耗时间
  • D.人类基线对比← 正确答案

答案:ABD。总体准确率衡量综合水平,分类型准确率暴露知识短板,人类基线提供参照尺度,三者都是 OK-VQA 评测的核心维度。推理耗时是工程性能指标,不属于知识能力的评测范畴。