2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

GraphRAG 为什么能增强生成式 AI ?一篇文章告诉你

发布日期:2024-07-24 18:19:46 浏览次数: 3133

检索增强生成(RAG)支持大型语言模型(LLMs)使用外部知识源回答问题。这个功能相信只要你用过一些 AI 工具可能都用到过。尽管如此,它在回答涉及整个文本语料库的全局问题时,例如识别主要主题、总结全文内容,仍存在一些挑战。这是因为这类问题往往要求模型具备对整体语料库内容的深度理解和全局视角,而不仅仅是依赖于局部检索到的信息。因此,在处理这类问题时,RAG 框架下的 LLMs 可能还需要额外的帮助或优化策略,以更好地整合和利用全局信息。

微软在 4 月提出的一项研究提出了GraphRAG,它结合了RAG和查询聚焦摘要(QFS)方法,用于可扩展的私有文本语料库上的问题回答。GraphRAG使用LLM创建基于图的文本索引,派生出一个知识图谱,并生成相关实体的社区摘要(Community Summaries)。当被问及问题时,这些摘要生成部分响应,这些响应被组合成最终答案。与普通的 RAG 方法相比,GraphRAG 明显提高了对大型数据集上全局问题的全面性和多样性。

检索增强生成(RAG)的局限性

RAG 的局限性:当答案可以在特定、可集散所的文本中找到时,RAG 回答问题的效果非常好。然而,如果答案需要从整个数据集中总结,然后回答普通问题时,它会遇到很大挑战。
QFS 相关性:查询聚焦摘要(QFS)更适合这些普通问题,因为它基于查询生成自然语言摘要,而不仅仅是提取文本摘录。
LLMs 方面的先进性:像 GPT、Llama 和 Gemini 这样的前沿大语言模型(LLMs)优化了所有总结类型的任务,使得不同种类的总结(抽象与提取、单文档与多文档)之间的区别变得不那么明显。
处理大型语料库的挑战:尽管有这些进步,总结整个语料库仍然具有挑战性,因为文本量通常超过LLMs的上下文窗口,导致潜在的信息丢失。
潜在的解决方案:一种新形式的预索引(pre-indexing )可以增强 RAG 方法,特别是对于全局摘要任务,通过更好地组织和总结大型数据集。
GraphRAG 是一种新方法,它使用由 LLM 创建的知识图谱进行全局摘要。与之前专注于结构化图检索的方法不同,这种方法利用图的模块性将其划分为密切相关的组或社区。
这是它的工作原理:
  1. 社区摘要:LLM为这些社区生成摘要,提供对图和它涵盖的文档的完整概述。
  2. 查询回答:使用映射-归约方法来回答查询。首先,每个社区摘要被用来独立创建部分答案。然后,这些部分答案被组合成一个最终的、全面的回答。


为了测试这种方法,使用了包括播客转录和新闻文章在内的多样化真实世界数据集,以了解它如何处理关于广泛主题和问题的问题。
此外,GraphRAG 方法与传统 RAG 方法比较后,你会发现 GraphRAG 方法在成本更低的情况下提供了更全面和多样化的答案,特别是当使用来自社区层次结构中层级较低的摘要时。

简单介绍一下 GraphRAG

GraphRAG 是基于知识图谱的概念,它结合了大型语言模型(LLM)以提供智能、成本效益高且更准确的搜索结果。GraphRAG 旨在通过利用图结构更好地组织和总结信息,特别是处理广泛和复杂数据集时,克服传统 RAG 方法的限制。
GraphRAG 将图技术与检索增强生成相结合,增强了大型语言模型(LLM)处理和理解复杂信息的方式。以下是详细说明:
  1. 图数据库它将信息组织为相互连接的节点(实体)和边(关系)的网络。这种结构非常适合以图形格式表示复杂的上下文和关系。
  2. 知识图谱:通过构建知识图谱,你提供了一个丰富的、结构化的上下文,这有助于LLM更好地理解不同实体之间的关系和相互作用。这提高了 LLM 表达和推理信息的能力。
  3. GraphRAG 概念
    1. 知识图谱作为词汇:在 GraphRAG 中,知识图谱被视为一个庞大的词汇库,其中实体和关系类似于单词。
    2. 建模实体和关系:它在检索过程中联合建模实体和关系。这意味着它可以更准确地把握查询背后的意图,并提供更精确的结果。



GraphRAG利用知识图谱的结构化、相互连接的特性来增强LLM的检索和生成能力,从而更好地理解和响应复杂查询。

上图中,GraphRAG pipeline 使用由 LLM 派生的图索引检测和总结图中的实体、关系以及声明(或主张),该流水线将图划分为多个社区(或称为子图),并通过对相关社区摘要进行最终的查询聚焦摘要来生成全局答案。
接下来,我们找图中的 pipeline,一步步讲解其中的原理。

源文档 → 文本块

在处理源文档的文本时,一个很关键的问题就是如何将文本分割成块。每个块随后与LLM提示一起用于构建图索引。更长的块意味着更少的LLM调用,但可能会减少由于LLM的长上下文窗口限制而召回(recall)的信息。因此,找到召回和精度之间的平衡对于获得最佳结果很重要。

