TableMind
Paper · arXiv 2509.06278v4 · WSDM 2026 投稿

TableMind:把「计划—行动—反思」训进一个 8B 表格智能体

单轮把整张表拍平成文本,既可能撑爆上下文,也算不准连续数值;固定的 plan-then-execute 工作流又不会读报错、改计划。 TableMind 让模型自己在多轮循环里写 Python、执行、看观察、再反思,并用一套排序感知的优势加权,把「自信」与「答对」对齐。

Chuang Jiang, Mingyue Cheng, Xiaoyu Tao, Qingyang Mao, Jie Ouyang, Qi Liu arXiv 2509.06278v4 ↗ 代码 ↗
TL;DR · 30 秒抓住核心

单轮范式把整张表压进一次前向。论文列了三条结构性硬伤:大表上下文溢出、对连续数值不敏感、缺少显式的工具调用与反思(§1)。

已有的两条路都不解决「边做边改」:training-free 工作流(PoTable、Chain-of-Table)把计划与执行拆成固定流程,缺少动态纠错,还要多次调用外部模型;tuning-based 表格模型(TableLlama、TableGPT2、Table-R1)会模仿或做 RL,但没有把自主多轮工具调用训进轻量模型(§2、§3.2)。

TableMind 的办法是两段训练:先用教师模型的多轮正确轨迹做 SFT 热启动,再用多视角奖励加 RAPO 做 RFT。推理时模型自己 plan → 写代码 → 执行 → 看观察 → reflect,最多 3 轮(§4.5 定义循环;上限 3 见 §5.1.3)。

论文报告的结果是五个基准都取得该列最高分;但增益并不均匀——TabFact 的相对增益最高,FinQA 的绝对分仍只有 42.02,单表与短循环是它明确的边界。

76.82EM
WikiTQ
次优 Table-R1 74.86
相对 +2.61%
99.27EM
TabMWP
次优 DeepSeek-R1 98.03
相对 +1.26%
91.85Acc
TabFact
次优 PoTable 88.93
相对 +3.28%
01

单轮读完整张表,三件事同时做不好

论文把失败模式归到同一个范式:把表格拍平成文本,一次前向直接给答案。

表格推理同时要求两类能力:理解表头、单元格与查询之间的语义关系,以及对数字做精确运算。单轮范式把整张表序列化进上下文,让模型在一次生成里完成理解、筛选、计算和作答——这三类错误会叠在同一次输出里。

硬伤一

上下文溢出

宽表或长表被拍平后超出上下文窗口,模型只能对不完整信息推理。论文的原话是「vulnerable to context overflow for large tables」(§1)。

硬伤二

数值不敏感

数字被当作普通 token,算术、比较、聚合都容易出错。论文称 LLM「inherently insensitive to continuous numerical values」(§1)。

硬伤三

没有工具与反思

缺少显式的代码生成、执行与回读错误的机制。模型只能靠内部推理「硬算」,算错了也没有外部信号把它拉回来(§1)。

论文的对照是人类分析师的做法:先分析查询并拆成子任务,定位相关行列,执行显式数值操作,检查中间结果,最后给出经过验证的答案(§1,Figure 1 左)。关键差别不是「想得更久」,而是有外部动作,并对动作结果反复校验。

于是任务被形式化成一个结构化决策过程:给定表 T 和查询 Q,学习一个策略 π,生成中间步骤序列 {sk},每个步骤可以包含代码生成、执行和基于反馈的修正,最终由聚合或终止函数给出答案(§3.1)。这为后面的多轮循环定下了目标。

02

两条现成路:工作流太硬,微调模型只会模仿

一边把计划外包给固定流程,一边把行为压进静态轨迹;两者都没有回答「执行出错之后怎么办」。

Training-free

固定工作流

Tab-CoT 让模型生成一张「推理表」;PoTable 先计划再执行;Chain-of-Table 每步更新表格,把表本身当作推理状态(§2.1)。

