DEPLOT: One-shot visual language reasoning by plot-to-table translation论文阅读

news2024/11/13 9:03:20

文章链接:https://arxiv.org/abs/2308.01979http://arxiv.org/abs/2212.10505https://arxiv.org/abs/2308.01979

源码链接:https://github.com/cse-ai-lab/RealCQA

Abstract

       理解图表需要很强的推理能力,之前的最先进 (SOTA) 模型至少需要数以万计的训练示例,然而推理能力仍然非常有限,尤其是在复杂的人工编写的查询中。这篇论文提出了第一个用于视觉语言推理的少样本(few-shot)解决方案,我们将视觉语言推理的挑战分解为两个步骤:(1)图表到文本的翻译,(2)对翻译后的文本进行推理。该方法的关键在于一个模态转换模块,称为DEPLOT,它将图表的图像转换为线性化的表格。DEPLOT的输出可以直接用于提示预训练的大型语言模型(LLM),利用LLM的少样本推理能力。为了获得DEPLOT,我们通过建立统一的任务格式和指标,规范了图表到表格的任务,并在这一任务上端到端地训练DEPLOT。DEPLOT然后可以与LLM以即插即用的方式一起使用。

1.Introduction

        对视觉语言(如绘图和图表)进行多模态推理是一项极其复杂的任务。对于下游任务,例如在CQA,模型需要首先从图像中提取相关信息,以合理的方式组织它们,然后对提取的条目进行推理。早先的研究采取端到端的解决方案(输入图像与问题,输出答案,没有中间结果),但端到端方法需要在大量任务数据上进行微调,即使在微调之后,它们在需要复杂推理的查询仍然表现不佳。例如,当前的 SOTA 模型 MATCHA (Liu et al., 2023a) 在 ChartQA 数据集(Masry et al., 2022)上仅达到 38.2% 的准确率。

        与此同时,GPT-3和 PaLM等大型语言模型 (LLM) 已经展示了卓越的小样本推理技能,而无需昂贵的人工注释。然而,如何将LLM应用到多模态推理任务中还是一个重要问题。在这项工作中,我们建议将多模态视觉语言推理问题分解为:(1) 将输入图表图像转换为表格,以及 (2) 将表格传递给 LLM 进行one-shot推理。

        该方法的关键是一个名为 DEPLOT 的模态转换模块,该模块将图表映射到表格。 DEPLOT 是一个端到端的图像到文本 Transformer 模型,其任务是 plot-to-table 翻译。

        在将绘图图像准确地转换为文本(作为线性化表)后,我们可以将 DEPLOT 的输出与查询一起传递给 LLM 来计算答案。我们利用新颖的提示技术,如思维链 (CoT) 、Self-Consistency (SC)和思维程序 (PoT)来得出更准确的答案。

        综上所述,这项工作有以下贡献:(1) 我们标准化了 plot-to-table 任务,并提出了一个统一且能提供有用信息的表格评估指标。(2) 我们提出了一个高效的模态转换模型 DEPLOT,将多模态任务转换为纯语言任务,然后利用 LLM 一步解决。

2.Background

Plug-and-play of multimodal pretrained models

Zero & few-shot reasoning over tables

Information extraction from plots and charts:早先关于图表信息提取的工作通常基于OCR、对象检测\分割系统、人为定义规则等方式,这些方法一般局限于特定类型图表。ChartBERT (Akhtar et al., 2023) 采用基于 OCR 的方法从图表中提取文本,并使用另外两个阶段的神经方法来处理提取的文本。ChartOCR(Luo等人,2021 年)是一个混合系统,接受所有类型的图表输入,并已被下游任务模型采用,用于图表 QA(Masry等人,2022 年)和summarization(Kantharaj等人,2022 年)。DEPLOT在图表转表格方面能取得比ChartOCR更好的效果。

除了方法,衡量图表提取结果的评估指标也不完善。之前为不同图表设计不同的评估指标,但这些评估指标只是衡量数据提取的过程,而不是最终的提取结果。所以我们提出了一个统一的表格评估指标(因为数据提取的结果就是表格)。

3.Standardizing the Plot-to-table Task

        视觉推理任务分为两个步骤:(1)使用 DEPLOT 将图表转换为文本(表格形式);(2)将表格输入到 LLM 进行推理。其中第一步是至关重要的,未来得到更精确的结果,我们将标准化 plot-to-table 转换任务,并提出一个用于评估 plot-to-table 转换的新指标。

3.1 Task Definition

        早先有工作将表格的评估指标定义为相对数字集相似度(Relative Number Set Similarity,RNSS),该指标仅查看预测的无序数字条目集,并衡量预测集与目标数字集的匹配情况。原理如下

