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

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

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

启发:two-stage方法可能是未来主要研究方向,能够增强模型可解释性,并且能有效利用LLM的优点,更加适应真实数据集。

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}个人理解这个二值矩阵应该是每一行、每一列都仅有一个元素为1,需要有多个X,每个X代表一种匹配),最终的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 

数据集:

(1)ChartQA 包含两个集合:augmented (aug.) 和 human,其中 augmented set 是合成生成的,而 human set 是人类编写的。人类编写问题通常更加多样化和复杂,需要更多的推理,而合成问题通常是高度模板化的。

(2)PlotQA 是纯合成的。它包含v1和v2集合,其中v1主要是提取问题,v2更侧重于数字推理。

评估指标:RNSS 和 RMSF1 都用于评估图到表的翻译

实验结果:

       DEPLOT在ChartQA human set上表现显著优于其他模型,原因可能是因为合成数据集是有固定模板的,其他模型在大量合成数据集上进行训练,在这些模板的数据上可以达到较高准确度。但是,真实数据集中有许多新的类型(分布外数据),面对分布外数据,其他模型的表现就明显下降,这时候DEPLOT的few-shot就体现出了优势,因为它只需要少量样本就能快速适应分布外数据

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.rhkb.cn/news/429415.html

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

相关文章

利用AI增强现实开发:基于CoreML的深度学习图像场景识别实战教程

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

网络安全-利用 Apache Mod CGI

目录 一、环境 二、开始操作 三、总结 一、环境 蚁剑官网拉取 二、开始操作 蚁剑连接 一样终端命令不能执行 可以看到putenv已经禁用 我们开始一下,跳入一个新终端且可以执行命令 我们具体看一下干了什么事情 上传了一个htaccess这个文件的作用是让以后所有ant文…

LAMP架构搭建

目录 LAMP架构搭建 编译安装Apache httpd服务 1、需要的安装包 2、关闭防火墙和核心防护 3、安装环境依赖包 4、配置软件模块 5、编译及安装 6、优化配置文件路径(可不做) 7、添加httpd系统服务 8、修改httpd 服务配置文件 9、浏览器访问验证…

【Pycharm】Pycharm创建Django提示pip版本需要升级

目录 1、现象 2、分析 3、本质 前言:经常使用pycharm创建django、flask等项目时候提示pip版本需要升级,解决方案 1、现象 使用Pycharm创建Django项目提示安装Django超时,报错建议pip升级22升级到24 2、分析 之前使用命令升级了pip到了24…

linux 基础(一)mkdir、ls、vi、ifconfig

1、linux简介 linux是一个操作系统(os: operating system) 中国有没有自己的操作系统(华为鸿蒙HarmonyOS,阿里龙蜥(Anolis) OS 8、百度DuerOS都有) 计算机组的组成:硬件软件 硬件:运算器&am…

思通数科开源产品:免费的AI视频监控卫士安装指南