强项:把计算从语言模型里拿出来交给外部工具,减少算术错误。Table 2 里 PoTable 在 TabFact 拿到 88.93、Chain-of-Table 拿到 87.78,都高于纯文本推理的 Tab-CoT 79.05(§5.2)。

盲区:流程预定义,遇到代码报错或中间结果不符预期时不能动态改计划;多次 LLM 调用与外部执行环境带来开销,还要把表数据暴露给外部模型(§1)。

Tuning-based

微调表格模型

TableLlama 在 TableInstruct 上微调 Llama 2;TableGPT2 加语义表编码器;Table-R1 用可验证奖励做 RL(§5.1.2)。

强项:把表格能力写进参数,推理时不必走一条很长的外部工作流。

盲区:SFT 路线在模仿静态推理路径(§5.2 原话);RL 路线里 Table-R1 用的是 rule-based RL(§2.1),论文没有把它列为多轮工具调用方案。Table-R1 在 WikiTQ 74.86、FinQA 41.27,仍是强基线。

论文把研究空白定义得很窄:「the absence of systems that combine autonomous tool invocation and reflection with lightweight, accessible models」(§3.2)。也就是说,缺的不是工具,也不是 RL,而是把两者放进同一个轻量模型,让它自己决定何时调用、出错后怎么改。

这个定位也解释了 TableMind 的选择:把多轮交互行为训练进 Qwen3-8B 的参数里,而不是在推理时依赖一条外部工作流(§5.1.3)。

03

核心不是 workflow,而是把循环训进参数里

推理循环给出行为骨架;三项奖励和 RAPO 决定模型往哪个方向学。

推理时到底循环什么

§4.5 把一次迭代拆成四步:模型先结合查询与当前状态制定下一步策略;再生成可执行的 Python 代码;代码在解释器里安全执行并返回输出;输出作为 observation 回给模型,模型据此反思——进度到哪、结果对不对、是继续还是收尾。循环在模型判定已解决或达到最大轮数时停止,最后综合所有中间信息给出答案。

(T, Q) → Plan → Action:写 Python → Exec → Observation → Reflect ↺
§4.5 的 plan–action–reflection 循环;论文实现里最多 3 个 tool-calling turns(§5.1.3)

三项奖励:格式、答案、工具使用

格式奖励与答案奖励都是二值的:格式合法给 1,答案匹配给 1,否则为 0。问答任务用 exact match 判答案,事实核查任务用 label accuracy(§4.4.1)。

Rformat = 1 if 输出格式合法 else 0     Racc = 1 if 答案匹配 else 0
Eq. 1–2 · 两个二值奖励

第三项是工具奖励,带一个「隐式课程」:

Rtool = e−ρs · ( β·Isuccess − C·(Nturns)2 )
Eq. 3 · ρ = 0.05、β = 0.5、C = 0.01、G = 8(§5.1.3)

s 是全局训练步数。e−ρs 随训练衰减:早期放大工具探索的收益,后期把注意力转向效率;Nturns 的平方惩罚让冗长的工具链越来越贵。总奖励是三项之和(§4.4.1)。

RAPO:把「置信度—奖励」错位的样本拎出来加权重

RAPO 建在 GRPO 上,改了三处工程做法:去掉 KL 约束、用 token 级策略梯度损失、用 clip-higher 防熵塌(§4.4.2)。目标函数沿用 PPO 式截断,但优势项换成了下面这个:

JRAPO(θ) = Eq, {oi}∼πold[ (1 / Σi|oi|) · Σi Σt min( ri,t(θ)·A′i, clip(ri,t(θ), 1−εlow, 1+εhigh)·A′i ) ]
Eq. 4 · 与 GRPO 的差别集中在 A′i,以及去 KL、token 级损失、clip-higher 三项改动

组内标准化优势仍是 (Ri − mean)/std,但前面乘了一个 γi:

A′i = γi · ( Ri − mean({Rj}) ) / std({Rj})
Eq. 6

