微信扫码
添加专属顾问
我要投稿
GraphRAG作为一种结构化和层次化的增强检索生成方法,正逐步展现出其在全局问答工程化实践中的巨大潜力。本文深入探讨了GraphRAG的核心理念和相关技术,并对GraphRAG落地过程中的实践经验进行了总结,期望能为关注全局问答效果的学者与从业者提供一定参考。
传统RAG(Retrieval-Augmented Generation)通过从文档数据库中检索相关信息来引导生成过程,从而提升内容的准确性和相关性。然而,RAG在实际应用中也存在一些问题和短板,主要包括:
• 检索质量:知识库内容的噪声或文档之间缺乏标准化可能导致检索质量下降。
• 检索效率:在实时应用时,大规模数据集上的高效检索始终是一个亟待解决的难题。
• 上下文理解:对于复杂且需要深入理解背景知识的任务,RAG方式或许表现不佳。
• 结构化数据的检索与融合:RAG通常依赖文本形式的数据,难以直接利用结构化的知识图谱信息。
• 可解释性:生成的内容在可解释性方面存在不足。
图1:GraphRAG主要优势
GraphRAG(Graph Retrieval-Augmented Generation)通过整合知识图中的结构化信息来解决RAG的局限性,其主要优势在于:
• 增强检索效率和质量:通过使用图结构来表示知识,能够更高效地检索相关信息;此外,图结构允许模型考虑实体之间的关系,从而提高检索结果的相关性。
• 更好的上下文理解:利用图中的路径和节点属性,可以更好地捕捉长期依赖和上下文信息,有助于模型在多轮对话或处理复杂文档时做出更加合理的决策。
• 有效利用结构化知识:直接利用知识图谱中的结构化信息,能够更好地理解和利用领域知识,生成更加准确和丰富的答案。
• 提高可解释性:可以更容易地追踪生成内容的来源,提高其可解释性。
总的来说,GraphRAG通过结合知识图谱的结构化信息和检索增强生成技术,提供了一种更高级的信息检索方法。
GraphRAG是一种结构化和层次化的方法,用于增强检索生成(RAG)。与传统使用纯文本片段的语义搜索方法不同,GraphRAG将大语言模型生成的知识图谱与先进的图机器学习技术相结合。
具体来说,对于复杂信息,GraphRAG通过实体、关系和属性抽取技术将非结构化文本等重新组织成结构化知识图,使模型能更好地理解和利用信息间的相互关系。应用时,它首先利用大语言模型对领域知识进行知识图谱化,构建可“图查询”的知识图谱数据库,还可将全域知识库分割成多社区模块的知识图谱以及构建多层次知识图谱。
图2:GraphRAG示意图
检索时,GraphRAG会同时对知识向量库和知识图谱数据库进行检索,将检索到的知识图谱信息和知识向量信息集成转化为 “提示词”,再由LLM生成答案。与RAG相比,GraphRAG的 “提示词” 内容更丰富,包含查询信息、相关上下文信息以及从领域知识图谱库中检索到的相关 “知识图谱” 信息,能进一步提升LLM生成答案的准确性和可靠性,弥补了RAG在复杂信息领域的不足。
GraphRAG整个Pipeline可划分为索引(Indexing)与查询(Query)两个阶段。索引过程利用LLM提取出节点(如实体)、边(如关系)和协变量(如 claim),然后利用社区检测技术对整个知识图谱进行划分,再利用LLM进一步总结。最终针对特定的查询,可以汇总所有与之相关的社区摘要生成一个全局性的答案。
• GraphRAG借助大语言模型处理整个数据集,以提取实体和关系,从而构建起全面的知识图谱的基本要素。
• GraphRAG运用社区检测算法,识别紧密相关实体的集群,随后系统生成这些实体及其关系的嵌入表示,从而实现高效的语义搜索功能。
• 当有查询接入时,GraphRAG可以执行两类搜索。对于宽泛性的问题,通过使用全局搜索,遍历整个图谱以总结主题和概念。对于具体的查询,则采用局部搜索,提取相关的子图,并结合图结构与原始文本数据以提供详细的且有上下文的答案。
面对GraphRAG落地过程中存在的挑战,我们通过项目实践,总结出一套切实有效的方法,使得RAG问答,特别是全局问答效果显著提升。
(1)适配本地模型服务
为了更好地支持OpenAI接口方式,选择并本地部署合适的大模型服务和嵌入模型服务。比如,通过评估大模型在自然语言处理任务中的准确性和效率,以及嵌入模型在向量表示方面的优劣等,选择适合的本地部署大模型。
此外,鉴于本地嵌入模型服务仅接受文本输入,所以有必要修改GraphRAG 源码。具体做法是把嵌入模型服务的输入由token ids 转换为文本,之后再把文本输入本地嵌入模型服务,以确保成GraphRAG 与本地模型服务的无缝适配。
(2)支持更多文件类型和切分方式
• 增加多种文件类型解析:在GraphRAG中,接入当前RAG能力中多种文件类型的解析和切分能力。例如,通过增加对pdf,word,excel,html,markdown等文件类型的加载,从而使GraphRAG能够处理更多类型的文件。
• 提供灵活切分策略:GraphRAG提供了灵活的文本切分策略,既可以根据token数量来切割,有助于控制输入到模型中的文本长度,避免过长或过短的文本对模型性能产生不利影响;也可以基于句子结构来进行划分,更符合语言的自然逻辑。为了更好地适应不同文件的特点,在实际应用时需采取多种合适的切分方法。比如,对于某些特定格式的文件,可以采用循环字符切分,适用于具有特定字符模式的文件;按页分割,常用于文档类文件;按行拆解,对于一些以行为单位组织的文件很有效;根据章节目录进行组织,适合结构清晰、有章节划分的文件。通过这些灵活的切分方式,以进一步提升GraphRAG在各种场景下的实用性和有效性。
(3)指定实体类型提取实体
• 取消默认实体类型设置:在 GraphRAG 进行文本实体提取时,原本需用户指定实体类型列表,以助力大模型完成实体抽取工作;若用户未指定,则会启用默认实体类型,如 organization(组织)、person(人物)、geo(地理)、event(事件)。然而,默认的实体类型可能并不总是与用户的特定文本内容完全匹配。为解决该问题,取消了默认实体类型的设置,改为让大模型自己根据文本进行实体抽取,并输出对应的实体类型。
• 用户可编辑实体类型:允许用户对大模型自动提取的实体类型加以编辑。大模型抽取实体后,用户可以根据自己对文本内容的理解和实际需求,对实体类型进行调整和优化。随后基于用户优化后的实体类型构建图谱,这样可以在一定程度上保障构建的图谱质量,使图谱更符合实际应用场景的需求。
(4)Prompt提示词场景优化
• 提示词汉化及优化:在GraphRAG中,实体抽取,关系抽取,摘要生成和问答等操作均借助了大模型进行处理,而这些环节都涉及到提示词工程。首先进行提示词汉化,将默认的英文提示词转换为中文,以便更好地适应中文用户的需求。然后针对应用场景进行优化,根据不同的应用场景特点,调整提示词的内容和表达方式,使GraphRAG能够更好地理解用户的需求,显著提升了GraphRAG在特定应用场景下的效果。例如,在医疗领域应用时,提示词要更侧重于医学术语和相关概念;在金融领域应用时,则要突出金融相关的词汇和逻辑。
• 统一配置管理:如图 4,将这些提示词模板整合起来并放置在一个config 文件夹中,以便于对提示词进行修改和更新,并在不同的应用场景中快速切换和使用合适的提示词模板。
图4:统一配置提示词模板
(5)问题属性判断
• 明确问答方式及逻辑:在进行GraphRAG问答时,需要用户指定问答方式,即选择全局问答还是局部问答,因为不同的问答方式背后的处理逻辑不同。
• 局部问答逻辑:在进行局部问答时,需要提供实体,关系,社区摘要以及文本块,然后根据query通过向量相似方法寻找与之相关的实体,再基于这些相关实体去查找相关边,从而构建local_context。同时,根据上述相关实体,寻找与query相关的社区,构建出community_context。最终final_context包含local_context,community_context,以及相关知识块,将final_context用于构建search_prompt并送入大模型,这样大模型就可以对query进行局部检索问答。
• 全局问答逻辑:进行全局问答时,主要以社区摘要信息为依据进行检索,检索过程分为map和reduce两个阶段。在map阶段,根据query对社区摘要提取关键点,在reduce阶段,则基于所有提取出的关键点和query得到最终回答。
• 默认与可选设置:由于局部问答和全局问答的检索逻辑存在差异,以明确query属于摘要性的全局问题还是局部问题,对检索结果极为重要。GraphRAG在处理全局问答方面表现出色,同时也具备处理局部问答的能力。因此,默认使用全局方式进行问答,但同时也支持用户根据自己的需求选择使用何种方式进行问答,使得GraphRAG能够更加灵活地适应不同用户的需求。
(6)图谱构建中的性能权衡
GraphRAG 内部会依次对文本块进行实体与边信息的提取,也会逐个为社区生成摘要。在这个过程中,若处理某个文本块或社区时大模型调用出错,内部会捕获异常,这可能致使pipeline执行看似 “成功”,但却未得到预期结果。由此可见,大模型调用服务在图谱构建流程中是极为关键的步骤,需要确保在出现错误时能够及时发现并采取相应措施,避免错误结果对图谱构建质量产生严重影响。
当多个任务并发时,必然会有部分大模型请求处于等待状态。此时,请求的超时时间、最大重试次数等参数决定了大模型调用能否成功。所以,应当依据所选用的大模型情况以及应用场景,确定恰当的大模型请求参数。例如,如果选用的大模型响应速度较快,可以适当缩短超时时间;如果发现大部分请求在首次尝试时就成功了,可以适当减少重试次数;如果经常遇到网络波动,可以增加重试次数。通过合理确定这些参数,在效率和结果之间达成最佳平衡,提高图谱构建的性能。
图5:生成式AI技术发展曲线
• 多模态融合:在企业实际应用场景中,信息往往是多模态的,包括文本、图像、音频等。未来的GraphRAG系统有望整合图像、视频等多模态数据源,利用跨模态学习技术提取结构化信息,并将其融入到知识图谱中,提供更加丰富和全面的答案。多模态数据的加入不仅能够拓宽信息来源,还能提高问题解答的多样性和准确性。
• 技术融合与创新:GraphRAG 有望与更多先进技术融合。例如,通过引入增量学习机制,使系统能够持续从新数据中学习并更新现有知识图谱,从而保持信息的时效性和准确性。同时,可能会引入更先进的图神经网络架构,增强对知识图谱中复杂关系的理解和处理能力,进一步提升模型性能。
• 可扩展性和性能优化:为了适应大规模企业数据和复杂的应用场景,GraphRAG需要在性能优化和可扩展性方面不断进步,包括提高知识图谱的构建效率,减少模型训练和推理时间,以及能够处理更大规模的知识图谱和更多的用户请求。同时,优化算法和数据结构,提高系统的稳定性和可靠性。
综上所述,GraphRAG的未来发展将是一个多维度、跨领域的进程,它将不断适应新的技术趋势,满足不断变化的市场需求,并为用户提供更加智能、高效和安全的知识问答服务。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-04-30
聊聊AI智能体框架MetaGPT下的RAG实践
2025-04-30
如何用大模型+RAG给宠物做一个AI健康助手(干货分享)?
2025-04-30
HiRAG:基于层级知识索引和检索的高精度RAG
2025-04-29
教程|通义Qwen 3 +Milvus,混合推理模型才是优化RAG成本的最佳范式
2025-04-29
RAG开发框架LangChain与LlamaIndex对比解析:谁更适合你的AI应用?
2025-04-29
RAG性能暴增20%!清华等推出“以笔记为中心”的深度检索增强生成框架,复杂问答效果飙升
2025-04-29
超神了,ChatWiki 支持GraphRAG,让 AI 具备垂直深度推理能力!
2025-04-29
AI 产品思维:我如何把一个 AI 应用从基础 RAG 升级到 multi-agent 架构
2024-10-27
2024-09-04
2024-07-18
2024-05-05
2024-06-20
2024-06-13
2024-07-09
2024-07-09
2024-05-19
2024-07-07
2025-04-30
2025-04-29
2025-04-29
2025-04-26
2025-04-25
2025-04-22
2025-04-22
2025-04-20