概述
论文地址:https://arxiv.org/pdf/2406.09403
素描是一种应用广泛的有效工具,包括产生创意和解决问题。由于素描能直接传达无法用语言表达的视觉和空间信息,因此从古代岩画到现代建筑图纸,素描在世界各地被用于各种用途。儿童用它来解决几何问题,工程师用它来解释原型,建筑师用它来绘制蓝图,甚至科学家也用它来传达复杂的概念和实验结果。
多模态语言建模的最新进展主要集中在通过绘制所谓的 "中间草图 "来简化推理的任务上。在涉及几何或复杂数学问题等主要基准测试中,模型会收到图表图像,并回答需要符号或空间理解的问题。此时,例如在几何问题中,可以通过绘制中间草图(如辅助线)来提高推理能力,这与人们解决问题的方式相同。
计算机视觉基准具有类似的特点,例如,在物体检测中,会在物体周围绘制一个边界框;在深度估计中,会根据深度绘制一个颜色图,从而提高模型的检测性能。最近提出的 "BLINK "和 "VBench"也侧重于中间草图。但与此同时,对目前基于草图推理的语言模型所使用的框架还没有进行充分的研究。
本文提出的 SKETCHPAD 是一种为推理生成中间草图的工具。它受到文本排序链(CoT)推理的启发,促使底层视觉语言模型生成视觉工件,作为文本、程序和视觉推理混合链的一部分。例如,在证明三角形的角度之和为 180 度时,如下图(a)所示,SKETCHPAD允许代理通过引入新的辅助线来编辑图表。然后,它将提供关于这条新线和与之相关的角的补充信息,并利用这些信息来解决这个几何任务。
SKETCHPAD还提高了计算机视觉中模型空间推理的性能。如上图(d)所示,在判断一块饼干是否堆叠在另一块饼干之上时,模型首先会进行中间深度估计。通过分析这一估算结果,饼干显然是堆叠在一起的,因此模型可以得出准确的答案。
论文展示了 SKETCHPAD 在各种数学和计算机视觉任务中的有效性。在数学方面,论文涉及几何、数学函数、图形算法和策略游戏等问题。对于几何问题,SKETCHPAD 会根据图表输入和问题,使用辅助线和变量提示模型生成 Matplotlib 代码。即使在纯语言输入的情况下,SKETCHPAD 也能让模型绘制函数图并推理其性质。这些结果表明,即使是基于语言的输入,SKETCHPAD 也有能力支持推理。在所有类别的数学任务中,SKETCHPAD的表现都比基准GPT-4好10%左右。
计算机视觉可处理深度、空间推理、拼图、视觉对应、语义对应等各种任务,以及 MMVP 和 VBench 提出的问题。在这一领域,SKETCHPAD 使模型能够生成分割遮罩、裁剪图像、绘制边界框、缩放图像区域和叠加图像。与数学一样,SKETCHPAD 在所有七类计算机视觉任务中始终表现出色。例如,利用 SKETCHPAD,GPT-4 在 VBench 上提高了 14.3%,在 BLINK 深度和语义对应任务上分别提高了 12.1% 和 9.7%。
此外,对 SKETCHPAD 的有效性进行的分析以及对模型生成的计划和人类生成的计划进行的比较表明,它们非常一致,并显示出相似的推理模式。SKETCHPAD有望引发对更先进和可解释的多模态人工智能的新研究。
新的 SKETCHPAD 框架
本文提出的 SKETCHPAD 是多模态语言模型的通用框架,用于绘制草图作为推理的中间步骤,并利用草图进行进一步推理。下图举例说明了 SKETCHPAD 的工作原理。
输入多模态查询后,SKETCHPAD 代理会生成一个草图计划(思维)来处理查询,然后生成一个程序来生成草图(操作)。生成的草图(观察)是推理过程的可视化表示,模型对其进行分析,为查询生成最终输出。
在第一步 "思考 “中,模型分析上下文(包括查询、以前的想法、行动和观察)并生成下一步行动的思考计划。例如, 给定上图(a)中的 查询"查找 ∠EIC” ,模型的思维计划将画出与 BD 平行的辅助线 IX。
在第二步 "行动 "中,基于 “思想”,模型会执行操作视觉和文本内容的行动。在几何图形示例中,模型生成 Python 代码,修改原始几何图形以绘制辅助线。生成的代码将被编译并执行。
在第三步 "观察 "中,SKETCHPAD 环境会根据"操作 "返回新的观察结果。在几何示例中,将返回一个带有新辅助线的新图表。
多模态语言模型可以利用这一框架立即勾勒出来,无需进行微调或学习。
这个多轮交互过程一直持续到模型认为已经收集到足够的信息来回答查询为止。此时,模型会生成一个特殊的退出操作,并输出答案。
在传统研究中,语言模型主要生成和处理基于文本的观察和行为,而 SKETCHPAD 则不同,它允许模型同时处理视觉和文本内容。这样,模型就可以利用他们绘制的草图进行规划和推理,提高解决问题的能力。
草图绘制功能是 SKETCHPAD 的核心,它允许语言模型生成绘制草图的程序。这些程序通过调用各种专用视觉模型和 Python 绘图软件包来执行。与最近报道的 ViperGPT 和 VPD 类似,SKETCHPAD 允许语言模型通过生成代码来绘制草图。我们为语言模型提供了详细的工具说明,使其能够通过提示生成多模态内容(实际提示的示例可在本文的补充材料中找到)。
根据任务的不同,SKETCHPAD 使用多种工具来实现草图。对于数学任务,使用 matplotlib 和 networkx 等常用 Python 软件包绘制草图;而对于图像任务,在绘制草图时使用图像语言模型。这些模型包括在图像上绘制边界框的检测工具、绘制彩色遮罩的分割和标记工具,以及对分割进行编号和标注的工具。
数学任务中的素描
在这里,SKETCHPAD 被用来处理四个复杂的数学任务(几何、函数、图形算法和游戏策略)。我们的研究表明,将草图绘制功能集成到语言模型中能显著提高数学问题的处理能力,并取得新的先进成果。
首先是几何问题。在这方面,画辅助线对解决问题大有帮助。正如我们刚才看到的,在下图(a)中,问题是 “求∠EIC”。在这种情况下,语言模型计划画一条平行于 BD 的辅助线 IX,从而利用平行线的性质求出 ∠EIC。
为了评估 SKETCHPAD 的有效性,我们使用了 Geometry3K 数据集中的一个问题:SKETCHPAD 将几何图形和相应的 matplotlib 代码作为输入,提出并修改代码以生成辅助线,运行代码并在更新代码后添加辅助线。将几何图形可视化。
其次是函数问题。函数在科学、工程和经济学的各种应用中都很重要。在此,我们重点讨论IsoBench 数据集中的以下两项任务:偶偶分类和凸凹判定。偶偶函数分类确定一个函数是偶函数、奇函数还是两者都不是。对于所有 x,偶函数满足 f(-x) = f(x),而奇函数满足 f(-x) = -f(x)。凸凹判定也决定了一个函数是凸函数还是凹函数。
传统的语言模型会分析函数并试图证明其属性,而 SKETCHPAD 可以通过直观地勾画函数来高效地解决问题。为了确定下图(b)中函数的凸性,SKETCHPAD 使用 matplotlib 绘制了函数图,并直观地验证了其整体形状。
下一步是图算法问题。许多与计算机网络和运输系统相关的实际问题都可以表述为图算法问题:我们根据IsoBench 的以下三个图算法任务对 SKETCHPAD 进行了评估:连通性、最大流量和同构性。图形连通性决定了图形中两个顶点之间是否存在路径。最大流量是指在一个有边的网络中,在容量限制条件下,从源顶点发送到汇顶点的最大流量。图同构决定了两个图在结构上是否等同。
如下图 (b) 所示,在给出图形邻接矩阵后,SKETCHPAD 会使用 Python 的 networkx 库绘制实际的图形结构,从而可以直接对图形的属性和关系进行可视化推理。
最后是棋局策略。国际象棋棋局可以用不同的格式表示,如可视化棋盘状态或文本程序符号。即使只给出文本程序符号,SKETCHPAD 也会绘制棋盘、分析局面并制定策略;评估 SKETCHPAD 在 IsoBench 数据集的胜者识别任务中的表现,并根据最终棋盘状态、国际象棋找出对局结果(白胜、黑胜、和棋)。为了创建图形棋盘,SKETCHPAD 使用 Python 国际象棋库,以国际象棋的 Forsyth-Edwards Notation (FEN) 来绘制棋盘。
使用可访问 API 的多模态语言模型(gpt-4-turbo-2024-04-29 和 gpt-4o-2024-05-13)来评估 SKETCHPAD 的性能。这些结果与没有 SKETCHPAD 的基线、主要封闭源模型(如 Claude 3 和 GeminiPro)以及开源模型(如 Mistral 和 LLaMA-2 70B)进行了比较。
如下表所示,在所有任务中,SKETCHPAD 不断提高基础模型的性能,GPT-4o 平均提高 18.8%,GPT-4 Turbo 平均提高 13.5%。
特别是在图形连通性(Connectivity)和最大流量(Maxflow)等图形算法方面,观察到了明显的改进。例如,在 GPT-4o 上使用 SKETCHPAD 时,最大流量(Maxflow)的准确率达到 66.3%,比基础模型提高了 41.3%。同样,在函数任务中,GPT-4 Turbo 的准确率超过 90%,GPT-4o 的准确率超过 88%,在凸性和偶数分类任务中也有显著提高。此外,在游戏策略方面也有约 20% 的提高,这表明绘制的游戏棋盘提高了策略推理能力。这些结果表明,SKETCHPAD 是增强多模态语言模型在多个领域的推理能力的有效手段。
计算机视觉任务中的草图绘制
在这里,SKETCHPAD 被用来处理复杂的视觉推理任务。最近的研究(BLINK)表明,目前许多多模态语言模型仍然缺乏核心的视觉识别能力。而专用计算机视觉模型则具备这种能力。此外,SoM 研究表明,在图像上绘制分割掩码可以利用 GPT-4V 强大的视觉支撑能力。在本文中,我们将这些想法推广到 SKETCHPAD 中,以便使用专用视觉模型绘制语言模型草图。
SKETCHPAD使用三个复杂的视觉推理任务(VBench、MMVP 和BLINK)进行实验:VBench 是一个基准,包含有关图像中小项的问题;MMVP 是一个基准,包含视觉问题,旨在揭示基于 CLIP 的多模态语言模型的视觉缺陷;BLINK 是一个基准,包含视觉问题,旨在揭示基于 CLIP 的多模态语言模型的视觉缺陷。BLINK是一个包含视觉识别任务的基准,这些任务对人类来说很容易,但对多模态语言模型来说却具有挑战性。具体来说,它包括相对深度、空间推理、拼图、视觉对应和语义对应任务。
在 SKETCHPAD 中,语言模型使用多个模块(检测、分割、深度估计、滑动窗口视觉搜索和其他图像处理模块)来绘制和处理图像。这些模块以 Python 函数的形式实现,可由语言模型调用
检测模块将图像和文本查询(如 “猫”)作为输入,运行 Grounding-DINO 开放词汇对象检测模型,并绘制图像中检测到的边界框(带数字标签)。它还会返回边界框的坐标。
分割模块将图像作为输入,并返回一张绘有彩色分割掩码的图像。每个掩码都有一个数字标签。基础分割模型是 SegmentAnything 和 Semantic-SAM。深度估计模块将图像作为输入,并返回深度图。基础模型是 DepthAnything。
滑动窗口视觉搜索模块模仿人类在图像上搜索小物件的方式。它将文本查询作为输入,并在图像上执行滑动窗口。窗口大小为图像大小的 1/3,步长为图像大小的 2/9。返回检测到的图像斑块序列。
其他图像处理模块包括放大和裁剪(将图像和边界框作为输入,并返回框内的图像补丁)和叠加图像(将两幅图像和 alpha 值作为输入,并返回叠加图像)。
SKETCHPAD 充分利用这些模块,显著提高了多模态语言模型的视觉推理能力。这为有效解决复杂的视觉任务提供了一种新方法。
在此,我们在一项复杂的视觉推理任务中对多模态语言模型进行了实验,比较了它们在使用和不使用 SKETCHPAD 的情况下的表现,以及与主要多模态语言模型(Gemini、Claude 3、LLaVA 1.5、LLaVA-NeXT)的表现。资料来源如下表所示,SKETCHPAD 在所有任务中都持续提高了基础模型的性能,特别是带有 SKETCHPAD 的 GPT-4o 在所有任务中都取得了最新的成绩。
VBench 的表现优于 SEAL,在 GPT-4 Turbo 上提高了 18.5%,在 GPT-4o 上提高了 14.3%。在 BLINK 中,SKETCHPAD 对 GPT-4 Turbo 的平均绝对准确率提高了 6.6%,对 GPT-4o 的平均绝对准确率提高了 9.0%。
尽管 SKETCHPAD 模块只处理单幅图像,但在多幅图像任务(拼图、视觉对应、语义对应等)中也有显著改进。SKETCHPAD 的帮助更大。总之,SKETCHPAD 被证明是提高多模态语言模型在视觉推理任务中性能的有效方法。
总结
本文提出的 SKETCHPAD是一个为多模态语言模型生成中间草图的新框架。通过将辅助线、数学函数、图形和游戏可视化,该框架可大幅提高复杂数学推理任务的性能。
对于视觉推理任务,视觉专家已被添加到 SKETCHPAD 中;LM 在推理过程中调用这些专家,将预测结果可视化,例如来自物体检测模型的边界框或来自分割模型的遮罩,然后观察这些预测结果,以便进一步规划和推理。系统。
实验结果表明,SKETCHPAD 取得了新的先进成果,提高了语言模型在所有任务中的性能,SKETCHPAD 正在利用语言和图像的互补优势来应对日益复杂的推理挑战,并使语言模型更像人类。它有望成为实现多模态人工智能的重要一步。