Redian新闻
>
「StructGPT」面向结构化数据的大模型推理框架

「StructGPT」面向结构化数据的大模型推理框架

公众号新闻


MLNLP社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。
社区的愿景是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。
转载自 | RUC AI Box
作者 | 蒋锦昊 

引言:大语言模型(LLMs)在各类文本任务上取得令人惊艳的效果。但在许多实际应用中,还存在大量结构化数据以存储规范化知识,例如知识图谱(KG),表格(Table),和数据库(Database)。本文想要探讨的问题是:大语言模型的能力边界能否扩宽到结构化数据,通过利用和理解结构化知识完成用户需求?我们的答案是:Yes!本文首次提出了一套统一通用的推理框架「StructGPT」以支持大语言模型在结构化数据上进行推理。并通过实验证明了其有效性和通用性。我们期待该方法为大语言模型落地各类实际应用提供灵感并促进大语言模型的进一步发展。

【StructGPT】已被 EMNLP-2023 Main Conference 正式接收,相关论文(最终版即将更新)和代码如下:

论文链接(提交版,正式版即将更新arxiv):https://arxiv.org/pdf/2305.09645.pdf

开源项目:https://github.com/RUCAIBox/StructGPT

简介

本文研究了如何将大语言模型(LLMs)的通用能力扩宽到结构化数据场景,如知识图谱,表格,数据库。受到工具增强 LLMs 研究的启发,我们提出了一种迭代式阅读-推理(IRR)框架以支持 LLMs 在结构化数据上进行推理。在这套框架中,我们通过接口调用从结构化数据源收集相关证据(即阅读),并让 LLMs 基于收集到的信息推理求解用户需求(即推理)。基于这样一个指导思想,我们给出了一种具体方案,即 调用-线性化-生成,来支持 LLMs 在外部接口的帮助下基于结构化数据推理。通过使用提供的接口并迭代该方案,我们的方法可以让大语言模型逐渐接近给定查询的目标答案。在三种类型的结构化数据上进行了大量实验(共8个数据集),证明了该方法在 zero-shot 和 few-shot 场景下,均可显著提升 Davinci-003 以及 ChatGPT 的性能,并实现与全量监督模型相当的性能。

方法介绍

我们注意到结构化数据格式规范,并支持通过形式化语言或查询(称为通用接口)轻松访问。我们方法的基本思想是将 LLMs 的阅读和推理两个过程分离开来:首先利用结构化数据的接口实现精确、高效的数据访问和过滤(获取相关证据),并进一步利用 LLMs 的推理能力来确定问题的下一步需求或最终结果(求解任务)。通过这种方式, LLMs 可以集中精力完成求解推理,而不必考虑读取结构化数据的特定方法。具体而言,在我们的实现方法中,我们将结构化数据视为黑盒系统,并提供外部接口以支持结构化数据访问。此外,我们提出了一种调用-线性化-生成求解过程,使得 LLMs 可以通过相应的接口从结构化数据中读取和过滤有用的证据。通过使用提供的接口并迭代上述过程,我们可以利用LLMs的超强推理能力逐渐接近目标答案。下面依次介绍接口设计和调用-线性化-生成求解过程。

结构化数据接口设计

由于标准化的数据格式,结构化数据通常配备了高效的数据管理方式,例如数据库所使用的 SQL。在我们的方法中,我们旨在为大型语言模型提供基于这些结构化数据的专门接口,帮助它们读取和利用这些结构化数据。接下来,我们介绍针对知识图谱、表格和数据库专门设计的接口。

知识图谱接口:

def Extract_Neighbor_Relations(e):
'''extracts all the neighboring relations of the entity e.'''

def Extract_Triples(e, {r}):
'''extracts all the triples with the relation in {r} and head entity e.'''

表格接口:

def Extract_Column_Name(T):
'''extracts all the column names of a table T.'''

def Extract_Columns(T, {c}):
'''extracts the contents of columns from a table T by indices {c}.'''

def Extract_SubTable(T, {c}, {j}):
'''extracts the sub-table specified by the column indices {c} and row indices {j} from a table T.'''

