当前位置:   article > 正文

Graph RAG: 知识图谱结合 LLM 的检索增强_graphrag翻译

graphrag翻译

图片

本文为大家揭示 NebulaGraph 优先提出的 Graph RAG 方法,这种结合知识图谱、图数据库作为大模型结合私有知识系统的最新技术栈,是 LLM+ 系列的第三篇,加上之前的图上下文学习、Text2Cypher 这两篇文章,目前 NebulaGraph + LLM 相关的文章一共有 3 篇。

Graph RAG

图片

RAG(Retrieval Argumented Generation)这种基于特定任务/问题的文档检索范式中,我们通常先收集必要的上下文,然后利用具有认知能力的机器学习模型进行上下文学习(in-context learning),来合成任务的答案。

借助 LLM 这个只需要“说话”就可以灵活处理复杂问题的感知层,只需要两步,就能搭建一个基于私有知识的智能应用:

利用各种搜索方式(比如 Embedding 与向量数据库)从给定的文档中检索相关知识。

利用 LLM 理解并智能地合成答案。

我们结合最新的探索进展和思考,尝试把 Graph RAG 和其他方法进行比较,说得更透一点。此外,我们决定开始用 Graph RAG 这个叫法来描述它。

在 RAG 中知识图谱的价值

图片

这部分内容我们在第一篇文章中阐述过,比如一个查询:“告诉我所有关于苹果和乔布斯的事”,基于乔布斯自传这本书进行问答,而这个问题涉及到的上下文分布在自传这本书的 30 页(分块)的时候,传统的“分割数据,Embedding 再向量搜索”方法在多个文档块里用 TOP-K 去搜索的方法很难得到这种分散,细粒的完整信息。而且,这种方法还很容易遗漏互相关联的文档块,从而导致信息检索不完整。

除此之外,在之后一次技术会议中,我有幸和 leadscloud.com 的徐旭讨论之后(他们因为有知识图谱的技术背景,也做了和我们类似的探索和尝试!),让我意识到知识图谱可以减少基于嵌入的语义搜索所导致的不准确性。徐旭给出的一个有趣的例子是“保温大棚”与“保温杯”,尽管在语义上两者是存在相关性的,但在大多数场景下,这种通用语义(Embedding)下的相关性常常是我们不希望产生的,进而作为错误的上下文而引入“幻觉”。

这时候,保有领域知识的知识图谱则是非常直接可以缓解、消除这种幻觉的手段。

用 NebulaGraph 实现 Graph RAG

图片

一个简单的 Graph RAG 可以如下去简单实现:

  1. 使用 LLM(或其他)模型从问题中提取关键实体
  2. 根据这些实体检索子图,深入到一定的深度(例如,2)
  3. 利用获得的上下文利用 LLM 产生答案。

对应的伪代码可能是这样:

在这里插入图片描述

然而,有了像 LlamaIndex 这样方便的 LLM 编排工具,开发者可以专注于 LLM 的编排逻辑和 pipeline 设计,而不用亲自处理很多细节的抽象与实现。

所以,用 LlamaIndex,我们可以轻松搭建 Graph RAG,甚至整合更复杂的 RAG 逻辑,比如 Graph + Vector RAG。

图片

在 LlamaIndex 中,我们有两种方法实现 Graph RAG:

KnowledgeGraphIndex 只用来对任何私有数据从零构建知识图谱(基于 LLM 或者其他语言模型),再 4 行代码进行 Graph RAG:

在这里插入图片描述

KnowledgeGraphRAGQueryEngine 则可以在任何已经存在的知识图谱上进行 Graph RAG。不过,我还没有完成这个 PR。

在这里插入图片描述

最后,我做了一个 Streamlit 的 Demo(地址:https://www.siwei.io/demos/graph-rag/)来比较 Graph RAG 与 Vector RAG,从中我们可以看到 Graph RAG 并没有取代 Embedding、向量搜索的方法,而是增强了/补充了它的不足。
在这里插入图片描述

Text2Cypher

图片

基于图谱的 LLM 的另一种有趣方法是 Text2Cypher。这种方法不依赖于实体的子图检索,而是将任务/问题翻译成一个面向答案的特定图查询,和我们常说的 Text2SQL 方法本质是一样的。

在 NebulaGraph 上进行 Text2Cypher
得益于 LLM,实现 Text2Cypher 比传统的 ML 方法更为简单和便宜。

比如,LangChain: NebulaGraphQAChain 和 Llama Index: KnowledgeGraphQueryEngine 让我们 3 行代码就能跑起来 Text2Cypher。

比较 Text2Cypher 和 (Sub)Graph RAG

这两种方法主要在其检索机制上有所不同。Text2Cypher 根据 KG 的 Schema 和给定的任务生成图形模式查询,而 SubGraph RAG 获取相关的子图以提供上下文。

两者都有其优点,为了大家更直观理解他们的特点,我做了这个 Demo 视频:

图片

我们可以看到两者的图查询模式在可视化下是有非常清晰的差异的。

结合 Text2Cypher 的 Graph RAG

然而,两者并没有绝对的好与坏,不同场景下,它们各有优劣。

在现实世界中,我们可能并不总是知道哪种方法更有效(用来区分应该用哪一种),因此,我倾向于考虑同时利用两者,这样获取的两种检索结果作为上下文,一起来生成最终答案的效果可能是最好的。

具体的实现方法在这个 PR(地址:https://github.com/jerryjliu/llama_index/pull/7204)中已经可以做到了,只需要设置 with_text2cypher=True,Graph RAG 就会包含 Text2Cypher 上下文,敬请期待它的合并。

结论

图片

通过将知识图谱、图存储集成到 LLM 技术栈中,Graph RAG 把 RAG 的上下文学习推向了一个新的高度。它能在 LLM 应用中,通过利用现有(或新建)的知识图谱,提取细粒度、精确调整、领域特定且互联的知识。

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/996631
推荐阅读
相关标签
  

闽ICP备14008679号