当前位置: 首页 > news >正文

【ReAcTable】面向表格问答任务的ReAct增强框架

ReAcTable: Enhancing ReAct for TableQuestion Answering

论文:ReAcTable: Enhancing ReAct for Table Question Answering、 项目代码、Proceedings of the VLDB Endowment,CCF-A

时间:2023.11

ReAcTable框架是一种基于ReAct范式的表格问答解决方案,通过融合大语言模型的逐步推理能力、SQL/Python代码执行器的外部工具支持,以及多数投票机制,在无需模型微调的前提下,实现了TQA任务性能的显著提升。

一、研究背景与问题

1. TQA任务定义与价值

  • 任务本质:表格问答(TQA)是自然语言处理(NLP)与数据分析的交叉任务,需基于表格数据(如维基表格、Excel表、关系表)回答自然语言问题,核心要求包括逻辑推理、数据语义理解和基础分析能力。
  • 核心价值:让无查询语言(如SQL)和数据分析基础的用户通过自然语言与数据交互,提升数据可访问性,支持多领域决策(如商业分析、科研数据解读)。

2. 现有研究缺口

现有TQA解决方案分为两类,但存在明显不足:

解决方案类别代表方法核心局限
训练/微调专用模型Tapas、Tapex、Tacube、OmniTab需大量标注数据,训练成本高,泛化性受限
基于预训练LLMBinder、Dater(生成代码操作表格)未充分利用LLM的增量推理+外部工具协作能力(如ReAct范式),难以应对TQA的独特挑战

TQA任务的三大独特挑战:

  1. 复杂数据语义解读:数据信息常嵌入字符串(如“骑行者(国家缩写)”),需提取隐藏语义;
  2. 数据噪声与不一致:表格可能存在缺失值、格式混乱,导致代码执行错误;
  3. 复杂数据转换需求:多步推理需多次数据格式调整(如筛选→提取→统计),单一工具难以完成。

二、核心解决方案:ReAcTable框架

ReAcTable是ReAct范式在TQA任务的定制化增强版本,核心逻辑是**“LLM逐步推理+外部代码执行器生成中间表+多数投票优化结果”**,通过迭代将原始表格逐步转化为可直接回答问题的格式。

1. 框架核心组件

组件功能描述
输入模块原始表格((T_0))+ 自然语言问题(N)
LLM决策中心每轮迭代执行3种操作之一:生成SQL代码、生成Python代码、直接输出答案
外部代码执行器- SQL executor:处理结构化数据操作(筛选、分组、统计,如“筛选Top-10骑行者”)
- Python executor:处理复杂数据转换(字符串提取、格式清洗,如“从骑行者列提取国家缩写”)
中间表生成器执行代码后生成中间表格((T_1, T_2, …, T_n)),逐步优化数据结构,为后续推理提供清晰上下文
多数投票机制解决LLM输出不确定性,提供3种投票策略(简单多数投票、树探索投票、基于执行结果的投票)

2. 核心工作流程

在这里插入图片描述

示例问题:“Which country had the most cyclists finish in the top-10?”(哪个国家有最多骑行者进入前十名?),原始表格含“Cyclist(骑行者+国家缩写)”和“Rank(排名)”两列,流程分4轮迭代:

  1. 迭代1(SQL执行):生成SELECT Cyclist from T0 WHERE Rank<=10;,筛选Top-10骑行者,得到中间表(T_1)(仅含Cyclist列);
  2. 迭代2(Python执行):生成正则表达式函数get_country(s),提取(T_1)中Cyclist列的国家缩写,新增Country列,得到中间表(T_2)(Cyclist+Country);
  3. 迭代3(SQL执行):生成SELECT Country, COUNT(*) FROM T2 GROUP BY Country ORDER BY COUNT(*) DESC LIMIT 1;,统计各国Top-10人数,得到中间表(T_3)(Country+COUNT(*));
  4. 迭代4(直接回答):基于(T_3)结果,输出自然语言答案“Answer: Italy”。