γ 的来源是配对比较。同一组里,奖励更高的轨迹记为 winner(ow),更低的记为 loser(ol);如果 winner 的序列对数概率反而更低——也就是模型更「自信」地选了错的那条——这对样本被判为错位,γ 抬到 1+α:

γw,l = 1 + α · I[ log P(ow) < log P(ol) ]
Eq. 7 · log P 是长度归一化后的序列对数概率;α 控制加权强度

把 Eq. 6 与 Eq. 7 合起来看:正优势乘上 γ 会更大,负优势乘上 γ 会更负。论文只给了配对级 γw,l;Eq. 6 里的 γi 如何由配对聚合,原文没有说明。下面的模拟用一条页面自定规则补齐,并在折叠块里逐条标出覆盖与未覆盖的分支。

RAPO · α = 0.50
错位配对只有 A(R=1, logP=−0.90)与 C(R=0, logP=−0.20):正确但低置信的 A 拿到了 1+α 的正优势,错误但高置信的 C 拿到了 1+α 的负优势。B、D 不在错位配对里,γ=1。

示例轨迹组为页面构造,不是论文数据;α 的 0.50 是页面默认值,论文正文没有给出 α 取值。论文的实际组大小 G=8(§5.1.3);这里缩到 4 条,只为让配对关系看得清。

手算对账:α=0.5 与 α=1.0两组参数 → γ 与 A′

四条示例轨迹:A(R=1, logP=−0.90)、B(R=1, logP=−0.10)、C(R=0, logP=−0.20)、D(R=0, logP=−1.00)。

均值与标准差:奖励 [1, 1, 0, 0],均值 = 0.5;本模拟取总体标准差(÷N,N=4),标准差 = 0.5。标准化优势 = (R − 0.5) / 0.5 = [+1, +1, −1, −1]。论文 Eq. 6 未说明 std 用 ÷N 还是 ÷(N−1)。

错位配对:逐对比较奖励高者(winner)与奖励低者(loser)。只有 A 与 C 满足 logP(A) = −0.90 < logP(C) = −0.20,因此 A、C 被标记为错位;B 与 C、A 与 D、B 与 D 都不满足指示函数。

α = 0.50:γA = γC = 1.50,γB = γD = 1.00;A′ = [1.50, 1.00, −1.50, −1.00]。

α = 1.00:γA = γC = 2.00,γB = γD = 1.00;A′ = [2.00, 1.00, −2.00, −1.00]。

覆盖:Eq. 6 的组内标准化优势(本页用总体 std)、Eq. 7 的配对指示函数与 γw,l。未覆盖:Eq. 4 的 token 级截断目标、去 KL、clip-higher、实际组采样(G=8)。γi 的聚合规则是页面自定的:轨迹只要参与任一错位配对,就取 γi = 1+α;原文没有给出这条规则。

04

SFT 只给 200 条轨迹,RFT 才是主战场

先把循环的语法教会,再让模型在奖励里自己试错;论文的多数提升发生在第二阶段推断(依据:Table 2 的最终分数相对 SFT-only 的差距主要来自 RFT,但原文没有做逐阶段归因消融)。

第一段:用教师模型的正确轨迹热启动

数据不是人工写的。论文让一个「expert model」生成计划与第一条可执行动作,在本地环境执行,把输出或报错作为 observation 回传,模型据此反思、改计划、再生成下一条动作;循环到任务完成。随后逐条比对最终答案与标准答案,只保留答对的轨迹(§4.3.1)。

这些轨迹用于 SFT:论文在 §5.1.3 写的是 200 条合成样本、学习率 1×10−6、训练 1 个 epoch,两阶段都在 4 卡 A800 上完成。SFT 的作用是让模型掌握 plan–action–reflect 的输出格式与代码语法,给 RFT 一个可用的初始策略(§4.3.2)。