文本块 → 元素实例

这一步涉及使用多部分 LLM 提示从文本块中提取图节点和边。提示首先识别实体,包括它们的名称、类型和描述,然后识别它们之间的关系,详细说明源实体和目标实体及其连接。这些信息以分隔的元组列表的形式输出。为了创建特定领域的提示,我们使用与领域相关的少量的示例,如科学或法律,提高提取精度。此外,一个次要提示提取与实体相关的协变量(Covariates),包括主题、对象和日期等细节。为了确保全面的提取,我们使用多轮“提炼(Gleanings)”,其中 LLM 评估是否有遗漏的实体,然后在后续轮次中尝试检测这些遗漏的实体。这种方法有助于在更大的块大小下保持高质量,避免质量损失或不必要的噪声。

元素实例 → 元素摘要

在这一步中,LLM 用于从文本中创建实体、关系和声明( claim 或主张)的摘要,这是一种抽象式摘要(abstractive summarization)。LLM生成有意义的概念描述。接下来,这些单独的描述进一步被总结为每个图元素(实体、关系、声明)的连贯文本块。可能会有对同一实体的不一致引用,导致重复。不过,这是可以管理的,因为 LLM 可以理解同一实体的不同名称,并且我们的方法将相关实体组合在一起。这种方法确保了丰富、描述性的摘要,支持全局、查询聚焦的摘要,区别于使用简洁、固定格式三元组的传统知识图谱。

元素摘要 → 图社区

在这一步中,前一阶段的索引被转换为一个无向、加权图,其中节点代表实体,“边”(edges)代表它们之间的关系,权重显示这些关系的强度。为了理解这个图,我们使用 Leiden 算法,该算法有效地找到节点紧密连接的社区或组。这个算法有助于将图分解为层次结构,每层显示不同的社区结构。这种层次划分有效地通过关注相关节点的较小、可管理的组来总结整个图。

图社区 → 社区摘要

这一步创建了Leiden层次结构中每个社区的详细摘要。这些摘要有助于理解数据集的整体结构和含义,即使没有具体问题。例如,用户可以通过阅读更广泛级别的摘要来找到一般主题,然后深入到较低级别的更详细摘要中以获取特定主题。在这种情况下,这些社区摘要对于回答广泛的、全局查询非常有用,因为它们提供了来自图的组织良好且有意义的信息。

社区摘要 → 社区答案 → 全局答案

给定用户查询,前一步生成的社区摘要可以用于多阶段过程中创建最终答案。
以下是社区摘要如何用于回答用户查询的方法:
  1. 准备摘要:首先,将社区摘要打乱并分成可管理的块。这有助于分散重要信息,使其不会全部集中在一个地方。
  2. 生成答案:对于每个块,使用LLM创建部分答案,该模型还评估每个答案对查询的帮助程度。得分低的答案将被丢弃。
  3. 组合答案:将答案按其得分排序;将它们添加到一个单一的上下文窗口中,然后使用这个组合的上下文生成用户的最终答案。


这种方法有助于确保对查询进行彻底且相关的响应。

图:评估GraphRAG与朴素RAG的示例

什么是知识图谱?

知识图谱通常由节点、边和标签组成。边代表节点之间的关系。
  • 节点:这些代表实体,可以是任何感兴趣的事物,如人、地点、组织、概念或对象。
  • :这些是节点之间的连接,代表实体之间的关系或交互。例如,一条边可能显示一个人“为”一家公司“工作”,或者一个产品“属于”一个类别。
  • 标签:标签代表关系类型。


知识图谱可以被称为以相互连接的方式表示信息的结构化数据库。整体结构是一个网络,实体相互连接,允许复杂关系和数据被表达,以突出不同信息片段之间的关系。

Demo演示

在这里,我们将探索如何使用交互式Gradio应用程序,结合Ollama运行本地Graph RAG。微软的Graph RAG版本已经适应以支持本地模型与Ollama集成。此外,请注意Ollama同时处理LLM和嵌入。这个项目还包括一个新的交互式用户界面。此外,这个项目非常新,并且正在快速迭代。
在这里,由于我们需要一个性能较好的 GPU,所以我们在 DigitalOcean 租用了一台 GPU 云主机。这台主机是 DigitalOcean 旗下 Paperspace 平台的。该平台提供了简单易用的操作界面,以及相对便宜的 GPU 实例,例如 H100 每小时 5.95 美元,而且可以按秒计费使用。
在我们开始安装步骤之前,让我们快速了解通过 Paperspace 实现的这个项目的一些特点。
  • 本地模型支持:支持本地模型如llama3和mistral,以及Ollama用于LLM和嵌入。
  • 交互式UI:用户友好的界面用于管理数据、运行查询和可视化结果。此外,它甚至提供了图形可视化选项。
  • 成本较低:可以减少对昂贵的OpenAI模型的依赖。
  • 文件管理:直接从用户界面上传、查看、编辑和删除输入文件。然而,在尝试时,我在上传文本文件时遇到了问题。
  • 设置管理:通过Gradio UI轻松更新Graph RAG设置。
  • 输出探索:浏览和查看索引输出和工件。


