LLM⊗KG范式下的知识图谱问答实现框架思想阅读

分享一张有趣的图,意思是在分类场景下,使用大模型和fasttext的效果,评论也很逗。

c4f1f6d7348a13ff53cecb303ef1f35a.jpeg

这其实背后的逻辑是,在类别众多的分类场景下,尤其是在标注数据量不缺的情况下,大模型的收益是否能够比有监督模型的收益更多。这个例子虽然没有说标注数据量,但估计量不会少。

我们继续回到知识图谱与大模型的话题:

读到一个大模型和知识图谱融合的有趣工作《 Think-on-Graph: Deep and Responsible Reasoning of Large Language Model on Knowledge Graph》(https://arxiv.org/pdf/2307.07697.pdf、https://github.com/IDEA-FinAI/ToG.),该工作提出了一种新的LLM-KG集成范式"LLM⊗KG",将LLM视为一个代理,通过交互式地探索KG上的相关实体和关系,并根据检索到的知识执行推理,取得了一定的效果。

这个工作有很多有趣的细节,供大家一起参考。

一、从三种LLM推理范式说起

大模型在各种自然语言处理任务中表现出了卓越的性能,但在面对复杂的知识推理任务时仍有很大的局限性。

57ba6df2bebb5c11f58f7f4eb58b719e.png

上图1中介绍了三种LLM推理范式的代表性工作流程,其中:

1、纯LLM推理范式

纯LLM,例如采用思维链提示,对于需要专业化知识的问题,LLMs通常无法提供超出预训练阶段(图1a中的过时知识)的准确答案,或者对于需要长逻辑链和多跳知识推理的问题,LLMs也无法提供准确答案。

fc6b355e6126021e6c31a8c0bc00521b.png

2、LLM⊕KG范式

LLM⊕KG范式,通常通过LLM生成的SPARQL查询进行KBQA,考虑到纯LLM推理范式的不足,一个自然而有前途的解决方案就是纳入外部知识,如知识图谱(KGs),以帮助提高LLM的推理能力。

0905733331aa4a5750afc3c9ffb13804.png

早期的研究在预训练或微调过程中将KG中的结构化知识嵌入LLM的底层神经网络。然而,嵌入LLM的KG牺牲了其自身在知识推理中的可解释性和知识更新的效率。

另外一条路,知识图谱提供了结构化、明确和可编辑的知识表征,为缓解LLM的局限性提供了一种补充策略。研究人员已经探索了如何使用KG作为外部知识源来减轻LLM的幻觉。

例如,将LLM与KG结合起来,将KG中的相关结构化知识转化为LLM的文本提示,例如:

Li等人(https://doi.org/10.18653/v1/2023.acl-long.385)使用LLM生成SPARQL查询的主干,并使用KGs填充完整的信息。

a7b72973bb7c75c931b1a51e4f0a1742.png

Baek等人(https://arxiv.org/abs/2306.04136)采样了包含出现问题的实体的三元组,用于LLM推理。

1e7253db123c0191293f1ce7c4dc4704.png

Li等人(https://arxiv.org/abs/2305.13269)使用LLM将问题分解为若干子问题,然后使用微调Llama生成相应的可执行SPARQL查询,以便从KGs中检索知识。

82c7b9c2267dd9148046ba5d8d2cec83.png

Wang等人(https://arxiv.org/abs/2308.13259)提出了一种检索器-阅读器-验证器QA系统,用于访问外部知识并与LLM交互。

d9e4404463730d7d171e92faf9575a33.png

这些方法都遵循一个模式:从大模型获取信息,相应地增强提示,然后将增强后的提示输入LLM。

不过,在LLM⊕KG范式中,LLM扮演的角色是翻译,将输入的问题转换成机器可理解的命令,供KG搜索和推理,但它并不直接参与图推理过程,并且,LLM⊕KG模式成功在很大程度上取决于KG的完整性和高质量。

例如,在图1b中,尽管LLM成功地识别出了回答问题所需的关系类型,但由于缺少关系"多数党",导致无法检索到正确答案。

3、LLM⊗KG

"LLM⊗KG"范式指的是KG和LLM协同工作,在图推理的每个步骤中互为补充,如图1c所示:

ac4a9a20d9143ae655e7e8b863cad8a1.png

图1c举例说明了LLM⊗KG的优势。在这个例子中,图1b中导致失败的"多数党"关系缺失,可以通过具有动态推理能力的LLM代理(发现的参考三元组(澳大利亚、总理、安东尼-阿尔巴内斯)以及来自LLM固有知识的安东尼-阿尔巴内斯的政党成员身份得到补充。

二、Think-on-Graph(ToG)的实现流程

Think-on-Graph(ToG),意思是LLM沿着图"思考",也就是LLM沿着推理路径"在"知识图谱"上逐步"思考"。

ToG使用KG/LLM推理中的beamsearch搜索算法,允许LLM动态探索KG中的若干推理路径并做出相应决策,简单来说,就是借鉴了Transformer的beam-search算法思路。

该算法为一个可循环的迭代过程,每次循环需先后完成搜索剪枝、推理决策两个任务,搜索剪枝用于找出最有希望成为正确答案的推理路径,推理决策任务则通过LLM来判断已有的候选推理路径是否足以回答问题,如果判断结果为否,则继续迭代到下个循环。

在ToG之外,ToG-R根据实体搜索得到的以EDcand结尾的所有候选推理路径执行推理步骤。与ToG相比,ToG-R省去了使用LLM修剪实体的过程,从而降低了总体成本和推理时间,并且强调关系的字面信息,当中间实体的字面信息缺失或不为LLM所熟悉时,可以降低误导推理的风险。

381c3f9a9c832fdcec039ac580d63193.png

1、具体实现

图2显示了一个标准的ToG工作流程例子,ToG通过要求LLM在知识图谱上执行束搜索来实现"LLM⊗KG"范式。

ToG会不断更新和维护前N个推理路径P={p1,p2,...其中N表示波束搜索的宽度。ToG的整个推理过程包括以下3个阶段:初始化、探索和推理。

6b6e90be641e586935f9ffe3ac1a0317.png

高亮的实体是每次迭代(深度)开始搜索的中心实体,黑体字实体是剪枝后为下一次迭代选择的中心实体。

在每个剪枝步骤中,边的深浅代表LLM给出的排序分数,虚线表示因评估分数低而被剪枝的关系。

因此,这个时候的核心,就在于怎么选择中心实体,以及怎么进行边的排序从而实现剪枝。

1、初始化实体提取

给定问题后,ToG利用底层LLM定位知识图谱上推理路径的初始实体。这一阶段可视为前N个推理路径P的初始化。

ToG首先会提示LLM自动提取问题中的主题实体,并得到问题的前N个主题实体E0={e01,e02,...,e0N},主题实体的数量可能少于N。,这一步可以通过prompt完成。

在测试数据集上,事先给定了主题实体。

9f2d5fd2c7c56e6f25e0e835a0c5a170.png

例如,在SimpleQA中,topic_entity为预先设置好的主题实体,作为初始化:

{
        "topic_entity": {
            "m.02qkg8m": "Madam Satan"
        },
        "answer": "United States of America",
        "question": "where is the madam satan located",
        "relation": "country"
    },
    {
        "topic_entity": {
            "m.04knq3": "California Department of Parks and Recreation"
        },
        "answer": "A\u00f1o Nuevo State Park",
        "question": "which parks are a part of the california department of parks and recreation",
        "relation": "member_parks"
    }
}

2、子图查询与路径召回

子图查询中,包括关系查询和实体查询,先根据实体,查找其存在的关系,然后再根据关系,查询对应的实体。

f141c3437197b839f062028ba8771dc0.png

2、关系的剪枝

对于给定的实体,通过查询,可以得到多个路径,需要对路径进行排序,在这里,利用大模型进行评估,通过prompt完成,如:请检索对问题有贡献的N个关系(用分号隔开),并按0到1的等级对其贡献进行评分(N个关系的分数总和为 1)。4642910fce5c0216ece9be55e0321dc6.png如对应的prompt实现代码如下:

extract_relation_prompt = """Please retrieve %s relations (separated by semicolon) that contribute to the question and rate their contribution on a scale from 0 to 1 (the sum of the scores of %s relations is 1).
Q: Name the president of the country whose main spoken language was Brahui in 1980?
Topic Entity: Brahui Language
Relations: language.human_language.main_country; language.human_language.language_family; language.human_language.iso_639_3_code; base.rosetta.languoid.parent; language.human_language.writing_system; base.rosetta.languoid.languoid_class; language.human_language.countries_spoken_in; kg.object_profile.prominent_type; base.rosetta.languoid.document; base.ontologies.ontology_instance.equivalent_instances; base.rosetta.languoid.local_name; language.human_language.region
A: 1. {language.human_language.main_country (Score: 0.4))}: This relation is highly relevant as it directly relates to the country whose president is being asked for, and the main country where Brahui language is spoken in 1980.
2. {language.human_language.countries_spoken_in (Score: 0.3)}: This relation is also relevant as it provides information on the countries where Brahui language is spoken, which could help narrow down the search for the president.
3. {base.rosetta.languoid.parent (Score: 0.2)}: This relation is less relevant but still provides some context on the language family to which Brahui belongs, which could be useful in understanding the linguistic and cultural background of the country in question.
Q: """

3、实体的剪枝

让大模型用0至1分给各实体对问题的贡献打分(所有实体得分之和为1),用来做评分对比,也是通过prompt实现:

c626154720c76b80705a03460da2c417.png

如对应的prompt实现代码如下:

score_entity_candidates_prompt = """Please score the entities' contribution to the question on a scale from 0 to 1 (the sum of the scores of all entities is 1).
Q: The movie featured Miley Cyrus and was produced by Tobin Armbrust?
Relation: film.producer.film
Entites: The Resident; So Undercover; Let Me In; Begin Again; The Quiet Ones; A Walk Among the Tombstones
Score: 0.0, 1.0, 0.0, 0.0, 0.0, 0.0
The movie that matches the given criteria is "So Undercover" with Miley Cyrus and produced by Tobin Armbrust. Therefore, the score for "So Undercover" would be 1, and the scores for all other entities would be 0.
Q: {}
Relation: {}
Entites: """

4、判断是否满足条件

通过探索过程获得当前推理路径P后,会提示LLM评估当前推理路径是否足以生成答案。如果评估结果是肯定的,就提示LLM以查询为输入,使用推理路径生成答案。

反之,如果评估结果为负,则重复探索和推理步骤,直到评估结果为正或达到最大搜索深度Dmax。

如果算法尚未结束,则表明即使达到最大搜索深度Dmax,ToG仍无法探索出解决问题的推理路径。在这种情况下,ToG将完全根据LLM中的固有知识生成答案。

这一目标,同样也是依赖prompt完成处理,思想在于:给定一个问题和相关的检索知识图谱三元组(实体、关系、实体),要求大模型回答用这些三元组和大模型知识是否足以回答这个问题(是或否)。

21449e81ab99c739eb1a67f427aeace3.png 20e46e0a17843ce8f3603026a9f7894b.png

5、生成结果

生成结果阶段,直接将检索到的文本加入到prompt中,送入大模型,完成答案生成。

9b86a9e3777996e53f3584d717b689f1.png

 

三、具体的效果与有趣的结论

1、一个具体的例子

如下表所示,可以看看一个具体的例子,给定问题,得到推理路径,生成答案。

57576fc8ca1d43af3f71287751229f50.png

2、对应效果

具体地指标可以从下表中看到,有一定的收益。

04cbb7aef58fa0165016f30635304c56.png

3、一些有趣的发展

其一,为了探索搜索深度Dmax和波束宽度N对ToG性能的影响,该工作在深度为1到4和宽度为1到4的设置下进行了实验。

如图3所示,ToG的性能随着搜索深度和宽度的增加而提高。这也意味着ToG的性能有可能随着探索深度和广度的增加而提高。【这个跟问题是否多跳有很大关系】

36348fa8913e24a48dfe9eef70d609fd.png

另一方面,当深度超过3时,性能增长就会减弱。这主要是因为只有一小部分问题的推理深度(基于SPARQL中的关系数,大于3。

其二,为了探究不同的提示设计对ToG的影响,需要确定哪种类型的提示表示法更为实用。实验结果见表4。

其中:

"Triplet"表示使用三重格式作为提示来表示多个路径,如"(堪培拉,澳大利亚首都),(澳大利亚,总理,安东尼-阿尔巴内斯)"。

"sequence"是指使用序列格式,如图2所示。

a3874d33b87a9ba37e1f37d903f0facb.png

"sentence"涉及将三元组转换为自然语言句子。例如,"(堪培拉,澳大利亚首都)"可转换为"堪培拉的首都是澳大利亚"。

结果表明,在推理路径中使用基于三元组的表示法能产生最高的效率和最好的性能。

相反,在考虑ToG-R时,每条推理路径都是以主题实体为起点的关系链,因此与基于triple的提示表示法不兼容。因此,将ToG-R转换为自然语言形式会导致提示过于冗长,从而导致性能明显下降。

其三,不同剪枝工具的影响。除了LLM之外,像BM25和SentenceBERT这样能确保文本相似性的轻量级模型也可以在探索阶段用作剪枝工具。

例如,可以根据实体和关系与问题的字面相似性来选择前N个实体和关系。对ToG性能的影响,如表5所示。使用BM25或SentenceBERT替代LLM会导致性能显著下降。

e9930503eb0acd9cb10330e1e5c61506.png

不过,在使用BM25或SentenceBERT后,可以有效减少调用LLM的次数。

其四,种子示例数量的敏感性。为了更好地了解ToG对种子示例数量的敏感性,该工作进行敏感性分析。

具体地,在fewshot试验的基础上,并从训练集中选择了1-6个示例作为fewshot试验设置。在Fewshot测试中,随机选择{1,2,3,4,6}个示例中的M个作为示例,并重复实验三次。随着示例数量的增加,整体性能也普遍提高。

16e623d5d4e2c24c7bf3d5cad3905401.png

总结

本文主要介绍了一个大模型和知识图谱融合的有趣工作《 Think-on-Graph: Deep and Responsible Reasoning of Large Language Model on Knowledge Graph》(https://arxiv.org/pdf/2307.07697.pdf、https://github.com/IDEA-FinAI/ToG.),该工作提出了一种新的LLM-KG集成范式"LLM⊗KG",将LLM视为一个代理,通过交互式地探索KG上的相关实体和关系,并根据检索到的知识执行推理,取得了一定的效果。

其中关于剪枝的算法、prompt构造细节都值得我们学习,具体细节,可以看源代码,会有更多收获。

参考文献

1、https://arxiv.org/pdf/2307.07697.pdf

2、https://github.com/IDEA-FinAI/ToG.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/596119.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[渗透利器]全能工具=信息收集->漏洞扫描->EXP调用

前言 hxd开发的工具,大致模块有(信息收集,漏洞扫描,暴力破解,POC/EXP,常用编码) 工具使用 下载后解压 安装环境 pip install -r requirements.txt 注意,该工具继承了两种不同的使…

HTML_CSS学习:定位

一、相对定位 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>相对定位</title><style>.outer{width: 500px;background-color: #999ff0;border: 1px solid #000;p…

OpenHarmony实战开发-上传文件

Web组件支持前端页面选择文件上传功能&#xff0c;应用开发者可以使用onShowFileSelector()接口来处理前端页面文件上传的请求。 下面的示例中&#xff0c;当用户在前端页面点击文件上传按钮&#xff0c;应用侧在onShowFileSelector()接口中收到文件上传请求&#xff0c;在此接…

不考408的985,不想考408的有福了!吉林大学计算机考研考情分析

吉林大学&#xff08;Jilin University&#xff09;简称吉大&#xff0c;位于吉林长春&#xff0c;始建于1946年&#xff0c;是中华人民共和国教育部直属的综合性全国重点大学&#xff0c;国家“双一流”、“211工程”、“985工程”、“2011计划”重点建设的著名学府&#xff0…

我是如何带团队从0到1做了AI中台

经历心得 我从18年初就开始带这小团队开始做项目&#xff0c;比如最初的数字广东的协同办公项目&#xff0c;以及粤信签小程序等&#xff0c;所以&#xff0c;在团队管理&#xff0c;人员安排&#xff0c;工作分工&#xff0c;项目拆解等方面都有一定的经验。 19年中旬&#…

基于TL431和CSA的恒压与负压输出

Hello uu们,51去那里玩了呀?该收心回来上班了,嘿嘿! 为什么会有这个命题,因为我的手头只有这些东西如何去实现呢?让我们一起来看电路图吧.电路图如下图1所示 图1:CSA恒压输出电路 图1中,R1给U2提供偏置,Q1给R1提供电流,当U1-VOUT输出大于2.5V时候,U2内部的三极管CE导通,使得…

Kalign 3:大型数据集的多序列比对

之前一直用的是muscle&#xff0c;看到一个文章使用了Kalign&#xff0c;尝试一下吧 安装 wget -c https://github.com/TimoLassmann/kalign/archive/refs/tags/v3.4.0.tar.gz tar -zxvf v3.4.0.tar.gz cd kalign-3.4.0 mkdir build cd build cmake .. make make test su…

JVM之内存分配的详细解析

内存分配 两种方式 不分配内存的对象无法进行其他操作&#xff0c;JVM 为对象分配内存的过程&#xff1a;首先计算对象占用空间大小&#xff0c;接着在堆中划分一块内存给新对象 如果内存规整&#xff0c;使用指针碰撞&#xff08;Bump The Pointer&#xff09;。所有用过的内…

图片四张的时候两个一排 图片三张 五张的时候三个一排 css 如何实现

实现的效果如下图 1、html <view v-if"item.photo_list && item.photo_list.length ! 0" :class"getImageClass(item.photo_list.length)"><view v-for"(j,ind) in item.photo_list" :key"photoind" class"imag…

[python]texthero安装后测试代码

测试环境&#xff1a; anaconda3python3.8 texthero1.1.0 测试代码来自官方&#xff1a;https://github.com/jbesomi/texthero 代码&#xff1a; import texthero as hero import pandas as pddf pd.read_csv("https://gitee.com/FIRC/texthero/raw/master/dataset/…

自动化运维管理工具-------------Ansible

目录 一、自动化运维工具有哪些&#xff1f; 1.1Chef 1.2puppet 1.3Saltstack 二、Ansible介绍 2.1Ansible简介 2.2Ansible特点 2.3Ansible工作原理及流程 2.3.1内部流程 2.3.2外部流程 三、Ansible部署 3.1环境准备 3.2管理端安装 ansible 3.3Ansible相关文件 …

Hibernate 元数据模型(MetaModel)提示类没有找到错误

在进行一次编译的时候&#xff0c;提示下面的错误信息&#xff1a; java: java.lang.ClassNotFoundException: org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor 问题和解决 如果你对 Hibernate 的元数据还是不非常了解的话&#xff0c;请参考文章&#xff1a; JPA 的…

保研面试408复习 3——操作系统

文章目录 1、操作系统一、进程有哪几种状态&#xff0c;状态之间的转换、二、调度策略a.处理机调度分为三级&#xff1a;b.调度算法 标记文字记忆&#xff0c;加粗文字注意&#xff0c;普通文字理解。 为什么越写越少&#xff1f; 问就是在打瓦。(bushi) 1、操作系统 一、进程…

深度学习中的不确定性量化:技术、应用和挑战综述(一)

不确定性量化(UQ)在减少优化和决策过程中的不确定性方面起着关键作用&#xff0c;应用于解决各种现实世界的科学和工程应用。贝叶斯近似和集成学习技术是文献中使用最广泛的两种UQ方法。在这方面&#xff0c;研究人员提出了不同的UQ方法&#xff0c;并测试了它们在各种应用中的…

JAVA学习14——异常

目录 异常&#xff1a; 1.异常基本介绍&#xff1a; 2.异常体系图&#xff1a; 3.五大运行时异常&#xff1a; &#xff08;1&#xff09;NullPointerException空指针异常&#xff1a; &#xff08;2&#xff09;AirthmetiException数字运算异常&#xff1a; &#xff0…

翻译《The Old New Thing》 - Thread messages are eaten by modal loops

Raymond Chen 2005年4月26日 模态消息循环吃掉了线程消息 简要 文章提出了一个常见但也容易被忽视的问题&#xff1a; 线程消息&#xff08;由 PostThreadMessage 创建&#xff09;在模态循环中会被 DispatchMessage 丢弃&#xff0c;因为它们没有关联的窗口句柄。建议在创建窗…

2024年好用的几款数据库管理工具

本文主要介绍几款市面上好用的几款支持多种数据库、跨平台的数据库管理工具&#xff0c;包括开源/免费/收费不同的形式。 1. Chat2DB Chat2DB 是一款自2022年9月起开源的AI驱动的数据库管理工具&#xff0c;现如今已经超过了13k的Star。由EasyExcel&#xff08;31K Star&#…

Linux网络编程---Libevent库

一、简介 Libevent库的特点&#xff1a;开源。精简。跨平台&#xff08;Windows、Linux、maxos、unix&#xff09;。专注于网络通信。 二、安装 进入官网下载安装包后拖入虚拟机&#xff0c;压缩包名为 libevent-2.1.11-stable.tar.gz解压&#xff1a;使用命令tar -zxvf libe…

Sy9-dhcp/dns服务配置

前言、 课程需要&#xff08;进入服务器综合配置使用阶段了&#xff09;&#xff0c;这里还是沿用桌面版的ubuntu来配置dhcp和dns&#xff0c;这里updated了新的版本。2024.5 server端环境&#xff1a; Win11VMS&#xff1a;192.168.105.1192.168.105.128 &#xff08;ubuntu…

SEED-X:多模态智能助手

SEED-X&#xff1a;多模态智能助手 SEED-X 是一个多模态智能助手&#xff0c;已经将所有的模型和代码开源了&#xff01;它是一个统一且多用途的多模态基础模型&#xff0c;最新开放了图像编辑模型。 相较于传统的多模态交互框架&#xff0c;SEED-X 具有以下优点&#xff1a;…