3. 关键优化设计

  • 工具分工适配:SQL负责“结构化查询”,Python负责“非结构化转换”,贴合数据科学家操作习惯,避免单一工具局限性;
  • 异常处理机制
    - SQL异常:若查询列不存在,反向重试历史中间表,同时归一化列名(移除空格、特殊字符);
    - Python“模块缺失”:实时安装缺失库并重新执行;
    - 其他异常:强制LLM输出答案(在prompt末尾追加“Answer:”);
  • 提示工程(Prompting)
    - 初始prompt含原始表格、问题、CoT(逐步推理)指令和少量示例(few-shot);
    - 每轮迭代更新prompt:追加前一轮的代码+中间表,确保LLM掌握完整推理上下文。

4.投票机制

原文另有伪代码解释,有需要请查看原文

在这里插入图片描述

投票机制名称原理优势不足适用场景
简单多数投票(Simple majority voting)对LLM设置较高温度,多次执行ReAcTable迭代求解过程,获取多个预测答案,将出现次数最多的答案作为最终预测结果 。过程中以链条表示问题解决步骤,节点代表LLM预测的程序或答案。能探索多种可能的解决方案路径,充分利用LLM在高温设置下产生的多样化输出 。LLM在高温设置下不确定性增加,可能导致预测质量下降,进而影响最终性能 。任务相对简单,对计算资源要求不高,希望快速获取多个不同可能性答案并从中选择的场景 。
树探索投票(Tree - exploration voting)允许LLM在得出最终答案前探索多个中间步骤,每次预测时让LLM进行多次采样,在推理树中产生多个分支。遍历推理树所有分支,直至每个分支得出答案,选择出现次数最多的答案作为最终预测 。能更全面、深入地探索问题的解决方案,考虑多种推理路径和中间步骤,提高预测的准确性和可靠性 。计算复杂度相对较高,需要更多的计算资源和时间来遍历推理树的各个分支 。问题较为复杂,需要考虑多种可能推理路径和中间步骤,对结果准确性要求较高的场景 。
基于执行的投票(Execution - based voting)在推理的每个步骤,让LLM进行多次预测。若预测是程序,则执行该程序并获取结果表,若产生等效结果表,通过选择最大对数概率合并日志概率,选择得分最高的代码或答案作为推理链中的下一步 。优先选择执行时更可能产生语义正确结果的代码段,强调生成代码的实用性和正确性,有效利用代码执行的中间结果进行决策 。需要对代码执行结果进行评估和比较,增加了一定的计算和判断成本 。对生成代码的正确性和实用性要求较高,数据可能存在噪声或不一致性,需要通过执行结果来验证和筛选的场景 。

三、实验评估

1. 实验设置

维度具体配置
基准数据集3个主流TQA数据集:
- WikiTQ(14k训练/4.3k测试,答案含单值、列表、分析结果)
- TabFact(1.9k测试,二进制答案“是/否”,事实核查任务)
- FeTaQA(7.3k训练/2k测试,自由格式自然语言答案)
基线方法- 需训练:Tapex、TaCube、OmniTab、T5系列(Small/Base/Large)
- 无需训练:Binder、Dater
LLM与参数默认LLM为Code-Davinci-002(Codex),多数投票时温度设为0.6(探索多样性),无投票时设为0(确定性输出)
评估指标- WikiTQ/TabFact:准确率(Accuracy)
- FeTaQA:ROUGE-1/ROUGE-2/ROUGE-L(自然语言答案相似度)

2. 核心实验结果

(1)性能对比:超越主流基线
数据集关键结果
WikiTQReAcTable(s-vote,简单多数投票)准确率68.0%,超越最佳基线(Lever,62.9%)5.1%,且无需微调;无投票时仍达65.8%,优于无训练基线Dater(65.9%)
TabFactReAcTable(s-vote)准确率86.1%,超越所有无训练基线(Dater,85.6%),但低于需训练的最佳基线PASTA(90.8%)4.7%
FeTaQAReAcTable的ROUGE-1达0.71,高于最佳基线Dater(0.66),在自由格式答案生成上表现最优
(2)消融实验:关键组件的贡献
  • 中间表的价值:移除中间表的对比方法Codex-CoT(仅单次代码生成)在WikiTQ准确率仅49.4%,而ReAcTable达65.8%,提升16.4%,证明“逐步优化数据上下文”是性能核心;
  • Python执行器的必要性:仅保留SQL执行器时,WikiTQ准确率从65.8%降至62.5%,TabFact从83.1%降至75.4%,说明Python对复杂数据转换的不可替代性;
  • 迭代次数的影响:70%以上问题可在2轮迭代内解决,2轮迭代时WikiTQ准确率达65.1%(1轮仅49.2%),但限制迭代次数(如强制≤2轮)会降低复杂问题准确率,需保留迭代灵活性。