在开始安装之前,我们强烈建议你创建一个单独的环境。否则,可能会遇到依赖性问题。
你可以登录到Paperspace控制台并打开一个新的终端。
1、创建并激活环境。
python -m venv tutorial-env

source tutorial-env/bin/activate
2、安装Ollama并拉取mistral模型以及嵌入模型;在我们的情况下,我们将拉取'mxbai-embed-large'作为我们的嵌入模型。

ollama pull mxbai-embed-large
我们有一个详细的博客文章介绍如何安装Ollama和拉取模型。
一切安装完成,我们将进入下一步。
3、Git克隆仓库并安装requirements.txt

git clone https://github.com/severian42/GraphRAG-Local-UI.git && cd GraphRAG-Local-UIpip install -r requirements.txt

4、运行以下代码以启动实时Gradio应用程序。
python app.py

完成这一步,GraphRAG 的用户界面就上线了。
在数据管理中,你可以选择此选项或导航到文件操作,你可以上传你的文本文件或选择一个现有的。
在数据管理中,你可以通过“数据管理”选项卡中的“文件上传”部分将.txt文件上传到输入目录。你可以在“文件管理”部分查看、编辑和删除这些文件,并使用“刷新文件列表”按钮刷新可用文件列表。要配置索引,转到“索引”选项卡,设置根目录(默认为“./ragtest”),并可选上传配置文件。

在调整参数如详细程度、缓存和输出格式之前,点击“运行索引”以启动进程,提供实时进度监控。如果需要,你可以使用“停止索引”来停止进程。在“KG Chat/Outputs”部分,你可以通过选择输出文件夹、查看文件内容,并从Graph ML文件生成知识图的可视化来探索索引数据。使用“可视化设置”手风琴自定义这些可视化。
对于LLM设置,配置API基础URL和LLM和嵌入的密钥,选择服务类型,选择模型,并调整参数如系统消息、上下文窗口、温度和最大令牌数。通过点击“更新LLM设置”保存这些更改。当查询时,选择查询类型(全局、本地或直接聊天),选择预设选项或自定义查询参数,输入你的查询,并在聊天界面中查看结果。根据需要在“YAML设置”选项卡中调整其他Graph RAG设置。

对于Ollama:使用像llama2、mistral、phi-2等模型。在这里找到Ollama模型的完整列表。
提示:如果你无法运行gradio app.py,请尝试运行 pip install --upgrade gradio,然后退出并开始一个新的终端。

如何轻松在Paperspace上租用GPU

Paperspace 在提供 GPU 资源方面非常高效,为个人和企业需求提供可扩展的解决方案。该平台按需提供强大的GPU,可以轻松租用并通过平台进行管理。Paperspace 支持各种 GPU 类型和配置,从适合轻量级任务的入门级选项到用于密集计算的高端 GPU,如 H100。这种灵活性允许用户根据其特定的工作负载需求选择适当的资源。
此外,Paperspace 的基础设施确保高可用性和性能,拥有全球数据中心。自动扩展和按使用量付费的定价模式进一步提高了效率,使用户能够通过仅支付他们实际使用的资源来优化成本。
为了使用 Paperspace GPU,首先在 Paperspace 的网站上创建一个账户或登录到你现有的 Paperspace 账户。
登录到工作区后,点击“创建项目”,这将打开项目页面。接下来,点击“创建”选项卡以创建一个项目。
现在,我们可以在这里使用你选择的机器启动笔记本。选择一台机器。
浏览可用的 GPU 套餐计划,并选择最适合你需求的计划。
Paperspace 根据性能和定价提供各种选项。
确保检查并调整“自动关闭超时机器”的时间。完成后点击开始notebook。
Paperspace 提供按使用量付费定价模式,计费更加灵活,可以确保你只支付实际使用的 GPU 资源。 如需了解更多,可查看官方网站,或联系 DigitalOcean 中国区独家战略合作伙伴卓普云。

GraphRAG 是一个不错的项目,它结合了知识图谱创建、检索增强生成(RAG)和查询聚焦摘要(QFS),以增强对大型文本语料库的理解。研究结果表明,它在答案质量上明显优于普通的 RAG 方法,不仅能能作为像MapReduce的替代方法,而且所需的token成本更低。对于频繁进行全局查询的数据集,使用图索引中的顶级社区摘要提供了一种优越且成本效益高的解决方案。
这项关于 GraphRAG 的研究专注于大约 1 百万 token 的特定问题。需要进一步的研究来评估不同问题类型、数据格式和数据集大小的性能变化,并与最终用户验证我们的指标。
尽管 GraphRAG 始终优于其他方法,但更简单的无图摘要方法也具有竞争力。关于使用图索引的决策应考虑计算成本、查询频率和图的社区摘要的附加价值等因素。
未来,可以通过整合更多的本地 RAG 方法、基于嵌入的查询匹配和将这些与社区摘要结合的混合方法来完善GraphRAG。更重要的是,跨社区层次结构的深入探索将揭示不同社区间的内在联系与差异,为信息检索提供更加全面和深入的见解,从而提升整体的信息检索质量和用户体验。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