论文自己给 SFT 泼了冷水:SFT 学到的推理「primarily reflects pattern memorization from the training data and exhibits limited generalization to out-of-distribution tasks」,因此把这段能力称为「non-generalizable memory」(§4.3.2)。数字上也看得到——Table 3 里最优的 SFT-only checkpoint 在 WikiTQ 只有 55.40,而 Table 2 的最终模型是 76.82,相差 21.42 个百分点(相对提升 38.7%,21.42/55.40)。这是跨 Table 3 与 Table 2 的比较,不是同一张表的消融行。

Table 3(转录)· SFT 阶段的数据量与 epoch 扫描;WikiTQ / TabMWP / TabFact 均为百分比
EpochSample SizeWikiTQTabMWPTabFact
110052.5262.4970.16
15053.6562.6371.32
20055.4068.4277.15
210050.1260.6270.12
15050.4261.4870.29
20051.6962.2873.62

同一数据量下,训 2 个 epoch 反而更差:200 条样本时 WikiTQ 从 55.40 掉到 51.69(低 3.71 个百分点),论文归因于小数据上的过拟合(§5.3.1)。

原文两处并列

训练集到底是 3,500 还是 200

Table 1 记训练集 TabFact 3,500 / TabMWP 3,500 / WTQ 1,000;§5.1.3 又写 SFT 阶段只训 200 synthetic samples,Table 3 也按 100 / 150 / 200 扫参。200 是子采样、还是每个任务的样本数,原文没有说明。两处按原位置并列,本页不替它选一个。

第二段:多视角奖励 + RAPO

RFT 用 Agent-R1 框架实现,生成侧用 vLLM。关键设置:组大小 G=8、batch size 128、学习率 1×10−6、策略温度 1、每条 prompt 最多 3 个 tool-calling turns、每轮最长 2048 tokens(§5.1.3)。

下面这个计算器只算 Eq. 3 的 Rtool 一项,不含 Rformat 与 Racc。拖动训练步 s 与工具轮数 Nturns,可以看衰减包络与二次惩罚怎么相互作用。

R_tool · s=0 · N=3 · 成功
e−ρs = 1.0000;β·Isuccess = 0.50;C·N² = 0.09。
R_tool = 0.4100。总奖励还要加上 Rformat 与 Racc。

常量逐字取自 §5.1.3:ρ=0.05、β=0.5、C=0.01。s 的 0–120 范围对应 Figure 5 讨论的 120 步训练窗口。

手算对账:s=0 与 s=40两组参数 → R_tool

公式:R_tool = e^(−0.05s) × (0.5·I_success − 0.01·N²)。

组 1:s=0、N=3、成功。e0 = 1.0000;0.5×1 = 0.50;0.01×9 = 0.09;R_tool = 1.0000 × (0.50 − 0.09) = 0.4100。

组 2:s=40、N=3、失败。e−2 = 0.1353;0.5×0 = 0;0.01×9 = 0.09;R_tool = 0.1353 × (0 − 0.09) = −0.0122。

覆盖:Eq. 3 的整式与 §5.1.3 的三个常量。未覆盖:Rformat、Racc、总奖励求和,以及 agent 实际执行环境。计算器按 4 位小数显示。

模型规模与指令微调

Figure 3(c) 比较 Instruct 模型与 base 模型:Instruct 起点更高,整个训练过程保持优势,收敛到更高的奖励平台。Figure 3(d) 把同一套流程套到 Qwen3 的 1.7B / 4B / 8B 三个规模,奖励随规模单调上升;主实验用 8B(§5.4)。

05

一张图看懂:推理循环与两段训练

左边是推理时的 plan–action–reflect;右边是从教师轨迹到 RAPO 的训练流水线。

推理时:plan → action → reflect(§4.5) 表格 T + 查询 Q 输入 Plan 定下一步策略 Action 生成 Python 代码 沙箱执行 code interpreter Observation 输出 / 报错 Reflect 检查中间结果,决定继续或收尾 Final answer 综合全部中间信息 未完成,继续循环 训练时:SFT 热启动 → RFT(§4.3–§4.4) 教师模型多轮轨迹 plan / action / reflect 只保留答对轨迹 逐条比对标准答案 SFT 热启动 200 条 · 1 epoch lr 1e-6 RFT:三项奖励 + RAPO G=8 · max 3 turns Agent-R1 + vLLM 推理部署
据 §4.3–§4.5 的文字与 Figure 2 的流程示意重绘,不是原文截图。
展开说明 ▸

