微信扫码
与创始人交个朋友
我要投稿
今天是2024年11月25日,星期一,北京,天气阴。
我们继续来看大模型与知识图谱结合的话题,这两个 本身就是LLMs(参数知识)和KGs(显式知识)的一个争论,关于这个结合,我们已经讲了很多。
一年多过去,已经涌现出了许多关于大模型与知识图谱结合的工作,我利用周末时间做了个综述的综述总结,归置了一下。
我将这种结合分为三个方向,一个是大模型与知识图谱在训练路线及结合的路线探索,一个是知识图谱用于大模型幻觉方向总结,一个是大模型与RAG结合的GraphRAG总结。
按照时间线和方向线进行论述,会很有趣,两种技术的结合,在技术上逐渐明朗。
多总结,多回顾,多思考,会有更多收获,供大家一起参考。
首先,关于知识图谱自身的进展,我们先不多说,可以看《On the Evolution of Knowledge Graphs: A Survey and Perspective》(https://arxiv.org/pdf/2306.11489),可看看知识图谱从静态知识图谱到动态、到时序再到事件图谱的演变。
我们切入正题,先看结合的综述,从最早的《A survey of knowledge enhanced pre-trained language models》(https://arxiv.org/pdf/2211.05994)说起,这个是较早的综述了,当时chatgpt还未冒出来,所以大家的关注单,都还是如何解决预训练语言模型(PLMs)在自然语言处理(NLP)任务中的知识表示和推理能力不足的问题。尽管PLMs在下游任务中表现出色,但由于缺乏外部知识的显式表示,它们在推理能力方面存在局限,所以做了知识增强预训练语言模型(KE-PLMs)的研究,从知识源类型、知识粒度和应用三个方面进行分类和总结。
首先,论文将KE-PLMs分为四类知识:语言学知识、文本知识、知识图谱和规则知识。对于语言学知识,包括词汇知识和句法树知识,包有LIBERT、SenseBERT、SKEP等方法。对于文本知识,有KNN-LM、REALM等方法。对于知识图谱,有ERNIE、KEPLER等方法。对于规则知识,有RuleBERT、PTR等方法。
而在NLG中的知识融合方面,可以分为基于检索的方法和基于知识图谱的方法。对于基于检索的方法,有MemNet、RAG等方法。对于基于知识图谱的方法,有CE-PR、MRG等方法。
自从大模型出来后,大模型对知识图谱产生了一定的冲击,所以,大家开始在想,知识图谱应该和大模型如何进行结合,所以,在去年6月,《Unifying Large Language Models and Knowledge Graphs: A Roadmap》(https://arxiv.org/pdf/2306.08302)中做了个很好的总结,从中可以看到一些指引。
这个工作是比较早期的一个展望,然后后期开始从不同的角度来开始衍化的。
也是同6月,《Give Us the Facts: Enhancing Large Language Models with Knowledge Graphs for Fact-aware Language Modeling》(https://arxiv.org/pdf/2306.11489),则很顺应当时大模型的训练过程,总结了出知识图谱参与大模型训练各个阶段的一些方案。
之后,在去年8月份,《Large language models and knowledge graphs: Opportunities and challenges》(https://arxiv.org/pdf/2308.06374),则讨论了LLMs(参数知识)和KGs(显式知识)的常见争论点,并探讨了结合这两者的机会和愿景,其中提到几个思路,这个当时是比较早的。
例如,实体解析和匹配(使用LLMs帮助标注训练数据,减少手动标注的工作量。LLMs可以生成高质量的规则库,用于实体匹配);表格数据处理(利用Transformers模型处理表格数据,将其转换为序列形式输入LLMs,方法包括TURL、RPT和Starmie等);文本知识提取(使用LLMs进行命名实体识别(NER)、关系提取、事件提取和语义角色标注(SRL),利用LLMs的上下文理解能力,无需大量领域特定的训练数据);KG构建(使用LLMs进行链接预测和三元组提取,包括Pretrain-KGE、MADLINK、KEPLER等);本体模式构建(利用LLMs从KG中挖掘约束和规则,进行本体细化和对齐,包括DeepOnto和BERTSubs等);KGs用于LLMs训练(将KGs作为预训练语料库,注入结构化知识,包括Knowledge-Enhanced Language Models和Neuro-Symbolic KBs);检索增强(使用KGs作为外部知识源,增强LLMs的推理能力,包括RAG和FiD等);
而在应用侧,也可以从可视化的角度进行切入,例如,今年4月份,《A Preliminary Roadmap for LLMs as Assistants in Exploring, Analyzing, and Visualizing Knowledge Graphs》(https://arxiv.org/pdf/2404.01425)这个工作,介绍了如何利用大模型(LLMs)来辅助用户在知识图谱(KGs)中的数据探索、分析和可视化的问题。
然后,在今年6月份,也就是2024年6月,出现了 《Research Trends for the Interplay between Large Language Models and Knowledge Graphs》(https://arxiv.org/pdf/2406.08223) ,这个在内容编排上跟roadmap那篇很类似,例如,抛出来一些问题,从发文统计的角度做了一些分析,例如,如何利用LLMs为KG实体生成描述性文本信息;如何在本体生成中使用LLMs;LLMs如何帮助检测KG内的不一致性;LLMs如何通过事实检查提高KG的准确性、一致性和完整性;LLMs如何为KG问答提供准确答案;LLMs如何有效地从自然语言文本生成查询(Text to SPARQL或Cypher)。
当然,知识图谱除了意,还有形,所以可以再扩展到Graph上,按照这条线,就可以引申出幻觉以及知识增强方向。
然后,还有个方向,那就是大模型的幻觉问题受到广泛关注,这里几个方向,代表的,《Can Knowledge Graphs Reduce Hallucinations in LLMs? : A Survey》(https://arxiv.org/pdf/2311.07914)这篇论文提出了三种主要的知识图谱增强方法来减少LLM中的幻觉,并对其有效性进行了系统评估。
一个是知识感知推理(Knowledge-Aware Inference),包括KG增强的检索(KG-Augmented Retrieval),使用检索增强生成模型(如RAG和RALM)在生成过程中提供相关文档,减少幻觉。如KAPING方法通过匹配问题中的实体从知识图中检索相关三元组,增强零样本问答性能;KG增强的推理(KG-Augmented Reasoning), 将复杂的多步任务分解为可管理的子查询,使用一系列中间推理步骤提高LLM的复杂推理能力。Chain of Thought(CoT)和Tree of Thoughts(ToT)等方法模仿人类的逐步推理过程,帮助理解和调试模型的推理过程;KG控制生成(KG-Controlled Generation),使用语言模型生成知识,然后通过探测或API调用完成任务,如使用Codex解析上下文并生成任务API调用,KB-Binder则利用知识图谱生成逻辑草稿以完成答案;
一个是知识感知训练(Knowledge-Aware Training),包括两个,一个是知识感知预训练(Knowledge-Aware Pre-Training),在模型预训练阶段,通过将知识图谱集成到训练数据中,提高LLM的理解能力和文本生成质量。ERNIE和Rosset等的方法通过掩码语言建模和知识引导输入增强语义理解;一个是知识感知微调(Knowledge-Aware Fine-Tuning),在特定任务或领域上微调预训练模型,使用相关数据集和架构优化模型权重。SKILL和KGLM等方法通过合成句子和实体关系嵌入层提高任务性能;
一个是知识感知验证(Knowledge-Aware Validation),使用结构化数据作为事实检查机制,提供模型验证信息的参考。KGLM和SURGE等方法通过知识图谱生成相关实体和事实,增强模型的解释性和可靠性。
进一步的,也就是这个月,《Knowledge Graphs, Large Language Models, and Hallucinations: An NLP Perspective》(https://arxiv.org/abs/2411.14258),这工作介绍了知识图谱在缓解大模型生成虚假信息(即幻觉)方面的潜力。
关于知识图谱缓解这种幻觉的路径说过很多,这是从幻觉这个角度切入的。并从不同的角度来做了分析,根据其底层架构,将不同的知识整合模型进行分类。这些模型可以在LLMs的不同阶段(如预训练、推理、生成后)整合外部知识。
其中:
在预训练阶段,将KG triples作为训练数据的一部分,通过掩码实体预测任务将KG triples与原始文本输入融合,如Ernie 3.0模型,当然也可以直接转为plain text丢入大模型中进行训练,前面说的《Give Us the Facts: Enhancing Large Language Models with Knowledge Graphs for Fact-aware Language Modeling》中有相应论述。
在推理阶段,通过提示将知识注入LLMs。常见的方法是将知识K和查询Q成对地提供给LLMs,形成P={K,Q},用于RAG应用,我们说到的GraphRAG系列就是这类,一般来说,常见的方案,包括三种,一种是Vanilla,直接提示模型生成答案;一种是Chain of Thought(CoT),通过生成更全面和详细的解释来提高答案的可靠性;也或者是基于外部文本知识进行修正,如Self-Correcting with Tool-Interactive Critiquing(CRITIC)基于网络文本的修正答案;也可以是Question-relevant Knowledge Retrieval(QKR),利用知识图谱中的事实作为提示来增强答案的正确性,这个就是同一个道理。
在后生成阶段,在生成答案后,通过外部KG验证答案的事实性,并根据验证结果对原始答案进行修正。
不过修正这块,有个思路需要注意,就是如何基于知识图谱来进行大模型幻觉检测,比较直接的检测方法就是通过LLM提示提取LLM输出中的原子声明作为子图,并比较每个三元组的蕴含关系与给定文本上下文。
例如,基于命名实体(组织、地点、人物等)提取源文本和生成文本之间的KG子图,然后比较两个图之间的对齐情况,通过阈值对齐来分类幻觉。
但如果围绕命名实体构建KG,这可能会导致更抽象概念上的信息丢失,所以可以对更全面的关系提取进行改进。
关于评估这块,可以看看 《GraphEval: A Knowledge-Graph Based LLM Hallucination Evaluation Framework》(https://arxiv.org/pdf/2407.10793) ,这个基于知识图谱的幻觉检测框架,用于评估大模型的回复,并检测与提供的知识不一致的地方,其实现思路也很有趣:
首先从LLM输出中构建知识图谱,然后迭代检查每个三元组是否在给定上下文中事实一致。如果任何三元组被识别为不一致,输出将被视为事实不一致,并可能返回不一致的三元组以提供可解释性。关于这块的更多细节,我在 《利用知识图谱检测并修正大模型幻觉:GraphEval策略的简单粗暴实现思路》(https://mp.weixin.qq.com/s/XUxUxL68FEEPC1vISX82rg) 中做了介绍,其也提到了一个后期矫正的思路,先使用GraphEval检测方法识别出知识图谱中可能包含幻觉的三元组,然后将这些三元组和上下文一起输入到LLM中,生成更正后的三元组。最后,将原始LLM输出中的信息替换为更正后的三元组中的信息,
而进一步的,可以看另有个更pipeline式的方法,《Mitigating large language model hallucinations via autonomous knowledge graph-based retrofitting》(https://arxiv.org/pdf/2311.13314),提出一种五阶段流水线方法,通过在生成答案后查询外部KG来校验并修正LLM输出的事实性,如下图:
包括5个步骤,首先,声明提取阶段,从生成的草稿响应中提取所有需要验证的事实声明。
其次,实体检测和知识图谱检索,识别提取声明中的关键实体,并从知识图谱中检索这些实体的本地子图;
接着,事实选择,从检索到的三元组中选择相关的事实声明,并将这些三元组分成若干块,利用LLMs分别提取每个块中的关键三元组。
然后,声明验证,利用LLMs将模型生成的声明与知识图谱中的事实信息进行比较,提出详细的修订建议。
最后,响应回滚,根据验证结果回滚生成的草稿响应,将整个KGR过程合并为一个单一的提示,使LLMs能够理解KGR过程并基于验证建议增强对事实回滚的理解。
看一个完整的例子:
到了后面,就流行RAG了,传统RAG方法未能有效捕捉文本间的引用关系等结构化信息。RAG在拼接文本片段时可能导致上下文过长,产生“中间迷失”现象。RAG只能检索部分文档,难以全面把握全局信息,影响查询重点摘要(QFS)等任务的表现。
所以,当前Graph增强RAG受到广泛关注,例如《Graph Retrieval-Augmented Generation: A Survey》(https://arxiv.org/pdf/2408.08921),回顾了GraphRAG技术,提出了一个统一的工作流程,包括图索引、图引导检索和图增强生成。
首先,构建和索引图数据库,使其与下游任务对齐。图数据库可以来自公共知识图谱或自构建的数据源。索引过程包括映射节点和边的属性、建立节点间的指针以及组织数据以支持快速遍历和检索操作。
其次,根据用户查询从图数据库中提取相关信息。将用户查询表示为自然语言,计算查询与图数据之间的语义相似度,最终选择与查询最相关的子图元素。 给定用户查询,检索阶段旨在从知识图中提取最相关的元素(如实体、三元组、路径、子图)。为了提高检索效率,通常会采用多种检索粒度(如节点、三元组、路径、子图)和增强技术(如查询扩展和知识合并)。
最后,基于检索到的图数据生成响应。将查询和检索到的图元素输入生成器,生成器结合查询和图数据生成最终响应。
其实,目前,这块在工业领域有很多案例了,我们之前说过lightrag,nanoRag这些,也说过一些代表的框架,在 《现有RAG框架非完全总结:7个GraphRAG+17个传统RAG框架归纳》(https://mp.weixin.qq.com/s/4AEC-JWccUgNLP1xp9RgVw) 中有过讲述,
1、LightRAG,简单快速的Graphrag检索增强生成。地址:https://github.com/HKUDS/LightRAG
2、GraphRAG-Ollama-UI,使用Ollama的GraphRAG,带有Gradio UI和额外功能。地址:https://github.com/severian42/GraphRAG-Ollama-UI
3、microsoft-GraphRAG,一个模块化的基于图的检索增强生成(RAG)系统。地址:https://github.com/microsoft/graphrag
4、nano-GraphRAG,一个简单、易于修改的GraphRAG实现。地址:https://github.com/gusye1234/nano-graphrag
5、KAG,基于OpenSPG引擎的知识增强生成框架,用于构建知识增强的严格决策制定和信息检索知识服务。地址:https://github.com/OpenSPG/KAG
6、Fast-GraphRAG,GraphRAG的轻量化版本。地址:https://github.com/circlemind-ai/fast-graphrag
7、DBGPT,在原社区摘要增强的GraphRAG基础上,引入了文档结构(Document Structure)索引,拓展了 GraphRAG 中对于 Graph 的定义范畴:知识图谱(Knowledge Graph)= 三元组有向图 (Triplets Graph)+ 文档结构图(Document Structure Graph),https://www.yuque.com/eosphoros/dbgpt-docs/bex30nsv60ru0fmx
下面简单做个思想对比:
GraphRAG(by Microsoft,https://github.com/microsoft/graphrag) 利用LLMs构建基于实体的知识图谱,增强查询重点摘要(QFS)任务。该系统通过预生成相关实体群体的社区摘要,捕获文档集合内的局部和全局关系;
GraphRAG(by NebulaGraph,https://www.nebula-graph.io/posts/graph-RAG) 将LLMs集成到NebulaGraph数据库中,提供更智能和精确的搜索结果。该系统通过将查询嵌入到图结构中,利用LLMs进行更复杂的推理和信息检索;
GraphRAG(by Antgroup,https://github.com/eosphoros-ai/DB-GPT) 在文档检索阶段,使用LLMs提取三元组并存储在图数据库中。在检索阶段,识别查询中的关键词,定位图数据库中的对应节点,并使用广度优先搜索(BFS)或深度优先搜索(DFS)遍历子图。生成阶段将检索到的子图数据格式化为文本,并提交给LLMs进行处理;
NallM(by Neo4j,https://github.com/neo4j/NaLLM) 将Neo4j图数据库技术与LLMs结合,探索Neo4j与LLMs的协同作用,主要应用于自然语言接口到知识图谱、从非结构化数据创建知识图谱以及使用静态数据和LLM数据生成报告;
LLM Graph Builder(by Neo4j,https://github.com/neo4j-labs/llm-graph-builder) 自动构建知识图谱,适用于GraphRAG的图数据库构建和索引阶段。该系统主要利用LLMs从非结构化数据中提取节点、关系和它们的属性,并使用LangChain框架创建结构化知识图谱。
当然除了这个还有KAG,KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation》(https://arxiv.org/pdf/2409.13731,https://github.com/OpenSPG/KAG/blob/master/README_cn.md),走垂域知识图谱多跳推理,也是一个思路。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-04
有哪些指标可以描述两个图(graph)的相似度?图的相似度计算是否可以通过统一的指标来完成?聚类系数能否作为图相似度的主要指标?
2024-12-04
面向电子健康记录的知识图谱系统:利用多中心碎片化医疗数据实现协作临床决策支持的设计与应用研究
2024-12-03
ALD + 知识图谱:推动AI材料科学的革命性工具
2024-12-01
购车平台如何“读懂”你?一文看懂知识图谱与大模型技术
2024-12-01
如何用知识图谱解锁开源情报的真正潜力?
2024-12-01
企业智能知识库企业Glean利用GraphRAG融资2.6亿美元
2024-12-01
LightRAG学习
2024-11-30
GPT-4+GraphRAG:知识图谱如何让RAG系统更智能?
2024-07-17
2024-07-11
2024-07-13
2024-08-13
2024-07-08
2024-07-12
2024-06-10
2024-07-26
2024-06-24
2024-07-04
2024-12-04
2024-12-01
2024-11-30
2024-11-22
2024-11-04
2024-10-10
2024-10-03
2024-09-27