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

news2024/12/23 6:16:37

概述

论文地址: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.coloradmin.cn/o/2264096.html

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

相关文章

初等函数整理

1.幂函数 2.指数函数 3.对数函数

【C/C++】手搓项目中常用小工具:日志、sqlit数据库、Split切割、UUID唯一标识

每日激励:“不设限和自我肯定的心态:I can do all things。 — Stephen Curry” 绪论​: 本章将写到一些手搓常用工具,方便在项目中的使用,并且在手搓的过程中一些函数如:日志 宏中的__VA_ARGS__接收可变参…

路径规划之启发式算法之二十一:狼群算法(Wolf Pack Algorithm,WPA)

狼群算法(Wolf Pack Algorithm,WPA)是一种模拟狼群捕食行为及其猎物分配方式的群体智能优化算法。它由吴虎胜等人在2013年提出,算法采用了基于人工狼主体的自下而上的设计方法和基于职责分工的协作式搜索路径结构。它通过抽象狼群搜索、围攻以及更新换代的三种行为方式来实…

Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门任务创建【入门二】

继上一篇的hello world: 【Linux下基于最新稳定版ESP-IDF5.3.2开发esp32s3入门hello world输出【入门一】-CSDN博客】 这一篇我们开始任务的创建。 工程还是用上一篇的hello world作为模板,hello world就不再app_main函数中输出,改成在任务…

用音乐与自我对话 ——澄迈漓岛音乐节x草台回声

四季循环,昼夜往复,在相对恒定的日常中,音乐是扇打量世界又内观本心的双向窗户。难以描述的触动,透过音乐语言转换为温热且真实的吟唱,一次又一次记录与释放。 除却生浪主舞台中的声音玩具乐队以及STOLEN秘密行动&…

基础元器件的学习

1、二极管 1.1二极管的符号 ZD是稳压二极管 VD、V、D是普通二极管的符号。 1.2二极管的反向恢复时间 首先交流电为上正下负,然后下正上负。当二极管接到反向电压,二极管存在寄生电容,电压不能立刻突变,当输入频率变高时&#…

HTTP协议及安全防范

由于图片解析问题,可以点击查看 👉🏻 博客原文 HTTP(Hypertext Transfer Protocol)超文本传输协议是一个用于 Web 应用程序通信的应用层协议。它是一种客户端-服务器协议,客户端通过发送请求到服务器来获取…

LabVIEW深海气密采水器测控系统

LabVIEW的深海气密采水器测控系统通过高性价比的硬件选择与自主开发的软件,实现了高精度的温度、盐度和深度测量,并在实际海上试验中得到了有效验证。 项目背景 深海气密采水器是进行海底科学研究的关键工具,用LabVIEW开发了一套测控系统&am…

基于自然语言处理自动分配和高效执行制造任务可提高制造代理的灵活性和适应性

概述 论文地址:https://arxiv.org/abs/2406.01893 本研究提出了一种将大规模语言模型(LLMs)集成到多代理系统(MAS)中的新框架,以解决传统制造业在适应动态环境和快速响应生产变化方面所面临的困难。具体来…

使用 acme.sh 申请域名 SSL/TLS 证书完整指南

使用 acme.sh 申请域名 SSL/TLS 证书完整指南 简介为什么选择 acme.sh 和 ZeroSSL?前置要求安装过程 步骤一:安装 acme.sh步骤二:配置 ZeroSSL 证书申请 方法一:手动 DNS 验证(推荐新手使用)方法二&#xf…

越疆科技营收增速放缓:毛利率未恢复,持续亏损下销售费用偏高

《港湾商业观察》施子夫 12月13日,深圳市越疆科技股份有限公司(以下简称,越疆科技,02432.HK)发布全球发售公告,公司计划全球发售4000万股股份,其中3800万股国际发售,200万股香港公开…

windows下搭建本地sofa-registry

官方介绍: SOFARegistry 是蚂蚁金服开源的一个生产级、高时效、高可用的服务注册中心。SOFARegistry 最早源自于淘宝的 ConfigServer,十年来,随着蚂蚁金服的业务发展,注册中心架构已经演进至第五代。目前 SOFARegistry 不仅全面服…

「Mac畅玩鸿蒙与硬件46」UI互动应用篇23 - 自定义天气预报组件

本篇将带你实现一个自定义天气预报组件。用户可以通过选择不同城市来获取相应的天气信息,页面会显示当前城市的天气图标、温度及天气描述。这一功能适合用于动态展示天气信息的小型应用。 关键词 UI互动应用天气预报数据绑定动态展示状态管理 一、功能说明 自定义…

Pytorch | 从零构建MobileNet对CIFAR10进行分类

Pytorch | 从零构建MobileNet对CIFAR10进行分类 CIFAR10数据集MobileNet设计理念网络结构技术优势应用领域 MobileNet结构代码详解结构代码代码详解DepthwiseSeparableConv 类初始化方法前向传播 forward 方法 MobileNet 类初始化方法前向传播 forward 方法 训练过程和测试结果…

支付域——清结算系统体系

摘要 本文深入探讨了支付清算的基础知识和跨机构清算原理,涵盖了组织、账户、支付工具和系统的基础,支付流程的模型,以及支付清算的全局实现。文章还详细介绍了支付机构的五大业务和支付系统的总架构,并通过案例分析了支付清算的…

javaEE-线程的常用方法-4

目录 一.start():启动一个线程 调用start()方法 start()方法只能调用一次: java中的API: start()和run()的区别: 二.中断一个线程 中断线程方法1:引入标志位 中断线程方法2:调⽤interrupt()⽅法 抛出的异常: 三.等待一个线程 join() 四、获取线程引用 五…

uniapp小案例---趣味打字坤

当点击输入框时出现小鸡打字 当输入框失焦时打字鸡沉下去 原图自取 这里运用了一个三元 :class"isActive?active:"&#xff0c;当聚焦时isActivetrue从而让class绑定&#xff0c;当失焦时isActivefalse <template><view class"out"><inp…

JS使用random随机数实现简单的四则算数验证

1.效果图 2.代码实现 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</ti…

vue3项目结合Echarts实现甘特图(可拖拽、选中等操作)

效果图&#xff1a; 图一&#xff1a;选中操作 图二&#xff1a;上下左右拖拽操作 本案例在echarts​​​​​​​示例机场航班甘特图的基础上修改​​​​​​​ 封装ganttEcharts组件&#xff0c;测试数据 airport-schedule.jsonganttEcharts代码: 直接复制粘贴可测​​​​…

【已解决】黑马点评项目jmeter高并发测试中用户数据的生成

具体实现见此篇文章的第3章 运行 test 程序后&#xff0c;生成以下用户名 以下文件名改成自己的地址 成功