覆盖的分支:推理侧的 plan → action → 执行 → observation → reflect 回环,以及「未完成则继续、完成则给答案」这两个出口;训练侧的教师轨迹采集、按最终答案过滤、SFT、RFT + RAPO、部署。

未覆盖的分支:提示模板的具体块结构(§4.2 只说明有 Instruction 与 Table Task 两块,未给全文);沙箱的具体实现与安全边界;教师模型的身份(§4.3.1 只写「expert model」,未标注名称与规模);RFT 内部的奖励计算与采样细节。

图中的「最多 3 轮」来自 §5.1.3 的 max tool-calling turns=3;「200 条 / 1 epoch」来自同节的 SFT 设置;「G=8」来自同节。它们不是从 Figure 2 的图像里读出来的。

06

五个基准都拿该列最高分,但增益来源并不一样

先看每一列的次优是谁,再看 Table 4 的轮次与温度;表间的三处口径差异单独并列。

Table 2(转录)· 主结果,均为百分比;相对提升按原表逐列对「次优」计算。粗体为 TableMind,次优可由各行对照读出。
模型In-domainOut-of-domain
WikiTQTabMWPTabFactHiTabFinQA
Open-source
Qwen2.5-72B-Instruct68.5697.4587.3468.0235.83
DeepSeek-R174.6398.0386.2570.3737.42
Training-free
Tab-CoT60.4392.2179.0560.6427.81
PoTable69.5695.7688.9361.9624.93
Chain-of-Table68.3196.1787.7864.7629.47
Tuning-based
TableLlama-7B53.3283.8882.5358.7315.73
TableGPT2-7B62.4680.4378.8765.4217.69
Table-R174.8696.0287.1769.2441.27
TableMind76.8299.2791.8571.9542.02
相对提升(%)+2.61+1.26+3.28+2.24+1.82

读这张表最容易犯的一个错,是以为「相对提升」都对同一个基线算。原表每一列的次优不同:

原表的相对提升列有两处是截断值:WikiTQ 记 2.61(按表中值复算 1.96/74.86 = 2.62)、HiTab 记 2.24(1.58/70.37 = 2.25)。差异来自舍入方式,本页按原表引用,不代改。

因此「五个基准都第一」是真的,但增益最大的那格是 TabFact,不是参数量最大的对比;FinQA 的绝对分 42.02 也说明专家级财务推理仍有一半以上问题没有 exact match 命中。交叉表和单列冠军要分开看。

轮次与温度:3 轮最好,5 轮反而掉

Table 4(转录)· 超参数敏感性;原表用 0–1 的小数表示准确率,这里照原样转录
HyperparameterValueWikiTQTabMWPTabFact
Max Turns10.74350.97230.8983
30.76820.99030.9233
50.75650.98560.9055
Temperature0.60.73350.96580.8843
0.80.75510.98840.9125
10.76820.99030.9233

论文的读法:最大轮次从 1 提到 3,三个数据集都变好——单轮不足以完成多步推理;从 3 提到 5 则轻微回落,论文把原因写成「excessive turns can increase the risk of error propagation or the generation of redundant, unhelpful steps」(§5.6)。温度在 0.6–1 的测试范围内与性能正相关,1 最好。

训练过程中,工具使用与代码通过率怎么变

Figure 5 左:前 40 步是探索期,工具调用比例来回波动;41–70 步快速上升;71–120 步收敛到接近 100%。Figure 5 右:代码执行通过率从 SFT 后的约 60% 稳步升到接近 90%(§5.5)。Figure 5 的曲线没有逐点数值,本节只转述正文给出的近似值,未转录图内数据。