准备运行环境: 确保您的服务器或计算机安装了Ubuntu 18.04 LTS操作系统。 按照产品要求,安装以下软件: - Python 3.9 - Java JDK 1.8 - MySQL 5.5 - Redis 2.7 - Elasticsearch 8.14 - FFmpeg 4.1.1 - RabbitMQ 3.13.2 - Minio (…

240912-设置WSL中的Ollama可在局域网访问

A. 最终效果 B. 设置Ollama(前提) sudo vim /etc/systemd/system/ollama.service[Unit] DescriptionOllama Service Afternetwork-online.target[Service] ExecStart/usr/bin/ollama serve Userollama Groupollama Restartalways RestartSec3 Environme…

​OpenAI最强模型o1系列:开启人工智能推理新时代

前不久OpenAI发布全新模型——o1模型,也就是业界说的“草莓模型”,包含三款型号:OpenAI o1、OpenAI o1-preview和OpenAI o1-mini。 其中,OpenAI o1-mini和 o1-preview已经对用户开放使用: OpenAI o1:高级推…

C语言之预处理详解(完结撒花)

目录 前言 一、预定义符号 二、#define 定义常量 三、#define定义宏 四、宏与函数的对比 五、#和## 运算符 六、命名约定 七、#undef 八、条件编译 九、头文件的包含 总结 前言 本文为我的C语言系列的最后一篇文章,主要讲述了#define定义和宏、#和##运算符、各种条件…

植物大战僵尸【源代码分享+核心思路讲解】

植物大战僵尸已经正式完结,今天和大家分享一下,话不多说,直接上链接!!!(如果大家在运行这个游戏遇到了问题或者bug,那么请私我谢谢) 大家写的时候可以参考一下我的代码思…

前端工程化4:从0到1构建完整的前端监控平台

前言 一套完整的前端监控系统的主要部分: 数据上报方式数据上送时机性能数据采集错误数据采集用户行为采集定制化指标监控sdk 监控的目的: 一、数据上报方式 本文的方案是,优先navigator.sendBeacon,降级使用1x1像素gif图片…

群晖NAS使用Docker本地部署网页版Ubuntu系统并实现无公网IP远程访问

文章目录 前言1. 下载Docker-Webtop镜像2. 运行Docker-Webtop镜像3. 本地访问网页版Linux系统4. 群晖NAS安装Cpolar工具5. 配置异地访问Linux系统6. 异地远程访问Linux系统7. 固定异地访问的公网地址 前言 本文旨在详细介绍如何在群晖NAS部署docker-webtop,并结合c…

《财富之眼:用经济思维看清世界》pdf电子书下载

《财富之眼:用经济思维看清世界》pdf电子书下载 内容简介 一切社会现象都是经济现象,我们只能赚到自己认知范围内的 钱。我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不 平衡不充分的发展之间的矛盾,其中“不平衡不充分”很大程…

【网络】高级IO——Reactor版TCP服务器

目录 1.什么是Reactor 1.1.餐厅里的Reactor模式 2.Reactor的由来 2.1.单 Reactor 单进程 / 线程 2.2.单 Reactor 多线程 / 多进程 2.3.多 Reactor 多进程 / 线程 3.实现单 Reactor 单进程版本的TCP服务器 3.1.Connection类 3.2.TcpServer类 3.3.Connection的真正用处 …

C++—vector的常见接口与用法(正式进入STL)

目录 0.提醒 1.介绍 2.构造 1.正常构造 2.默认值构造 3.调用默认构造函数构造 3.遍历 1.迭代器 2.范围for 3.下标访问 4.容量 1.capacity:返回当前容器的容量 2.reserve:如果传的k比当前容量大,则扩容到比k大或者等于k的数&…

Windows10安装cuda11.3.0+cudnn8.5.0,以及创建conda虚拟环境(pytorch)

1、检查电脑驱动版本为561.09&#xff0c;选择cuda版本&#xff0c;下图可知cuda版本<12.6。 nvidia-smi #查看驱动版本&#xff0c;以及最大可以安装的cuda版本 2、Anaconda3-2024.06-1-Windows-x86_64.exe下载&#xff1a; 官网&#xff1a;https://www.baidu.com/link?…

STL之vector

vector简单介绍 vector是一个STL的一个容器&#xff0c;行为类似于变成数组&#xff0c;也就是存储空间是连续的&#xff0c;同时其空间大小又是动态可变的。 vector访问元素的效率很高可以通过下标直接访问&#xff0c;但是其占用的空间很多&#xff0c;插入删除元素的效率很…

PostMan使用变量

环境变量 使用场景 当测试过程中&#xff0c;我们需要对开发环境、测试环境、生产环境进行测试 不同的环境对应着不同的服务器&#xff0c;那么这个时候我们就可以使用环境变量来区分它们 避免切换测试环境后&#xff0c;需要大量的更改接口的url地址 全局变量 使用场景 当…

无人机集群路径规划:麻雀搜索算法(Sparrow Search Algorithm, SSA)​求解无人机集群路径规划,提供MATLAB代码

一、单个无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径&#xff0c;使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一&#xff0c;它可以通过算法和模型来确定无人机的航迹&#xff0c;以避开障碍物、优化…

Linux shell编程学习笔记81:zcat命令——快速查看压缩文件内容

0 引言 在 Linux shell编程学习笔记80&#xff1a;gzip命令——让文件瘦身-CSDN博客https://blog.csdn.net/Purpleendurer/article/details/141862213?spm1001.2014.3001.5501中&#xff0c;我们使用gzip命令可以创建压缩文件。那么&#xff0c;我们可以使用zcat命令来查看压…