为了账号安全,请及时绑定邮箱和手机立即绑定

知识图谱与大语言模型的结合:GraphRAG的威力(上篇)

A. Lorenzo de Brionne, L. Lacombe, A. Mejri, D. Muro, D. Hervault

照片由 Firmbee.com 提供,通过 Unsplash

1. 图网的诞生

大型语言模型(LLM)擅长生成类似人类的文本,但也可能产生幻觉。检索增强生成(RAG)通过从外部来源检索相关信息来支持LLM,为其提供更多上下文信息,从而有效缓解这一问题。虽然RAG显著减少了幻觉,但它也引入了检索无关、冗余或误导信息的挑战,并且在处理需要综合整个语料库信息的复杂查询时会遇到困难。

例如,考虑一下生物医学问题:“蛋白质X与疾病Y之间的关联,同时考虑已知的药物相互作用和通路?” 回答这个问题需要结合分子生物学、疾病病理学和药理学的知识。传统的RAG可能会从各种文档中检索出分散或重复的信息,却无法有效整合这些信息,从而可能导致不完整甚至误导性的答案。

为了克服这些限制,我们提出了GraphRAG,一个新框架,它将结构化数据库(如KGs)与检索增强生成结合[4] [5]。通过利用KGs的互联特性,GraphRAG增强了上下文的相关度,减少了噪音干扰,并为复杂且特定领域的查询提供更准确的回答。接下来,我们将介绍GraphRAG,并说明它与传统RAG和独立的LLMs的主要区别。

1.1. 知识图谱是什么?

知识图谱表示实体(如对象、事件或概念)之间的网络,并展示它们之间的关联。这些图谱存储在图数据库中,并以相互连接的节点(实体)和边(关系)的结构呈现。著名的例子包括DBPediaWikidata,它们将大量信息编译并链接成图形格式。

本体也是你可能会遇到的一个术语。本体构成了知识图谱形式语义的基础,充当定义图谱中概念、类别和关系的数据架构。简而言之,本体定义结构和规则,而知识图谱则将这些规则应用于实际数据,实现实用价值。

1.2. 什么是GraphRAG?(一种图论中的概念)

GraphRAG(基于图的检索增强生成模型)是RAG框架的一种高级形式,它集成了知识图谱(KG),以增强信息的检索和生成能力。

总的来说,GraphRAG 具备几个关键优点。

  • 增强的可解释性:GraphRAG 依赖于知识图谱,从而能够提供更加透明的结果,通过追踪信息检索和关系使用的方式,提供更清晰、更易于理解的推理。
  • 改进的关系和上下文理解:通过利用知识图谱中的结构化关系,GraphRAG 更好地理解实体之间的上下文和联系,从而产生更准确和细微的响应,特别是在生物医学等复杂领域特别有用。
  • 高级搜索灵活性:GraphRAG 使用知识图谱高效地导航大型和复杂的数据库,通过专注于数据点之间的相关联系,实现更快和更精确的搜索。

2. 实现 GraphRAG
2.1. 怎么根据需求包含知识图

知识图谱(KG)可以在多个阶段提升大型语言模型(LLM)的能力:训练、推理,推理后的阶段[7]

LLM augmentation with Knowledge Graph

  • 训练:像 KEPLER [6] 这样的模型通过修改损失函数通过联合优化将知识图谱集成到训练目标中。这种方法结合了语言模型和知识嵌入的损失,使模型能够从文本数据和结构化知识中学习表示。
  • 推理:动态知识融合技术,例如 EMAT [9] 中使用的那些,将外部知识编码到键值存储系统中,并利用快速搜索方法在推理过程中快速检索相关信息以辅助推理。另一种简单的方法是 KG 提示技术,它将结构化的 KG 转换为文本序列,作为上下文输入到大语言模型中,提升推理能力。例如,MindMap [7] 将图结构转换为思维导图,使大语言模型能够通过整合来自 KG 的事实及其隐含知识进行推理——类似于我们所使用的方法。
  • 后推理:知识图谱可以用于分析和解释大语言模型生成的答案。例如,QA-GNN [10] 通过集成知识图谱来验证和解释模型生成的答案。QA-GNN 构建了一个关于问题相关 KG 概念的图神经网络,从而在每一步中增强了可解释性和推理能力。

