SKETCHPAD——允许语言模型生成中间草图,在几何、函数、图算法和游戏策略等所有数学任务中持续提高基础模型的性能

概述

论文地址: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 正在利用语言和图像的互补优势来应对日益复杂的推理挑战,并使语言模型更像人类。它有望成为实现多模态人工智能的重要一步。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot整合druid数据源

SprintBoot默认使用的是HikariDataSource数据源,而且上次课中我们也说了这个数据源访问速度很快,但是这里还要给大家介绍一个第三方的数据源druid,它是阿里开发的一款开源的数据源,被很多人认为是Java语言中最好的数据库连接池&am…

Dubbo 3.x源码(26)—Dubbo服务引用源码(9)应用级服务发现订阅refreshServiceDiscoveryInvoker

基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了MigrationRuleHandler这个处理器,它用于通过动态更改规则来控制迁移行为。MigrationRuleListener的onrefer方法是Dubbo2.x 接口级服务发现与Dubbo3.x应用级服务发现之间迁移的关键…

Qt Creator 为同一个项目切换不同的构建套件(Kit)

如下图所示,我只有一个构建套件: 切换构建套件(Kit)的步骤如下: 选中上图中的步骤②后,可以看到如下图所示的结果,构建套件就已经添加成功了: 此时,我们可以自由选择使用哪一个构建套件。 如…

vue3实现商城系统详情页(前端实现)

目录 写在前面 预览 实现 图片部分 详情部分 代码 源码地址 总结 写在前面 笔者不是上一个月毕业了么?找工作没找到,准备在家躺平两个月。正好整理一下当时的毕业设计,是一个商城系统。还是写篇文章记录下吧 预览 商品图片切换显示…

Java深拷贝和浅拷贝区别?

大家好,我是锋哥。今天分享关于【Java深拷贝和浅拷贝区别?】面试题。希望对大家有帮助; Java深拷贝和浅拷贝区别? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在Java中,深拷贝(Deep Copy)和浅拷贝&am…

React 第十七节 useMemo用法详解

概述 useMemo 是React 中的一个HOOK,用于根据依赖在每次渲染时候缓存计算结果; 大白话就是,只有依赖项发生变化时候,才会重新渲染为新计算的值,否则就还是取原来的值,有点类似 vue 中的 computed 计算属性…

全国数据资源入表年度发展报告(2024)(附下载)

近日,在“数据要素暨第二届数据资产价值大会”上,青岛、潍坊、湖州、广西等地的数据资产登记评价中心,联合发布了《全国数据资源入表年度发展报告(2024)》。 报告内容包括全国数据资源入表的总体发展概述、政策指引、…

【Mybatis】MyBatis 探秘:#{} 与 ${} 参传差异解码,数据库连接池筑牢数据交互根基

前言 🌟🌟本期讲解关于Spring IOC&DI的详细介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么…

解锁 draw.io 流程图制作工具的强大功能与应用(1/2)

一、draw.io 简介 (一)基本概述 draw.io 是一款由 JGraph 公司开发的基于网页的在线图表绘制工具。它最大的优势之一就是无需进行繁琐的下载和安装步骤,只要打开浏览器,访问其官网,就能立即开始使用。无论是在 Window…

ai论文写作免费平台:五款AI论文写作辅助工具的对比与分析

随着人工智能技术的飞速发展,越来越多的AI工具应运而生,为学术写作带来了前所未有的便利。本文将对千笔AI论文、笔灵AI论文、Smodin、以及Notion AI等五款AI论文写作辅助工具进行全面的对比与分析,以帮助用户更好地了解这些工具的优势和特点&…

三、基于langchain使用Qwen搭建金融RAG问答机器人--检索增强生成

经过前面2节数据准备后,现在来构建检索 加载向量数据库 from langchain.vectorstores import Chroma from langchain_huggingface import HuggingFaceEmbeddings import os# 定义 Embeddings embeddings HuggingFaceEmbeddings(model_name"m3e-base")#…

数据仓库工具箱—读书笔记02(Kimball维度建模技术概述02、事实表技术基础)

Kimball维度建模技术概述 记录一下读《数据仓库工具箱》时的思考,摘录一些书中关于维度建模比较重要的思想与大家分享🤣🤣🤣 第二章前言部分作者提到:技术的介绍应该通过涵盖各种行业的熟悉的用例展开(赞同…

fabric.js

目录 一、在canvas上画简单的图形 二、在canvas上用路径(Path)画不规则图形 三、在canvas上插入图片并设置旋转属性(angle) 四、让元素动起来(animate) 五、图像过滤器(filters)让图片多姿多彩 六、颜色模式(Color)和相互转换(toRgb、toHex) 七、对图形的渐变填充(Gradi…

Liinux下VMware Workstation Pro的安装,建议安装最新版本17.61

建议安装最新版本17.61,否则可能有兼容性问题 下载VMware Workstation安装软件 从官网网站下载 https://support.broadcom.com/group/ecx/productdownloads?subfamilyVMwareWorkstationPro 选择所需版本 现在最新版本是17.61,否则可能有兼容性问题…

压力测试Jmeter简介

前提条件:要安装JDK 若不需要了解,请直接定位到左侧目录的安装环节。 1.引言 在现代软件开发中,性能和稳定性是衡量系统质量的重要指标。为了确保应用程序在高负载情况下仍能正常运行,压力测试变得尤为重要。Apache JMeter 是一…

前端的知识(部分)

11 前端的编写步骤 第一步:在HTML的页面中声明方法 第二步:在<script>中定义一个函数,其中声明一个data来为需要的数据 赋值一个初始值 第三步:编写这个方法实现对应的功能

LSTM详解

1. LSTM设计 LSTM(长短期记忆网络)详解 长短期记忆网络(LSTM, Long Short-Term Memory) 是一种特殊的循环神经网络(RNN),特别适合处理和预测序列数据中的长时间依赖关系。LSTM 通过引入“门机制”(如输入门、遗忘门、输出门)来解决标准 RNN 在长时间序列任务中梯度消…

我在广州学 Mysql 系列之 数据类型和运算符详解

ℹ️大家好&#xff0c;我是&#x1f606;练小杰&#xff0c;今天主要学习 Mysql的数据类型以及运算符操作~~ 上周五学习了“Mysql 系列之 数据“表”的基本操作”~ 想要了解更多&#x1f236;️MYSQL 数据库的命令行总结&#xff01;&#xff01;&#xff01; “我是你的敌人,…

python 配置 oracle instant client

1.问题描述 想用python连接oracle数据库&#xff0c;百度得知需要cx_Oracle这个第三方库 import cx_Oracle# 设置Oracle数据源名称 dsn cx_Oracle.makedsn(host, port, service_nameservice_name)# 创建数据库连接 connection cx_Oracle.connect(userusername, passwordpas…

使用FastGPT制做一个AI网站日志分析器

越来越的多网站面临每天上千次的扫描和各类攻击&#xff0c;及时发现攻击IP&#xff0c;并有效的屏蔽不良访问成为网站安全的重要保障&#xff0c;这里我们使用AI来完成对网站日志的日常分析。 我们来使用FastGPT来制做一个AI网站日志析器&#xff0c;下面就开始&#xff1a; …