Structgpt: A general framework for large language model to reason over structured data

StructGPT是首个能统一提升大型语言模型(LLMs)对多种结构化数据(知识图谱KG、表格Table、数据库DB)推理能力的框架,其核心是通过“专用接口+迭代阅读-推理流程”,让LLMs无需微调即可高效处理结构化数据相关任务,在零样本/少样本场景下显著优于直接使用LLMs的效果。

一、研究背景与待解问题

LLMs(如ChatGPT、GPT-4)虽在自然语言任务中表现出色,但在结构化数据推理上存在明显短板,核心问题可归纳为三点:

  1. 结构化数据理解难:LLMs预训练以文本为主,对KG的三元组、表格的行列结构、数据库的外键关联等特殊格式不熟悉,难以直接解析。
  2. 数据规模与输入限制冲突:结构化数据通常规模庞大,直接线性化为文本会超出LLMs的输入长度限制,无法完整输入。
  3. 现有方案通用性差:此前方法要么针对单一结构化数据(如仅处理表格),要么需要全数据微调(如UnifiedSKG),无法零样本适配多种数据类型和任务。

二、核心方法:StructGPT的两大支柱

StructGPT的核心思路是“解耦阅读与推理”——用专用接口处理结构化数据的“阅读”(提取证据),让LLMs专注于“推理”(基于证据生成答案),具体通过“接口设计”和“IRR框架”实现。

1. 面向三类结构化数据的专用接口

针对KG、表格、数据库的特性,设计了轻量化接口,功能是“精准提取相关证据”,避免LLMs处理数据格式细节。接口设计如下:

结构化数据类型 核心接口 接口功能
知识图谱(KG) Extract_Neighbor_Relations(e) 提取实体e的所有相邻关系(如“Jeff Probst”的“spouse”“is_a”)
Extract_Triples(e, {r}) 提取实体e与指定关系{r}对应的三元组(如“Jeff Probst + spouse”对应的<Jeff Probst, spouse, Lisa Ann Russell>)
表格(Table) Extract_Column_Name(T) 提取表格T的所有列名(如“Team”“Stadium”“Capacity”)
Extract_Columns(T, {c}) 提取表格T中指定列{c}的所有内容(如“Stadium”列的“Provident”“DW”)
Extract_SubTable(T, {c}, {j}) 提取表格T中“指定列{c}+指定行{j}”构成的子表(如“Stadium列+第2行”)
数据库(DB) Extract_Table&Column_Name(D) 提取数据库D的所有表名及各表的列名(如“visitor表:ID、Age;museum表:Mus_ID、Name”)
Extract_Tables_Information({T}) 提取指定表集{T}的列名、外键关联(如“visitor.ID 关联 visit.visitor_ID”)

2. 迭代阅读-推理(IRR)框架

通过“调用接口→线性化证据→LLM生成”的迭代流程,逐步逼近最终答案,解决“单次提取证据不足”的问题。具体步骤如下:

  1. 调用接口(阅读):根据当前任务进度,选择合适接口提取相关证据(如KGQA先调用Extract_Neighbor_Relations获取关系)。
  2. 线性化证据:将接口输出的结构化证据转为LLMs可理解的文本,例如:
    • KG三元组转为“(Jeff Probst, spouse, Lisa Ann Russell)”;
    • 表格行转为“row 2: (Team, Wigan Warriors), (Stadium, DW), (Capacity, 25138)”。
  3. LLM生成(推理):设计两类Prompt引导LLMs推理:
    • 证据筛选Prompt:“以下是10个关系,哪些与问题‘Jeff Probst的妻子是谁’最相关?”(输出“spouse”);
    • 答案生成Prompt:“基于三元组(Jeff Probst, spouse, Lisa Ann Russell),回答问题‘Jeff Probst的妻子是谁’”(输出“Lisa Ann Russell”)。

通过多轮迭代,LLMs可逐步获取更精准的证据(如先选关系、再提三元组),最终生成答案或可执行SQL。

3. 任务实例化:适配三大核心任务