(3)LLM适配性:兼容多种模型

ReAcTable可与不同GPT系列模型协作,但性能受模型类型影响:

LLM模型WikiTQ最高准确率TabFact最高准确率特点
Code-Davinci-002(默认)68.0%(s-vote)86.1%(s-vote)代码生成专用模型,适配性最佳
Text-Davinci-00365.0%(e-vote)83.6%(e-vote)文本生成模型,需依赖“基于执行结果的投票”筛选正确代码
GPT-3.5-Turbo52.5%(t-vote)74.4%(t-vote)聊天模型,答案格式非标准化(如结构化答案生成自然句),准确率最低

四、研究结论与未来方向

1. 核心结论

  1. 性能优势:ReAcTable在无模型微调的前提下,超越多数TQA基线,尤其在WikiTQ(68.0%)和FeTaQA上表现突出,验证了“LLM+外部工具+中间表”范式的有效性;
  2. 关键组件:中间表的逐步生成是性能提升核心,Python执行器对复杂数据转换不可或缺,多数投票可进一步优化LLM输出不确定性;
  3. 灵活性:兼容多种LLM和代码执行器,无需训练即可部署,降低TQA任务的技术门槛。

2. 局限性与未来方向

  • 基础理论依赖:ReAct范式(LLM与外部工具交互)、CoT提示(逐步推理)、多数投票机制

  • 局限性:依赖人工设计的few-shot示例,未支持多表格问答,最佳投票策略需人工匹配LLM类型;

  • 未来方向
    1. 自动prompt优化与few-shot示例选择;
    2. 扩展多表格TQA场景;
    3. 设计自适应投票策略(自动匹配LLM能力)。

http://www.dtcms.com/a/519767.html

相关文章:

  • Docker 部署 Elasticsearch 全流程手册
  • React 集成Redux数据状态管理 数据共享 全局共享
  • Docker与Nginx:现代Web部署的完美二重奏
  • 【JUnit实战3_08】第四章:从 JUnit 4 迁移到 JUnit 5
  • React 03
  • 前端基础之《React(2)—webpack简介-使用Babel》
  • 广州网站建设公司嘉御建设手机银行网站
  • 【Linux系统编程】软件包管理器
  • 怎么快速定位bug?如何编写测试用例?
  • NetIP,一款开源的快速网络信息查看工具
  • 有限元方法核心原理与学习路径:从一维基础到多维拓展(七步流程)
  • TCP(滑动窗口/拥塞窗口补充)
  • nginx前端部署与Vite环境变量配置指南
  • webrtc getStats 内部调用流程分析
  • 通过 Stdio(标准输入/输出)传输机制,实现 CrewAI 与本地 MCP 服务器的连接
  • 英文版网站建设方案手机app免费制作
  • 通过API网关部署FC函数
  • 单例模式精写
  • SQL sever数据库--第三次作业
  • XLM-R模型:大规模跨语言表示的突破与实践
  • GitLab 多安全漏洞可致攻击者触发拒绝服务状态
  • JAVA基础篇:分支结构——让程序学会“做选择”
  • SpringDataRedis 快速入门总结
  • 安徽省建设厅网站资料下载建了qq群 如何快速推广
  • 重庆做木门网站公司龙城区建设局网站
  • 手机网站支持微信支付做网站需要什么资料
  • P4766 [CERC2014] Outer space invaders 题解
  • CS5005:400mA,低噪声,电荷泵DC/DC转换电路
  • Spring 容器刷新流程(refresh)源码全解
  • 类型转换汇总 之C#