数据库接口

def Extract_Table_and_Column_Name(D):
'''extracts the names of all the tables and their contained columns from the database.'''

def Extract_Tables_Information({T}):
'''extracts the table names, column names, and foreign keys from a set of tables {T}.'''
请注意:该处的接口设计完全是可插拔的,用户可以根据自己的场景需求设计对应的结构化数据访问接口,供后续LLMs使用。

调用-线性化-生成

    基于上述接口,我们提出了一种通用的调用-线性化-生成求解过程,可支持 LLMs 在多个回合中迭代使用接口在结构化数据上进行推理。每次迭代,基于当前收集的数据,我们首先调用接口从结构化数据中提取相关证据,然后将其线性化为文本提示,最后将提示输入LLMs理解生成(选择有用数据用于下一步迭代,或者预测最终答案结束推理)。具体过程如下图所示,关于这一通用流程在每类结构数据上的详细使用方式可参考论文中的具体描述。

样例展示

    为了更直观的展示我们的方法,我们举例展示了三种结构化数据上的执行过程,具体的形式化过程期望感兴趣的读者参考我们的论文。

KGQA

TableQA

 Text-to-SQL

实验

为了验证我们方法的通用性和有效性,我们在三类结构化数据八个具体数据集上进行了实验。每个数据集上,我们的基线模型有两大类:

  • 全量监督模型

  • 直接使用大语言模型

其中,+ IRR (ours) 表示基于我们提出的方法在零样本场景下使用大语言模型;+ IRR (ours, few-shot) 表示基于我们提出的方法在少样本场景下使用大语言模型。

评测指标:

  • KGQA:Hits@1,判断预测最高得分答案是否正确

  • TableQA:Accuracy (TabFact),Denotation Accuracy (WTQ和WikiSQL),判断预测是否正确

  • Text-to-SQL: Execution Accuracy,判断预测SQL和真实SQL的执行结果是否一致

KGQA

TableQA

Text-to-SQL

通过上述实验可以看到,我们提出的方法在各种任务,各种场景下均可显著提升大语言模型在结构化数据上的表现,甚至能超过部分全量监督训练模型。

错误分析

为了进一步分析我们方法的不足之处,我们首先选择了三个具有不同结构化数据类型的数据集(即 WebQSP、WTQ 和 Spider),并从每个数据集中随机抽取了100个错误案例。然后,我们手动检查这些故障并将它们分类为五个类别,即:

  • 选择错误:LLM 没有选取相关信息。

  • 推理错误:在提取相关信息的基础上,LLM 未能生成正确的答案或 SQL。

  • 生成格式错误:生成答案的格式异常,无法识别。

  • 幻觉错误:LLM 生成的结果与提取的信息不一致。

  • 其他错误:其他无法分类的错误。

Error Analysis

首先,对于三个数据集而言,出现错误的分布是不同的。在 WikiSQL 中,生成格式、选择和推理错误的频率相对均衡。而在 WebQSP 中,选择错误是主要的错误类型(74%),因为 KGQA 任务要求从数千个关系中选择最相关的一个,这并不容易。在 Spider 中,推理错误更为常见(62%),因为 Text-to-SQL 任务要求 LLMs 生成可执行的 SQL 以获取答案,这对 LLMs 也是困难的。根据错误分布,为每个数据集的主要错误情况改进我们方法的设计很有希望提高性能。具体而言,我们可以设计更多的高质量提示,引导 LLMs 在 KGQA 和 Text-to-SQL 任务的选择和推理过程中进行谨慎决策。此外,我们还考虑增加更多的接口和迭代轮次,将困难的迭代分解成多个简单迭代,以简化复杂的推理任务以获得更好的性能。我们将在未来的工作中尝试上述解决方案。

总结

在本研究中,我们提出了一个通用框架,用于改善 LLMs 在结构化数据上的推理能力,即 StructGPT。在我们的方法中,我们首先构建了结构化数据的访问接口,以支持准确高效的数据访问,然后提出了一个调用-线性化-生成的求解过程,利用 LLMs 基于接口进行阅读和推理。通过按顺序使用接口迭代上述过程,LLMs 可以逐步捕获更有用和详细的证据,并最终生成答案。我们期待该方法能为大语言模型与结构化数据的结合提供灵感,也欢迎在实际落地遇到问题时与我们联系([email protected])。