要进一步了解知识图谱如何增强大规模语言模型(LLMs),您可以参考下列潘等人的论文[4]。我们的方法基于知识图谱提示技术,并采用精简版的MindMap [7] 方法来识别实体并建立它们之间的联系。我们检索实体之间的路径和链接,并以简化格式展示这些信息,以便更容易理解。

尽管我们没有进行修剪,但我们确实进行重新排列。与 MindMap 通过路径和链接生成广泛的连接不同,我们不采取这种方法,以便让大语言模型不参与上下文的创建。

2.2. 我们的GraphRAG

让我们深入探讨GraphRAG实现的每一步。在这个架构中,过程从用大语言模型提取关键词开始,然后在知识图谱上进行向量搜索来识别相关节点和关系。找到的关系接着用来丰富大语言模型的上下文,从而使其能够生成更准确的响应。

2.2.1. 关键词提取

该过程从关键词提取开始,其中大型语言模型(LLM, Large Language Model)分析用户查询(例如,Which drug targets PDE4B ?)以识别出与用户查询相关的实体或关键词,以便在知识图谱中找到对应节点。同时,查询将被转换为向量形式,利用向量搜索来找到最接近查询的知识图谱节点。为了确保全面覆盖相关实体,使用Top-N检索方法从知识图谱中提取一组最相关的实体,从而降低遗漏重要信息的风险。

2.2.2 把路径提取出来

一旦识别出关键字和实体,路径提取模块会找到这些实体在知识图谱之间的连接关系。系统使用Neo4J来搜索实体,找出它们在知识图谱中的连接,如下:

  • 实体匹配后的最短路径(当关键字和实体足够时)。
  • 当识别出较少的关键字或实体时,这些实体的一跳邻居,即最近的邻居。

这些路径捕捉了用户查询所需的重要关系和上下文,将实体与知识图谱中的相关信息连接起来形成关联。这些策略不仅能够捕获实体之间的直接关系,还能捕捉其上下文关系,从而增强知识图谱全面回答用户查询的能力,提升整体效果。

2.2.3 重新排序路径

路径重新排序在必须限制上下文长度以符合LLM约束的情况下起关键作用。通过优先处理与查询最相关的路径,这一步部分解决了有限的上下文长度以及“中间丢失”[3]的问题,确保关键信息被置于前面,从而最大化LLM的响应质量。路径是根据查询相似度和逆TF-IDF以及关系偏好综合计算的相关性评分的由高到低排列的,但仅靠这个排序并不能完全解决如[1]所述的“中间丢失”问题。

2.2.4 图转文本

在这一步骤中,图中的结构化关系和实体被转换成文本序列。Graph-To-Text 组件将图的结构化数据转换为人类可读的文本,可由 LLM 处理。所有关系都格式化为三元组,并在必要时按节点名称进行重新分组。这种转换让 LLM 能够在推理中纳入图中的显性知识。

2.2.5 大语言模型生成中的提示工程

