GPT+结构化数据:可分析数据、作图和建模
本文约6000字,建议阅读10+分钟
Table-GPT,是一个专为表分析而设计的大型语言模型,统一了表、自然语言和命令。1 摘要
GPT-3和ChatGPT等语言模型在遵循不同的人类指令和执行各种任务方面表现出卓越的能力,然而在表格数据(结构化数据)理解任务中表现不佳。这可能是因为这些模型主要是在一维自然语言文本上预训练的,而表格作为二维对象,需要更复杂的信息处理能力。(个人认为也可能因为神经网络不太擅长异构数据,也不太擅长数值表示)
Table-GPT是一个突破大语言模型技术限制的数据分析工具,采用大模型“表格调优”范式,是使用真实表格合成任务数据来训练/微调GPT3.5和ChatGPT等语言模型,增强了它们理解和执行表格任务的能力。
它以表格、自然语言和命令为基础,将几个核心组件集成到GPT模型中,包括全局表表示、命令链和领域感知微调。Table-GPT在表格理解任务上优于普通GPT-3.5和ChatGPT,并能够响应指令执行新的表格任务。Table-GPT框架具有语言驱动的EDA、统一的跨模式框架和泛化与隐私保护等优势。它简化了用户处理表格数据的方式,提高了数据操作执行的可靠性,并可以更好地处理数据可变性和泛化到不同领域。此外,Table-GPT还支持私有部署,提供强大的数据隐私保护。
2 介绍
2.1 调优
NLP中的指令调优 是一种训练语言模型以遵循不同人类指令的技术,通过构建“(指令,完成)”的训练数据,由人类标注者手动注释,从而继续训练模型以遵循高级人类指令,产生了著名的模型如ChatGPT/InstructGPT和它们的开源版本如Stanford-Alpaca和LLaMa-chat。早期的GPT-3模型不能可靠地遵循这种指令,后来才在ChatGPT等模型中实现。
表调优 是一种训练语言模型理解表格的新方法。我们通过使用指令、表和完成形式的多训练数据,来提高模型遵循人类指令的能力。我们使用大量真实表合成数据,过程如图1所示。
图1 指令调优与表调优。(左)指令调优是在NLP社区开发的一种技术,它继续训练语言模型(如GPT)以获得指令遵循能力(如ChatGPT)。(右)表调优是我们提出的一种类似的方法,用于训练语言模型以更好地理解表并执行表任务
2.2 语言模型
目前流行的语言模型有两种:编码器式语言模型和解码器式语言模型,都源于原始的Transformer架构。
编码器式语言模型 包括BERT和RoBERTa,它们仅使用Transformer的编码器,并在大量文本上预训练,以使用嵌入向量有效地表示文本的语义。为了将这种模型用于下游任务,通常采用特定任务的微调。
解码器式语言模型 包括GPT和LLaMa,它们本质上是生成性的,并且被证明在泛化到新的下游任务方面表现出色,而无需进行特定任务的微调。特别是经过指令调优后,解码器式模型可以仅使用自然语言指令和可选的几个示例,轻松适应新任务,这种方法可以适应新的数据集和新的任务,而无需为每个特定任务对标记数据进行微调,从而使解码器式模型更加通用和多才多艺。
2.3 表格任务的语言模型
数据库文献中的开创性工作使用语言模型执行与表相关的任务。编码器式语言模型(如TaBERT、Ditto和Doduo)基于编码器式BERT类模型训练,并在各种表格任务中表现良好。但要泛化到新数据集或任务,需用标记数据进行微调。相反,解码器式语言模型(如GPT-3和ChatGPT)只需指令即可执行任务,通过“提示工程”技术使普通语言模型在表任务上表现良好。
我们提出“表调优”,探索正交方向,继续训练基础语言模型一次,提高模型在各种表任务上的表现。图2显示了表调优过程,类似于指令调优但更注重提高模型理解表和执行表任务的能力。我们的表调优模型仍然是通用的,能够遵循人类指令执行表任务(无需任务特定的微调),就像底层GPT-3和ChatGPT模型一样。在Table-GPT中,目标是同时具备泛化能力和良好的表任务性能。
图2 指令调优与表调优。指令调优可以提高模型的“泛化能力”,遵循不同的人类指令执行新的和未知的任务(x轴),而我们提出的表调优在精神上是类似的,但旨在提高模型理解表和执行表任务的能力(y轴)
3 语言模型可以“读懂”表格吗?
语言模型在阅读和理解二维表格时面临挑战,包括一维文本与二维表格的差异,以及顺序敏感的文本与排列不变的表格。
为了测试语言模型按列方向读取表格的能力,我们设计了简单的测试任务(T-1),包括“缺失值识别”,从真实表中删除随机单元格,生成两个变体。如图3所示:
图3:任务(T-1)缺失单元格识别的两个变体。(左)T-1(a):从真实表格中随机移除一个单元格,但保留其列分隔符。“| |”的存在表示缺失的单元格,应该很容易识别。(右)T-1(b):随机移除一个单元格及其列分隔符,这是一个常见但具有挑战性的CSV解析问题
我们使用1000个真实表进行测试,结果如表1所示:列方向读取表格具有挑战性,准确率分别为0.38和0.26;使用列分隔符和几次演示后,模型仅能正确完成一半测试(0.51);行方向上,模型识别缺失单元格的能力更好,但在“无 col-separator”设置中仍不够好。
表1 GPT-3.5(使用Text-Davinci-002)在任务(T-1)缺失值标识上的准确性数据
语言模型在列方向读取表格的能力不足,在行方向识别缺失单元格的能力较弱。这表明语言模型可能不适合表格任务。因此,需要开发表调优方法。
4 TABLE-GPT的表调优
4.1 总体方法:综合然后增强
表调优受到NLP文献的成功启发,使用“(指令,完成)”对训练语言模型,造就了ChatGPT和LLama-chat等流行模型。我们提出的表调优则是通过使用“(指令,表,完成)”三元组来提高模型执行表任务的能力。定义表格任务的实例为三元组,包括指令、表和完成。然而,挑战在于保证“(指令,完成)”对的质量,需要大量人工标注以确保训练数据的质量和多样性。我们希望复制表域中指令调优的成功,但理想情况下不需要昂贵的人工标注。现有的基准数据存在任务和数据多样性不足的问题,我们试图仅使用现有的基准数据进行表调优,导致过拟合。
4.2 综合不同的表任务
我们提出了两种方法:(1) 合成新的表任务以实现任务多样性,(2) 合成现有表任务的新表测试用例以实现数据多样性。我们抓取了290万个高质量的网络表格和18.8万个数据库表格,并根据从语料库中抽样的真实表格合成表格任务。
表2为18个与表格相关的任务的收集和总结,以便对 GPT 进行“表格调整”,使其能够更好地处理表格任务。这些任务涵盖了诸如表格理解、表格问答、表格匹配、表格清理、表格转换等广泛领域。表格2中的每个任务都有一个任务类别和表格数据,其中任务类别涵盖了各种任务类型,表格数据则包括从各种真实表格中合成的任务,以确保训练数据的多样性并避免过拟合。
表2 18个与表相关的任务的收集和总结
4.3 增强综合表任务
我们通过不同级别进行增强,包括指令级、表级、补全级和语言模型辅助完成增强,旨在创建更多的数据多样性并避免过拟合。
在指令级,我们使用GPT对规范指令进行增强,生成多种变体。在表级,我们可以执行诸如列置换、行置换、列采样、行采样等操作以增加表的多样性。在补全级,我们通过添加推理步骤到原始补全来增强。最后,我们使用语言模型辅助完成增强,通过逐步推理培养模型在复杂任务上的表现。真实辅助完成增强使用了地面实况逐步推理,例如任务(T-9)错误检测。常规语言模型在此任务中会产生大量误报,例如将没有拼写错误的单元格自信地预测为拼写错误。使用表任务合成步骤中的真实事实生成增强完成,嵌入推理步骤,可以减少误报并提高结果质量。此外,还执行了其他类型的增强,包括模板级增强和任务级增强,以提高训练数据的多样性和平板调整。
4.4 Table-GPT 作为“表基础模型”
我们使用综合然后增强方法生成表任务,并训练语言模型以最大化完成损失。这个过程称为表调优。表调优后的模型TableTune(M) 若在以下场景的表现优于M,那么它可以作为更好的“表基础模型”:(1) 开箱即用的零样本;(2)开箱即用的few-shot;(3)针对特定任务的提示调优;(4)特定任务微调。
我们期望通过实验评估来验证表调优的有效性。
5 实验
5.1 实验设置
我们测试了GPT-3.5、Table-GPT-3.5、ChatGPT和Table-ChatGPT四种模型。其中,Table-GPT-3.5和Table-ChatGPT是通过对GPT-3.5和ChatGPT进行表调优后获得的模型,如表3。我们使用了14种表任务作为训练数据,并确保测试任务与训练数据分开。对于不可见任务,我们评估了模型是否可以遵循人类指令并执行新的不可见任务。对于常见任务,我们希望表调整模型能够展示表相关的概念。我们使用了现有的基准数据,对于无法自动合成真实标签的任务,我们使用了手动标记的基准数据。测试数据及其统计的详细信息可见表4。
表3 在 GPT-3.5 和 ChatGPT 上针对各个数据集进行表调优的详细结果。零样本不适用于需要示例的行到行示例转换(标记为“N.A.”)。对于所有“看不见”的任务,这些任务在表调整期间会被保留且看不见。对于所有“Seen”任务,任务在表调整期间可见,但测试数据集被保留且不可见。
表4 测试数据和评估指标的详细信息
5.2 质量比较:未见+已见任务
图4和图5分别比较了GPT-3.5与Table-GPT-3.5、ChatGPT与Table-ChatGPT的性能。表调整模型在各种表任务上显示出强大的性能优势,显示出我们提出的表调优方法在不同风格的底层语言模型之上的通用性。在总共104次测试中,表调整模型在98次测试中表现出色。
图4 普通 GPT-3.5 和 Table-GPT-3.5 之间的整体质量改进
图5 普通 ChatGPT 和 Table-ChatGPT 之间的整体质量改进
5.3 特定任务优化的好处
表调整的GPT模型在零样本和少样本设置中表现良好,可以作为表基础模型,使用特定任务的优化可以提高下游任务的质量。单任务提示工程中,Table-GPT-3.5相较于GPT-3.5表现更优,使用200个标记示例进行提示工程评估,Table-GPT-3.5始终选择更佳的提示。图 6 显示了分别为 Table-GPT-3.5 和 GPT-3.5 选择的前 5 个提示。单任务微调中,Table-GPT-3.5和GPT-3.5都受益于特定任务的微调,但Table-GPT-3.5所需标记数据更少,如图7。
图6 使用prompt工程进行质量比较。在Efthymiou数据集上,显示了5个最佳prompt模板的结果
图7 单任务微调
5.4 敏感度分析
我们进行了敏感性分析,研究了训练任务数量、训练数据量、基础模型大小和提示模板对表调整模型性能的影响,如图8-11。
图8 不同训练任务数量
图9 不同训练数据量
图10 不同模型大小
图11 不同提示模板
可以发现,使用更多的训练任务可以提高所有任务的性能,随着训练数据量的增加,可见和不可见任务的性能都会提高,但趋于稳定。对于基础模型大小,我们发现tabletuned模型在较大模型上表现更好,这可能是因为它们具有更好的泛化能力。最后,我们发现不同的提示模板会对模型的性能产生影响,但table-GPT-3.5在所有提示模板上始终优于GPT-3.5 10个百分点以上,这显示了Table-GPT-3.5的稳健性。在表格格式方面,Markdown格式的平均性能优于其他格式,如表5。
表5 Table-GPT-3.5在不同的表格格式下的性能
5.5 消融研究
我们进行消融分析以了解不同增强策略的益处,结果总结如表。没有任务级增强,即没有合成任务,性能显著下降。没有表级增强,即没有列排列,性能降低。没有指令级增强,即没有提示变化,性能略有下降。没有完成级增强,即没有思维链,性能会降低。
表6 表调优的消融研究
6 Table-GPT
6.1 模型设计
Table-GPT基于7B参数的Phoenix模型,对2T文本数据和0.3M表格进行微调,支持用户查询和表分析报告。
Table-GPT的整体架构如图12所示。Table-GPT由表编码器和LLM组成,结合输入表和文本查询进行推理,生成命令序列和文本回复。纠错后执行命令,提供操作表和回复。流程简化提高查询效率,增强用户体验,简化数据分析。
图12 TableGPT框架结构
6.2 表的全局表示
大型语言模型(LLM)已实现与视觉、音频等多种模式的交互,但与表格数据接口的探索仍受限。如何让LLM理解和解释表格数据至关重要。现有方法仅提取部分信息,忽略了数据中固有的全球信息和行业背景。对于表格,需要将整个表格嵌入到一个向量中,而不是生成样本嵌入。这具有挑战性,因为表数据是高度抽象的结构化数据类型,具有双排列不变性结构。此外,不同领域的表的大小和格式各不相同,使得使用统一的神经网络架构从不同的表中提取特征变得具有挑战性。
我们提出了一种级联表编码器,用于从表格中提取全局表示,以便LLM实现全面的表格理解。该编码器联合从元数据和整个数字条目中提取知识,将表数据中的信息分为两个主要部分。第一部分学习表的元数据表示,第二部分学习表格的数字信息表示。我们使用修改后的集合变压器作为表编码器的骨干,并通过注意力机制对其进行了增强。该编码器在一万个表数据集上进行预训练,学习到的表表示不仅可以用于表理解,还可以增强下游分类器的预测性能。
6.3 指挥链
我们提出了一种通过预先打包的函数命令来增强大型语言模型(LLM)在表格操作中的多跳推理能力的方法。与Text2SQL生成的SQL语句相比,这些命令序列更容易被后端解析系统检查和定位错误。我们引入了指挥链(CoC)的概念,通过提供与中间步骤相关的分步指令来增强思维链方法。指挥链的目的是在操作表数据时增强LLM的推理能力和鲁棒性,涉及将用户输入转换为一系列中间命令操作,使LLM能够更准确、更高效地操纵表。为了提高性能和稳定性,我们构建了一个包含大量命令链指令的数据集,同时微调LLM以适应命令,并采用上下文学习为命令链序列中的多个步骤提供提示。指挥链方法有三个主要优点:增强LLM对表操作的多跳推理能力,增强处理复杂多表交互的能力,以及拒绝过于模糊的指令并要求用户提供更具体的意图。这种方法使LLM能够更好地处理边缘情况和意外情况,使其成为现实世界应用中有前景的方法。
6.4 域数据处理管道
我们开发了一种高效的领域数据处理管道,以解决大型语言模型在处理特定行业细微语言风格和逻辑方面的不足。该管道利用主动学习,从领域数据中精心挑选微调示例,以更少的示例数量实现卓越的微调结果,从而加速模型学习过程。此外,我们增强了LLM的文件检索功能,通过矢量数据库和LangChain等技术,从大量专有文件中检索相关信息,进一步丰富LLM学习的背景。该管道有助于LLM快速且经济高效地适应各种特定行业的数据需求,解决行业特定语言风格和逻辑的挑战,并整合自然语言、表和命令领域。
7 评价
7.1 Table-GPT支持的命令
Table-GPT支持丰富的命令,实现与表格的自然语言交互,可查询、过滤、排序和汇总数据,增强数据可视化和报告生成,促进自动化决策过程,使用户能进行预测、预测趋势和估计结果。当用户意图模糊时,Table-GPT会要求提供更详细意图,而非僵化的命令翻译器。
7.2 与之前使用命令的LLM的比较
一些现有方案将表格和语言模型结合,如ChatExcel、SheetCopilot和Data-Copilot,这些通常依赖提示调用预定义外部命令的LLM推理API,如OpenAI API2。Table-GPT则采用独特方法,专门针对与表相关的任务微调LLM,从而突显LLM架构的能力。详见表7对TableGPT与先前使用命令的LLM的比较。
表7 与之前使用命令的LLM进行表格数据的比较
7.3 案例研究
图13-19为Table-GPT示例:
图13
图14
图15
图16
图17
图18
图19
8 结论
Table-GPT,是一个专为表分析而设计的大型语言模型,统一了表、自然语言和命令。它具有回答问题、操作数据、可视化信息、生成分析报告和进行预测等多种功能。从技术上讲,Table-GPT解决了开发自然语言驱动的表数据处理框架的几个主要挑战,包括全面的表理解、指令链生成和特定领域的微调。我们相信Table-GPT有潜力重塑表格数据处理的格局,加速表格数据建模和探索性数据分析(EDA)的效率,并为金融、交通、科学研究等各个领域赋能。
参考资料:
1. 《Table-GPT: Table-tuned GPT for Diverse Table Tasks》
2. 《TableGPT: Towards Unifying Tables, Nature Language and Commands into One GPT》
编辑:黄继彦