(1)Relative Number Set Similarity (RNSS)

设模型预测表格中的数据为 P = \{p_i\}_{1\leq i \leq N},目标表格中的数据为T = \{t_j\}_{1\leq j \leq M},计算每一对数据的相对距离公式(最后计算得到M*N个相对距离,组成距离矩阵):

$\mathrm{D}(p, t)=\min \left(1, \frac{\|p-t\|}{\|t\|}\right)$

接下来在距离矩阵中寻找一个最佳匹配来最小化整体距离,定义一个二值矩阵X \in \mathbb{R}^{N\times M},最终的score的计算公式为:

RNSS =1-\frac{\sum_{i=1}^N \sum_{j=1}^M \mathbf{X}_{i j} \mathrm{D}\left(p_i, t_j\right)}{\max (N, M)}

但是,RNSS有一些局限:无法定位数据在表格中的位置;完全忽略了非数字数据;在表格重建中没有区分准确率与回调率。而我们认为,好的评估指标应该满足:

(i)不涉及表格行列的排序,以及行列的转置。(预测的表格可能行标题变成列标题,或者标题顺序与target不一致,但这些并不是数据提取好坏的评判标准

(ii)同时考虑数字型数据与非数字数据,允许有一定的误差,但要在阈值以内。

(iii)直观反映准确度和回调率的损失。

(2)Relative Mapping Similarity (RMS)
        我们提出RMS,它将表视为从行和列标题(r, c)到单个值v的映射的无序集合,我们将每个条目写为p_i = (p_i^r, p_i^c, p_i^v)t_j = (t_j^r, t_j^c, t_j^v),分别表示预测表P = {pi}1≤i≤N和目标表T = {tj}1≤j≤M中的每个条目。

文本型数据之间的距离可以使用Levenshtein距离(NL_\tau)衡量,其中\tau是一个阈值,超过阈值就被设置为最大值1(评估键的相似程度)。

\mathrm{NL}_{\tau} \left( p^r \middle\|p^c, t^r \middle\| t^c \right)

数字型数据的距离计算公式为(评估值的相似程度):

\mathbf{D}_{\theta}(p, t) = \min \left( 1, \frac{\| p - t \|}{\| t \|} \right)

总的距离计算公式为:

D_{\tau ,\theta }(p, t) = \left( 1 - \mathrm{NL}_{\tau} \left( p^r \middle\|p^c, t^r \middle\| t^c \right) \right) \left( 1 - \mathbf{D}_{\theta} \left( p^v, t^v \right) \right)

RMS的计算公式如下:

$\mathrm{RMS}_{\text {precision }}=1-\frac{\sum_{i=1}^N \sum_{j=1}^M \mathbf{X}_{i j} \mathrm{D}_{\tau, \theta}\left(p_i, t_j\right)}{N}$

\mathrm{RMS}_{\text{recall}} = 1 - \frac{\sum_{i=1}^{N} \sum_{j=1}^{M} \mathbf{X}_{ij} \mathbf{D}_{\tau, \theta} (p_i, t_j)}{M}

3.2 Training Plot-to-table Conversion Models

        我们使用最先进的视觉语言模型MATCHA (Liu等人,2023a)的架构和权重初始化了一个图像到文本的encoder-decoder架构Transformer模型。我们继续使用MATCHA的checkpoint进行微调,任务是将图表映射到其基础数据表。该表被线性化为一个文本序列(Markdown格式),其中|分隔单元格,\n分隔行。DEPLOT从左到右生成表格。

        训练语料库是一系列的图表-表格对,有合成数据也有真实数据(主要来源是ChartOCR、ChartQA、PlotQA)。

3.3 Human Eval of Plot-to-table Metrics

经过人为评估,证明RMS的有效性

4.Prompting LLMs for Reasoning

DEPLOT可以将给定的图表/图形转换成其文本形式(作为线性化表格)。然后,我们可以通过连接表格和question来构建文本提示。我们遵循典型的上下文学习范式,在当前提示前添加一个one-shot例子。

完整的提示使用了链式思维(CoT)或思维程序(PoT),这些提示稍微修改了Chen(2023)和Chen 等(2022)用于评估表格数据推理的版本。除了CoT提示外,我们还探索了将DEPLOT与大语言模型(LLM)相结合并加上自一致性(SC)(Wang等,2023),SC会采样一组不同的推理路径,并选择多数投票的答案,而不是像CoT那样依赖于一个贪婪解码的答案。

CoT:是指在解决复杂问题时,通过明确的、中间推理步骤逐步达到最终答案的思维过程。这种方式强调展示从问题到解决方案的详细推理路径,而不是直接给出结论。

PoT:是一种更结构化、更程序化的思维过程,与编程类似。PoT 通过定义明确的操作步骤、条件和循环,来系统处理复杂任务。它可以视为将编程逻辑应用于思维过程,以精确指示每一步操作。

CoT: 更关注推理过程本身,突出连贯性和逻辑性,但不一定严格程序化。PoT: 更关注具体的操作步骤,逻辑类似编程语言,强调明确的控制流和条件判断。在本文的情景下,CoT表现为用文字来表达推理过程的逻辑,PoT表现为用伪代码来表达逻辑,如下图所示

为了简化对大数字的算术运算,我们还测试了提示模型生成可以通过解释器执行的Python代码。为此,我们将Chen等(2022)和Gao等(2022)的范式适应于表格的上下文。未来的工作可以选择利用微调后的表格问答模型,如Herzig等(2020),或使用生成SQL程序的LLM(Cheng等,2023),这可能需要多次调用LLM来执行不同的原子操作。

5.Experiment 

6.Analyses and Discussions

6.1 Case Study and Error Analysis

通过实际案例展示了DEPLOT+LLM 的优缺点。第一个例子展示了DEPLOT+FlanPaLM(使用CoT或PoT)相对于MATCHA的优越性。第二个例子暴露出DEPLOT+LLM丢失了图表图像部分视觉特征的缺陷(LLM的输入只有表格和question,而没有颜色信息)。

6.2 Out-of-distribution Analysis

7.Conclusion

       我们提出了 DEPLOT+LLM,这是一种通过将任务分解为两个步骤来进行视觉语言推理的方法。第一步是使用DEPLOT将图表转换为表格。第二步是将 plot-to-text 模型与现成的 LLM 相结合,只需one-shot监督即可在表格上进行推理。 我们通过提出一个新的表相似性比较指标来标准化 plot-to-table 转换任务,该指标考虑了表的结构和数值,但不受列/行排列的影响。借助新指标,我们将图像转文本模型 DEPLOT 的性能与基于 OCR 的基线和三个端到端基线进行比较,从而实现最佳改进。然后,转换模型用于 ChartQA 和 PlotQA 的下游任务。在 ChartQA 人工查询集上,与使用数千个示例微调的端到端 SOTA 相比,一次性 DEPLOT+LLM 模型实现了 +29.4% 的性能。我们还进行了全面的分析,以了解 DEPLOT+LLM 框架的得失,并强调编码视觉属性可以成为未来探索的有益方向。

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

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

相关文章

圆周阵列元件的间距增加操作方法

在进行器件圆周阵列时,内圈的角度和外圈的旋转角度都相同,由于内圈的圆周长小于外圈的圆周长,有可能在内圈造成部分元件之间有两个焊盘会有覆盖的情况,此时需要对内圈的元件位置进行微调,需要增加在同一半径位置的元件…

数据结构 ——— 算法的时间复杂度

目录 时间复杂度的概念 时间复杂度函数式 大O的渐进表示法的概念 大O的渐进表示法 时间复杂度的概念 在计算机科学中,算法的时间复杂度是一个函数(数学上的函数式),它定量描述了该算法的运行时间,一个算法执行所耗…

Netty笔记10-Netty参数调优

文章目录 一、CONNECT_TIMEOUT_MILLISCONNECT_TIMEOUT_MILLIS设置为1秒超时CONNECT_TIMEOUT_MILLIS设置为5秒超时注意事项 二、SO_BACKLOG代码示例注意事项 三、ulimit -n(文件描述符)设置文件描述符限制在注意事项 四、TCP_NODELAY使用 TCP_NODELAY 的场景注意事项 五、SO_SND…

软件安全最佳实践:首先关注的地方

尽管组织拥有大量可用的工具,但应用程序安全性仍然不足。 最近的数据显示,在过去四到五年中,软件供应链攻击同比增长了 600-700%,超过一半的美国企业在过去 12 个月中遭受过某种形式的软件供应链攻击。 为何应用程序安全工作未…

签署《AI安全国际对话威尼斯共识》 智源持续推动人工智能安全发展

近日,由AI安全国际论坛(Safe AI Forum)和博古睿研究院(Berggruen Institute) 共同举办的第三届国际AI安全对话(International Dialogues on AI Safety)在威尼斯举办。图灵奖得主Yoshua Bengio、姚期智教授&…

电气设备施工现场风险状态判断ai模型训练数据集

电气设备施工现场风险状态判断ai模型训练数据集 id:18 电气设备施工现场工人人工智能学习数据和工作环境安全数据,建立系统化管理体系,改变全球EHS范式,预防工业事故。数据集记录了387709例子电力设施建设以及施工现场相关的灾害安全环境数据…

VM16安装macOS11

注意: 本文内容于 2024-09-17 12:08:24 创建,可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容,请访问原文地址:VM16安装macOS11。感谢您的关注与支持! 使用 Vmware Workstation Pro 16 安装 macOS…

数字世界的新秩序:探索Web3的前景

在过去的几十年中,互联网已经彻底改变了我们的生活方式,推动了信息共享、全球互联以及数字经济的快速发展。然而,当前的互联网架构主要是中心化的,由少数大型科技公司控制数据、服务和基础设施。这种模式虽然高效,但也…

Golang | Leetcode Golang题解之第419题棋盘上的战舰

题目: 题解: func countBattleships(board [][]byte) (ans int) {for i, row : range board {for j, ch : range row {if ch X && !(i > 0 && board[i-1][j] X || j > 0 && board[i][j-1] X) {ans}}}return }

微服务注册中⼼2

5.Nacos配置管理 Nacos除了可以做注册中⼼,同样可以做配置管理来使⽤ 5.1 统⼀配置管理 当微服务部署的实例越来越多,达到数⼗、数百时,逐个修改微服务配置就会让⼈抓狂,⽽且很容易出错。我们需要⼀种统⼀配置管理⽅案&#xf…

idea生成类信息及快捷开发配置

目录 一、预言 二、在Java类的开头自动注释作者名字和日期等信息 2.1.各种预设变量 2.2.idea配置 2.3.成品展示 三、快捷开发 3.1.三种循环热键 3.2.if判断 3.3.instanceof运算 3.4.非空判断 3.5.测试打印 3.6. synchronized 3.7.异常抛出 一、预言 在…

Java运算符有哪些?深入解析Java运算符:从基础到进阶的全方位指南(超全表格)

💻1.前言 在编程中,运算符是处理数据和变量的基本工具。它们不仅使得代码更加简洁,还能极大地提高编程效率。本文还提供了详细的 Java运算符参考表格,涵盖了算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、…

Dependency Check:一款针对应用程序依赖组件的安全检测工具

关于Dependency Check Dependency-Check 是一款软件组合分析 (SCA) 工具,可尝试检测项目依赖项中包含的公开披露的漏洞。它通过确定给定依赖项是否存在通用平台枚举 (CPE) 标识符来实现此目的。如果找到,它…

Arthas thread(查看当前JVM的线程堆栈信息)

文章目录 二、命令列表2.1 jvm相关命令2.1.2 thread(查看当前JVM的线程堆栈信息)举例1:展示[数字]线程的运行堆栈,命令:thread 线程ID举例2:找出当前阻塞其他线程的线程 二、命令列表 2.1 jvm相关命令 2.…

展锐平台的手机camera 系统开发过程

展锐公司有自己的isp 图像处理引擎,从2012 年底就开始在智能手机上部署应用。最初的时候就几个人做一款isp的从hal 到kernel 驱动的完整软件系统,分工不是很明确,基本是谁擅长哪些就搞哪些,除了架构和编码实现之外,另外…

Flask项目入门和视图

1、第一个项目的结构 以示例代码中的入口文件app.py为例子 (1)引入Flask以及创建Flask对象 from flask import Flask app Flask(__name__)(2) 路由route 视图函数 app.route(/index/) def hello_world():# 响应:…

超详细PS2019安装教程与安装步骤图文解析!保姆级教程!(附赠PS下载地址)

步骤1:下载Adobe Photoshop PS CC 2023下载链接:https://pan.quark.cn/s/f997e116f327 下载完成后,解压文件到当前文件夹(随便用什么解压软件都行,现在解压软件都是免费的,没有的到360官网下载360压缩&am…

开源RK3588 AI Module7,并与Jetson Nano生态兼容的低功耗AI模块

RK3588 AI Module7 搭载瑞芯微 RK3588,提供强大的 64 位八核处理器,最高时钟速度为 2.4 GHz,6 TOPS NPU,并支持高达 32 GB 的内存。它与 Nvidia 的 Jetson Nano 接口兼容,具有升级和改进的 PCIe 连接。由于该模块的多功…

Photoshop 2020安装教程

软件介绍 Adobe Photoshop,简称“PS”,是美国Adobe公司旗下最为出名的图像处理软件系列之一。ps 2021新增一键换天空,AI只能滤镜,新增内置的画笔工具极为丰富,成千上万的精致像素、动态和矢量画笔可以满足你的各种绘图…

【Qt | QAction】Qt 的 QAction 类介绍

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…