原文内部三处口径并列不做消解,按位置原样列出
  • 训练集规模:Table 1 记 Training 为 TabFact 3,500 / TabMWP 3,500 / WTQ 1,000;§5.1.3 记 SFT 只用 200 synthetic samples;Table 3 又按 100 / 150 / 200 扫参。原文没有说明 200 与 3,500 的关系。
  • in-domain 名单:Table 1 标题把 TabFact、TabMWP、WTQ 列为 in-domain,HiTab、FinQA 列为 out-of-domain;§5.1.1 第一段却写「We employ three in-domain datasets for training and evaluation: WikiTQ, HiTab, and FinQA」,同节下一段又写 in-domain 是 WikiTQ、TabMWP、TabFact。两处并列。
  • 默认设置下的分数:Table 2 记 TabMWP 99.27、TabFact 91.85;Table 4 在 Max Turns=3、Temperature=1 的那一行记 0.9903、0.9233(即 99.03、92.33)。WikiTQ 两处都是 76.82。原文没有说明这两组数为何不同。

本页不替原文选一个口径;引用时按所在表格/章节原样标注。

消融:方向清楚,数值没有逐格给出

Figure 4 报告去掉 SFT、去掉 RFT、去掉 Rtool、去掉 RAPO 后的性能下降,但正文只给方向性描述,没有给出逐柱数值;因此本节未转录 Figure 4 的具体数值。可核对的原句包括:去掉 Rtool 后「the agent tended to generate less efficient and often erroneous reasoning chains」(§5.3.3);去掉 RAPO 后 WikiTQ 的 exact match 与 TabFact 的 accuracy 都下降(§5.3.4)。

07

单表、三步、200 条:它没解决的那些事

论文自己把多表推理、更丰富的工具生态和样本效率留给了未来;数据也显示绝对分仍有天花板。

边界一

只验证了单表;轮次扫到 5

结论明确写「While TableMind focuses on single-table scenarios, extending it to multi-table reasoning, richer tool ecosystems, and improving the sample efficiency of reinforcement fine-tuning remain important directions for future research」(§6)。

轮次上,Table 4 只比较了 1 / 3 / 5,3 最好、5 回落;超过 5 轮没有测。§5.6 把 5 轮的回落归因于错误传播与冗余步骤——这说明「多轮」不是越多越好,但没有给出长程任务的上限。

边界二

绝对分仍有明显天花板

FinQA 的 42.02 只比 Table-R1 的 41.27 高 0.75 个百分点;HiTab 的 71.95 也只比 DeepSeek-R1 的 70.37 高 1.58 个百分点。相对提升 1.82% 与 2.24% 看着不小,但绝对空间仍大——专家级财务推理与层级表统计问答远未解决(Table 2)。

论文没有报告推理延迟、token 成本或每次查询的 API 费用;训练侧只给了 4 卡 A800。对「AI 数据分析师」这类成本敏感场景,这部分是空白。

边界三

教师与关键超参不透明

§4.3.1 只写从「expert model」蒸馏轨迹,没有给教师模型的名称、规模或版本;§5.1.3 列了 ρ、C、β、G,却没有给 RAPO 的 α 取值,正文也没有 α 的敏感性分析。复现时要自己猜 α。

SFT 数据只保留最终答对的轨迹(§4.3.1)。但轨迹内部并不排除失败步骤:§4.3.1 明说把 expert model 的输出或报错作为 observation 回传,模型据此反思、改计划,所以报错与恢复可以出现在一条最终答对的轨迹里。被过滤掉的是「最终答错」的整条轨迹,不是中间步骤。失败后的恢复行为有多少来自 SFT、多少来自 RFT 的在线探索,原文没有拆分。

一句话总结:TableMind 解决的是「单表上的短循环,怎么让小模型自己写代码并纠错」,不是「任意表格上的通用数据分析」。多表推理、更丰富的工具生态、提升强化微调的样本效率,论文在结论里都列为 future work(§6);「长程规划」是本页对多轮循环的延伸说法,不是 §6 原文列出的条目。