https://www.toutiao.com/article/7254937694181573161/
自从有了 ChatGPT 之后,我们终于可以用自然语言来写代码、做表格。只不过美中不足的是,ChatGPT 目前只能做比较简单的表格,甚至不能像 Excel 那样在表格中使用复杂的函数。而 3 个月前,北大团队推出了 ChatExcel,让用户可以通过自然语言对话来操作 Excel 的各种功能,让人眼前一亮。但 ChatExcel 也同样有自己的问题,它是一个小模型,而非大模型。作为为了解决特定的问题而生的工具,其能力有限。用其创始人的话说就是个“垂直领域一个小而美的工具”。
那么能够娴熟应用各种表格来处理数据的大模型会是什么样的呢?浙大团队近日推出的 TableGPT,让我们可以一探究竟。虽然叫 TableGPT,其功能却不仅限于做表格,而是分析、处理数据。这是一个比 ChatGPT 更善于处理表格,同时功能又不像 ChatExcel 那么局限的大模型。用其设计者的原话说,这是一款能完成对表格/数据库的各种分析、作图 、处理、建模等功能的刚性大模型。该研究日前以“TableGPT: Towards Unifying Tables, Nature Language and Commands into One GPT”为题发布在 GitHub 上。
TableGPT 的总体架构
TableGPT 的基座来自于类似 GPT 那样的预训练大模型。在这里,作者们选择使用开源的、70 亿参数的 Phoenix 模型来进行微调,因为这个模型能够很好地处理中英文。不过团队在设计 TableGPT 的架构时也充分保留了灵活性和普适性,因此也可以使用 Phoenix 之外的其它大模型。
真正让 TableGPT 与众不同的是其调试过程:调适中使用了规模庞大的语料库,包含多达 2T token 的文本数据和 03M 的表格数据。该语料库提供了多样化的学习资源,其中甚至包括用户查询-命令序列对,以及用于表格分析报告的特定领域的公开数据。
TableGPT 的架构如下图所示,由一个表格编码器和一个大模型组成。当用户给出一个表格,并提出查询时,表格编码器会从用户所给的表格里提取矢量表征,并把它们和用户的查询文本一起一起喂给大模型来做推理。大模型辨认出查询意图之后生成一段包含着一条命令序列和文本回复的输出信息。命令序列需要先在命令系统的校正器中校正错误,而后才喂给执行器来执行。最终提供给用户的输出信息包含处理之后的表格和文本答复。可以看出这个工作流程是简单而高效的,也能提供满意的用户体验。
表格的矢量化表征
目前的大模型逐渐走向多模态,除了文字之外,还可以处理图像、音频等。但就如之前所说,现有的大模型处理表格数据的能力十分有限。要让大模型正确地理解和解释表格是一个难题。之前有人做过各种尝试,比如把表格数据的每一行转换成句子状的文本描述等等。但这些方法都只是从表格里提取了部分信息喂给大模型,而忽略了整体,也没有考虑到数据中隐含的行业相关背景。
那么能不能直接从表格中提取矢量表征呢?这里最大的挑战是,不同于图像、音/视频,表格数据是一种非常抽象的结构化数据。同时表格还具有双置换不变结构,即重新排列行或列不会影响表格中包含的信息,这与图像和音频形成了鲜明的对比,后者在相邻位置或序列中具有归纳偏差。更不用说不同的表格的大小、尺寸、列数都不一样,要用统一的神经网络架构来提取特征是很困难的。
普通的大模型在理解表格的时候往往太拘泥于每一格中的具体信息,而忽略了全局。于是研究团队的解决方法是让他们的模型像人类数据分析师那样去理解表格。具体来说,就是把表格中的信息分成两部分,第一部分是表格的元数据表征,即表格的呈现形式、表格内容的行业背景,每一列的栏目名称等。这样可以大模型对表格结构有一个整体的把握。而第二部分是学习表格中的数字信息表征,比如每一列中数值的分布和变化趋势。这里他们将表格的行和列视为一组元素,并学习整个集合的整体表征。而表格编码器的主干来自修饰过的集合转换器(modified set transformer)。编码器通过注意力机制加强之后可以理解不同行和列之间的相互关系。
指令链和行业数据处理管线
大模型具有思维链(chain-of-thought),可以把复杂的推理过程分解成一系列中间步骤。而在这里,研究团队提出指令链(chain-of-command),为思维链的这一系列中间步骤提供逐步的指示。例如当用户提出:“列出 5 部利润最高的电影。” 大模型会先检查列表里面有没有利润这一栏,如果没有这一栏,那么它会生成一套指示来指导自己通过票房和成本数据计算出利润,再根据指示按照利润高低排列电影,找出利润最高的那 5 部。指令链增强了大模型的多跳推理(multi-hop reasoning)能力,使其能够把用户的诉求拆解成一系列指令,这样更易于进行复杂的跨表格操作。此外,当用户的请求太过模糊、宽泛的时候,比如用户说“给我一些数据”,那么指令链还会提醒用户把请求变得具体、明确。
为了让模型更好地服务于具体的行业,研究团队还设计了行业数据处理管线(Domain Data Processing Pipeline),使用主动学习的方法,从行业数据中选择最有价值的调适样本,让大模型仅通过少量样本的学习就能达到更好的调适效果。
应用案例
TableGPT 能够与用户以自然语言交互,还可以做数据可视化和生成报告等等。与现有的会使用工具的大模型相比,功能更加齐全:
而从实际应用案例来看,能够实现提取信息、计算、可视化、推理等功能:
谁是目标用户?
现在的企业,不论是科技行业还是传统行业,都很注重数据。企业需要数字化、数据化转型已经成为共识。科技行业拥有充足的技术储备和数据人才,大部分早已能够娴熟地使用数据来辅助决策和优化日常运营。但对于许多来自传统行业的企业,特别是中小企业,数据化转型却举步维艰。他们往往是已经积累了大量的数据,但对于如何使用这些数据,如何通过数据分析来创造价值毫无头绪。
另一方面,在同一企业内部,数据分析部门与其它部门之间沟通不畅,数据分析的术语对于其它部门人员来说晦涩难懂,而数据分析师由于不在业务的一线,也很难理解业务的真实需求。
如果有一个工具可以降低数据分析的门槛,让所有人都可以用自然语言与之交互,省去了学习复杂的工具和写代码的麻烦,那么将大有可为。我们希望 TableGPT 会是这样的工具。
而对于企业来说,数据安全十分重要。之前三星引入 ChatGPT 导致 fab 机密数据外泄,突显了使用外部大模型的隐患。这一点 TableGPT 的研发团队显然是也考虑到了。作为一个自包含的系统,不依赖外部的 API,可以本地化部署,TableGPT 一定程度上减轻了数据和隐私安全的担忧。