最后,经过增强的上下文与原始查询一起输入大语言模型,以生成答案为目标。提示工程在这里非常重要,因为提示的结构会显著影响回复的连贯性和准确性 [2]

    prompt_template = """  
    你是一个虚拟助手,设计用于通过提供精确和相关的答案来帮助生物医学专业人士解答他们的疑问。  
    你的回答应该仅基于####之间提供的信息,不得使用外部知识或假设。  

    ### 指南:  

1. 确定关键实体和关系:  
    - 在问题中找到上下文中提到的实体。  

2. 追踪相关路径:  
    - 通过提供的关系追踪这些实体之间的路径。  

3. 提取相关信息:  
    - 提取直接与问题相关的实体和关系信息。  
    ...  
    ### 示例 1:  
    **问题 1:**  
    "我在研究贫血的类型。请问有哪些特定的贫血类型?"  
    **上下文:**  
    anemia -> 父集-子集关系 -> (iron-deficiency anemia, hemolytic anemia, sickle-cell anemia, aplastic anemia)  
    breast cancer -> 与...相关 -> (DKK1, SLC6A3, ESR2)  
    **答案:**  
    ['iron-deficiency anemia', 'hemolytic anemia', 'sickle-cell anemia', 'aplastic anemia']  
    **问题:**  
    {question}  
    **上下文:**  
    ####  
    {context}  
    ####  
    """

通过精心设计包含知识图谱中结构化知识的提示,并引导大模型关注特定关系,我们使这些模型能够生成更准确的答案。

结尾

在对GraphRAG的这次探索中,我们强调了将知识图谱与大语言模型(LLMs)结合使用如何解决复杂查询的解析挑战,提供增强的精度、上下文感知能力和可解释性,从而解决这些挑战。通过利用结构化的关联关系,GraphRAG改变了信息检索和综合的方式。敬请期待第二部分,我们将深入探讨大语言模型、RAG和GraphRAG在生物医学领域的应用,并进行比较分析。

参考文献

[1] 安盛楠, 马佐雄, 林泽齐, 郑南宁, 以及 楼建光. 让您的LLM充分利用上下文环境, https://arxiv.org/abs/2404.16811. 2024.

[2] 陈邦豪,张昭峰,Nicolas Langrené,和朱胜新。大型语言模型中提示工程潜力的全面综述,2024。https://arxiv.org/abs/2310.14735

[3] Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni, 和 Percy Liang. 语言模型如何在长上下文中迷失,2023 https://arxiv.org/abs/2307.03172.

[4] Pan Shirui, Luo Linhao, Wang Yufei, Chen Chen, Wang Jiapu, Wu Xindong. 大型语言模型与知识图谱的统一:规划. 《IEEE知识与数据工程汇刊》, 36(7):3580–3599, 2024年7月刊. ISSN 2326–3865. doi:10.1109/tkde.2024.3352100. http://dx.doi.org/10.1109/TKDE.2024.3352100.

[5] 微软研究院. Graphrag:在私有叙事数据上释放大规模语言模型的发现,2024. https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/

[6] 王小智,高天宇,朱昭成,张正颜,刘知远,李涓子,汤健。Kepler:知识嵌入与预训练语言表示的统一模型,2020。https://arxiv.org/abs/1911.06136

[7] 2024 年,温亦林,王自峰,和孙劼。Mindmap:知识图谱提示激发大语言模型的思维图谱,https://arxiv.org/abs/2308.09729

[8] Shirley Wu, Shiyu Zhao, Michihiro Yasunaga, Kexin Huang, Kaidi Cao, Qian Huang, Vassilis N. Ioannidis, Karthik Subbian, James Zou, and Jure Leskovec. Stark: 用于大规模语言模型检索的文本和关系知识库基准测试, 2024. https://arxiv.org/abs/2404.13207.

[9] 吴玉祥,赵宇,胡宝田,帕斯夸莱·明尼维尼 (Pasquale Minervini),蓬图斯·斯内托夫 (Pontus Stenjor),塞巴斯蒂安·里德尔. 一种高效的内存增强型变压器,用于知识密集型自然语言处理任务的模型,2022年. https://arxiv.org/abs/2210.16773.

[10] 米次弘屋根永田,任宏宇,安托万·博塞卢,珀西·梁(Percy Liang),尤雷·莱斯科夫. Qa-GNN:用于语言模型和知识图谱的问答,2022,. https://arxiv.org/abs/2104.06378.

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消