StructGPT可直接适配KGQA、TableQA、Text-to-SQL三类任务,具体流程差异如下:

  • KGQA(如“Harper Lee毕业于哪所高中”)
    1. 调用Extract_Neighbor_Relations(Harper Lee)获取关系(如“education”“birthplace”);
    2. LLM筛选出相关关系“education”;
    3. 调用Extract_Triples(Harper Lee, {education})获取三元组;
    4. LLM从三元组中提取答案“Monroe County High School”。
  • TableQA(如“表格中最后一个体育馆是什么”)
    1. 调用Extract_Column_Name获取列名“Stadium”;
    2. 调用Extract_Columns提取“Stadium”列所有内容;
    3. LLM筛选出最后一行内容“DW”作为答案。
  • Text-to-SQL(如“查询30岁以下访客数量”)
    1. 调用Extract_Table&Column_Name获取表名“visitor”及列名“Age”;
    2. 调用Extract_Tables_Information确认“Age”列属性;
    3. LLM生成SQL“SELECT count(*) FROM visitor WHERE age < 30”。

三、实验设计与核心结果

论文在8个数据集(覆盖三类任务)上验证效果,对比“全数据微调基线”“直接使用LLMs”,核心结论是:StructGPT在零样本/少样本场景下显著提升LLMs性能,部分场景接近全数据微调效果。

1. 实验设置

  • 数据集
    • KGQA:WebQSP(2跳推理)、MetaQA(1/2/3跳推理);
    • TableQA:WikiSQL(过滤聚合)、WTQ(排序推理)、TabFact(事实验证);
    • Text-to-SQL:Spider(复杂查询)、Spider-SYN(同义词干扰)、Spider-Realistic(无列名提示)。
  • 基线
    • 全数据微调:如KGQA的GraftNet、TableQA的TAPEX、Text-to-SQL的RESDSQL-3B;
    • 直接LLMs:零样本使用Davinci-003、ChatGPT(6月/8月版本)。
  • 评估指标
    • KGQA:Hits@1(Top1答案准确率);
    • TableQA:准确率(TabFact)、指示准确率(WTQ/WikiSQL);
    • Text-to-SQL:执行准确率(预测SQL与标准答案执行结果一致率)。

2. 关键结果

  • 零样本场景提升显著
    • KGQA:ChatGPT在WebQSP的Hits@1从61.2%(直接用)提升至72.6%(+IRR),涨幅11.4%;
    • TableQA:ChatGPT在TabFact的准确率从82.9%提升至87.1%,涨幅4.2%;
    • Text-to-SQL:ChatGPT在Spider的执行准确率从70.1%提升至74.8%,涨幅4.7%。
  • 少样本场景进一步优化:加入32个示例后,Davinci-003在WikiSQL的指示准确率从49.1%(零样本+IRR)提升至64.6%(少样本+IRR)。
  • 鲁棒性验证:对8月版本ChatGPT(性能略有变化),+IRR后仍能提升:WebQSP从62.1%→75.3%,Spider从75.2%→77.1%。

3. 错误分析

通过100个错误案例抽样,发现主要错误类型及分布:

  • 选择错误(30%-74%):LLMs未筛选出正确证据(如KGQA中选错关系),WebQSP中占比最高(74%);
  • 推理错误(8%-30%):有证据但无法生成正确答案(如Text-to-SQL中生成错误SQL逻辑),Spider中占比21%;
  • 格式错误(2%-34%):生成答案格式不规范(如多输出无关内容),WikiSQL中占比34%。

四、局限性与未来方向

论文明确指出StructGPT的三大局限,也是未来优化方向:

  1. LLM适配性有限:仅验证了ChatGPT、Davinci-003(指令跟随能力强),需在指令理解弱的LLMs(如开源模型Llama 2)上测试;
  2. 任务覆盖范围窄:仅评估了“基于结构化数据的QA任务”,需扩展到“数据转文本”“形式语言转文本”等场景;
  3. 格式错误待解决:LLMs生成答案格式不统一,需设计更精准的Prompt和解析规则。

五、核心贡献总结

  1. 通用性突破:首个统一处理KG、表格、数据库三类结构化数据的LLM推理框架,无需针对单一数据类型设计方案;
  2. 方法创新:通过“专用接口解耦阅读”“迭代流程逼近答案”,解决LLMs对结构化数据的理解难、输入长限制问题;
  3. 效果验证:在8个数据集上证明零样本/少样本场景的有效性,为LLMs处理结构化数据提供新范式。