技术交流群邀请函

△长按添加小助手

扫描二维码添加小助手微信

请备注:姓名-学校/公司-研究方向
(如:小张-哈工大-对话系统)
即可申请加入自然语言处理/Pytorch等技术交流群

关于我们

MLNLP 社区是由国内外机器学习与自然语言处理学者联合构建的民间学术社区,目前已经发展为国内外知名的机器学习与自然语言处理社区,旨在促进机器学习,自然语言处理学术界、产业界和广大爱好者之间的进步。
社区可以为相关从业者的深造、就业及研究等方面提供开放交流平台。欢迎大家关注和加入我们。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
中科加禾崔慧敏:AI芯片+编译器才是王道!性能提升2~3倍,将推出大模型推理引擎丨GACS 2023面试技巧|如何成功驾驭咨询面试中的Case Interview?教你用结构化的办法来准备!Elektrobit,「领跑」面向高性能车载计算开源操作系统|金球奖入围公示大模型推理乘上RISC-V快车?国内AI芯片创企推大模型系列一体机实际工作中结构化思维在表达中的应用微软教小模型推理进阶版:Orca 2性能媲美10倍参数模型,已开源主流推理框架哪家强?看看它们在Llama 2上的性能比较今晚直播 | StructGPT:面向结构化数据的大模型推理框架医药代表的真实故事 3 祝你平安英伟达推出大模型加速包;Meta将训练对标GPT-4的大模型;ChatGPT等成费水大户丨AIGC大事日报施瓦辛格炸裂回歸 his comfort zone of acting400万token,大模型推理飙升22倍!清华校友爆火一作,GitHub狂揽1.8k星用上这个工具包,大模型推理性能加速达40倍科研上新 | 大模型推进科研边界;大模型的道德价值对齐;优化动态稀疏深度学习模型;十亿规模向量搜索的高效更新哈工大发布大模型思维链推理综述:200+文献全面解析大语言模型思维链推理最新进展學會“望風水”讓自己身心愉快微软开源的大模型太强了,数学推理超ChatGPT,论文、模型权重全部公开NeurIPS 2023 | InstructBLIP:指令微调训练通用视觉-语言模型「专题速递」数据驱动赋能、赛事直播优化、RTC技术、低延时传输引擎、多媒体处理框架、GPU加速计算机视觉GPT时刻!UC伯克利三巨头祭出首个纯CV大模型,推理惊现AGI火花​EMNLP 2023 | Explore-Instruct: 通过LLM的主动探索提高特定领域指令多样性OpenAI大佬甩出「喵喵GPT」调戏黑客!分享ChatGPT成功的秘密:极限压榨GPU资源「GPT-4只是在压缩数据」,马毅团队造出白盒Transformer,可解释的大模型要来了吗?大模型写代码能力突飞猛进,北大团队提出结构化思维链SCoTOpenAI回应ChatGPT服务故障;新研究以99%准确率识别ChatGPT生成化学论文;三星发布自研大模型丨AIGC日报芯至科技尹文:拆解架构创新四大路径,打造10倍性价比大模型推理芯片丨GACS 2023红色日记 8,21-31UC伯克利团队开源MemGPT大模型上下文内存管理方案;AgentLM、多模态Fuyu-8B、数学LLEMMA等专用大模型开源科学治理人工智能:构建最佳治理框架听蝉处理了800余万组数据的临床CRO,是怎样生产数据、利用数据的?ACL 2023 | 使用语言模型解决数学推理问题的协同推理框架国内首创!高交会上,国产14nm Chiplet大模型推理芯片问世AI界迎来「赶超ChatGPT」大战,看这24个免费国产大模型谁能笑到最后!MLPerf放榜,中国AI芯片公司再获世界第一!大模型推理三项冠军,性能超越H100
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。