TableLlama:7B 开源模型在表格理解上能否媲美 GPT-4?
上周的 MAC-SQL 日志让我开始思考基于表格的智能体(agent)中最薄弱的一环:在模型生成查询语句之前,其理解表格结构和语义的能力。TableLlama (NAACL 2024) 正面解决了这一层面的问题——它并非通过改进查询界面,而是通过构建一个通用的开源模型,使其无需针对特定任务进行工程设计就能处理广泛的表格任务。我正在阅读这篇论文,因为它最直接地回答了一个问题:7B 开源模型是否真的能在 Beancount 智能体可能面临的各种表格理解问题上媲美 GPT-4。
论文介绍
TableLlama 由俄亥俄州立大学的 Tianshu Zhang、Xiang Yue、Yifei Li 和 Huan Sun 共同研发,他们在名为 TableInstruct 的新指令微调数据集(包含跨越 11 个表格任务的 260 万个示例)上对 Llama 2 (7B) 进行了微调。为了处理表格带来的长上下文,他们采用了 LongLoRA——一种参数高效的扩展方法,在不进行全量重训练的情况下将上下文窗口扩展到了 8K token。评估涵盖了 8 个域内任务(列类型标注、关系提取、实体链接、模式增强、行填充、分层表格 QA、高亮单元格 QA 和事实验证)以及该模型从未训练过的 6 个域外数据集。
核心论点:单个经过微调的开源模型在大多数域内基准测试中可以达到或超过特定任务的最佳水平(SOTA),并在域外任务上比 Llama 2 基础模型提高 5–44 个绝对百分点——包括在多个任务上缩小了与 GPT-4 的差距。
核心观点
- 在域内任务中,TableLlama 在结构识别任务上果断击败了 GPT-4:列类型标注 (F1 94.39 vs 31.75)、关系提取 (F1 91.95 vs 52.95)、FeTaQA BLEU (39.05 vs 21.70) 以及 HiTab 执行准确率 (64.71 vs 48.40)。
- 在域外数据集中,情况发生了反转。GPT-4 在 WikiTQ 准确率 (68.40 vs 35.01) 和 HybridQA (58.60 vs 39.38) 上保持领先——这两个任务都需要对表格进行组合式多跳推理,而非简单的结构模式匹配。
- WikiSQL 暴露出查询生成方面的巨大差距:TableLlama 得分为 50.48%,而 SOTA 为 92.70%。对于任何构建自然语言到查询(NL-to-query)界面的人来说,这 42 个百分点的差距是最具实际参考价值的数据。
- LongLoRA 在这里起到了支撑作用。金融表格通常很长。如果没有扩展的上下文窗口,这类任务对于 7B 模型来说是遥不可及的。
- 作者承认,由于计算资源限制,他们仅测试了 7B 尺寸,未对 13B 和 70B 变体进行评估。
哪些结论站得住脚,哪些站不住
基准测试的设置在某种程度上混淆了比较标准,值得推敲。域内比较是将经过微调的 TableLlama 与零样本(zero-shot)GPT-4 进行对比。在基于 TURL 的任务(如列类型标注)中,GPT-4 仅 31.75 的 F1 分数并不意味着 GPT-4 根本无法理解列类型——它意味着在没有特定格式微调的情况下,零样本提示词在期望非常特定输出格式的数据集上表现不佳。真正公平的比较是在域外任务上,即两个模型都没有见过训练数据,在那里的差距令人警醒:WikiTQ 准确率为 35.01 对 68.40。
WikiTQ 是合适的压力测试,因为它需要回答诸如“在 1990 年之前创下前纪录的赛事中,哪个国家获得的奖牌最多?”之类的问题——这是跨表格单元格的真正组合推理。TableLlama 在 WikiTQ 上落后 GPT-4 33 分,这最清晰地表明:对结构化任务的指令微调并不会自动转化为关系推理能力。
模式增强和实体链接方面的优势是真实且有意义的——这些任务确实需要以零样本 GPT-4 提示词难以处理的方式来理解表格结构。但这些任务也更接近检索而非推理,这限制了这些结果的可推广性。
另一个担忧是:包含 260 万个示例的 TableInstruct 数据集是一项重大的工程努力,但它将截然不同的任务类型压缩到了单一的指令格式中。目前还没有消融实验显示哪些任务类型会互相干扰,或者哪些任务对域外增益起到了支撑作用。俄亥俄州立大学团队后续的基准测试(TableBench, AAAI 2025)发现,在 TableInstruct 上微调的模型虽然达到了与 GPT-3.5 相当的性能,但仍落后于 GPT-4——这大大削弱了原始论文的乐观情绪。
为什么这对金融 AI 很重要
Beancount 账本是结构化表格:每条分录都有日期、账户、金额和可选的元数据。本文中的表格任务直接映射到了 Beancount 智能体需要执行的操作。列类型标注映射到理解哪些账户属于哪种账户类型(资产、负债、费用)。实体链接映射到在不一致的交易描述中识别收款人名称。而 WikiSQL 的差距则精确对应了 beanquery 自然语言界面的问题。
这里的结果为我提供了一个校准后的视角:一个 7B 的微调模型可以足够可靠地处理账本结构识别,从而发挥作用;但目前还不能指望它在没有更高能力模型参与的情况下,将自由格式的问题准确翻译成 beanquery 表达式。50% 的 WikiSQL 准确率(相比 SOTA 的 93%)意味着一个纯开源模型的 beanquery 界面在面对陌生的提问方式时,大约有一半的时间会生成错误的查询。对于一个具有写入权限的智能体来说,这个失败率太高了。对于一个有人工审核的只读查询界面,它或许可以作为初稿接受。
LongLoRA 的贡献具有直接的应用价值:多年的 Beancount 账目很容易超过 8K token,而这里的方法展示了如何在不消耗过高算力的情况下针对长表格进行微调。
延伸阅读
- TableBench: A Comprehensive and Complex Benchmark for Table Question Answering (arXiv:2408.09174, AAAI 2025) —— 俄亥俄州立大学团队自己的后续研究,在更复 杂的表格 QA 上对 30 多个 LLM 进行了基准测试,发现即使经过 TableInstruct 微调,开源模型与 GPT-4 的差距依然存在。
- TAPEX: Table Pre-training via Learning a Neural SQL Executor (arXiv:2107.07653, ICLR 2022) —— 通过合成 SQL 执行进行预训练,与指令微调形成对比;是表格理解领域预训练 vs 微调辩论的重要基准。
- Rethinking Table Instruction Tuning (arXiv:2501.14693) —— 最近的研究质疑标准的 TableInstruct 配方是否真的具有泛化能力,以及哪些数据组合选择最为关键。
