什么是rag
LLM的局限性
知识截止限制
LLM的知识仅限于其训练数据的截止日期前的信息。
例如,如果一个模型是基于2023年的数据进行训练的,那么它对2023年之后发生的事件将不具备任何了解或洞察力。
事实准确性问题(幻觉现象)
LLM可能会生成听起来合理但实际上不准确甚至完全错误的信息。这种现象被称为“幻觉”,即模型可能自信地提供虚构的事实、引用不存在的研究或书籍等。
简单来说LLM幻觉就是一本正经的胡说八道
RAG(Retrieval-Augmented Generation)
即检索增强生成,是一种结合了信息检索和文本生成技术的人工智能模型框架。
这种框架旨在通过利用外部知识库来增强生成模型的能力,使其能够更准确、更相关地生成文本。
RAG便是上述局限性问题的解决方案之一。
实现RAG主要流程
数据处理---检索---生成
文档分块、向量化
从企业文档、网页等多源渠道采集文本数据,按语义或固定长度(如500字符)分块
利用嵌入模型将文本块转为高维向量,存储至Milvus等向量数据库
查询向量化、向量语义相似检索、取TopK
用户提问通过相同嵌入模型转为向量
基于余弦相似度匹配向量数据库中的Top-K结果
LLM、生成回答
将检索到的文档块与原始查询拼接形成增强提示
大模型基于增强后的上下文生成最终回答,显著降低幻觉风险
传统 RAG 的局限性
盲人摸象
- 难以从多个来源的分散信息中回答广泛、全局的问题;
- 需要从整个数据集中总体获得洞察,而不是某几个孤立的片段。
举个形象的例子,如果将树比喻成知识,整片森林(所有的树)代表全部知识,如果问这个森林是什么形状的,很明显这是一个宏观的问题,当只召回到一部分的树是无法回答这个问题的。
语义相似度 ≠ 上下文相关性
- 基础模型通常依赖于常识或字面意义,导致相关性(相关性幻觉)的错误正例;
- 高相似度(例如,95%)并不保证相关性;上下文无关的片段可能看起来非常相似(例如,虚构的食谱或不存在的情节)。线性分割大块知识可能会导致丢失全局上下文 / 连接面向连接的检索在上下文分散在多来源(不具有局部性)时可能有挑战。
举个“相似但不相关”的例子,上面的图片是保温杯,下面是保温大棚,两者 token 在很大比例上表达共同的语义:“保温”,在一些场景想要了解保温杯的时候召回了保温大棚的信息,这明显是不对的,所以在索引阶段即使设置了比较高置信度,也很可能因为其相似性而得到不相关的信息。
知识图谱与RAG的协同机制
GraphRAG的协同机制主要体现在索引构建、查询处理和生成优化三个关键阶段,形成了完整的知识检索与生成流程。
- 索引构建阶段是GraphRAG的核心,其流程包括文本块拆分、实体与关系提取、社区生成及摘要生成。首先,系统将原始文档拆分为文本块(Text Units),通过大语言模型(如GPT-4o)从文本中提取实体和关系,形成知识图谱的节点和边。接着,使用社区检测算法(如Leiden算法)对图进行聚类,识别出多个紧密连接的社区,每个社区代表一个主题或概念集合。最后,为每个社区生成层级化的摘要,描述该社区的主要实体、关系和主题。这些摘要按照社区层级(如C0、C1、C2、C3)存储,形成从具体到抽象的结构化知识表示。索引构建阶段产生的数据结构包括文档表、文本块表、实体表、关系表、社区表和图数据,通过这些表格的关联,实现了知识的高效组织与存储。
- 查询处理阶段则分为全局查询和局部查询两种模式,针对不同类型的查询进行优化。对于全局查询(如”数据集的主要主题是什么”),系统首先解析用户查询并识别关键实体和主题,将查询转换为向量表示后,与社区摘要进行语义匹配,选择最相关的社区摘要。然后将这些社区摘要随机打乱并分块,输入大模型生成中间响应,最后聚合这些响应形成最终答案。全局查询特别适合需要从整体上理解数据集的任务,如主题分析、趋势预测等。对于局部查询(如”微软的Cosmos DB团队在10月4日发布的新功能和集成有哪些”),系统以实体为种子节点,通过向量相似度搜索和图遍历扩展邻接关系,提取与查询相关的实体、关系和文本块,为大模型提供更精确的上下文信息。
- 生成优化阶段利用结构化输入显著提升回答质量。GraphRAG不仅提供检索到的文本片段作为上下文,还将知识图谱中的实体关系和社区摘要整合到提示词中,引导大模型生成更准确且符合上下文的回答。例如,在处理”爱因斯坦的导师是谁”这类问题时,GraphRAG会从知识图谱中提取”爱因斯坦”节点,通过”导师”关系找到”赫尔曼·闵可夫斯基”,并进一步通过社区摘要提供更完整的背景信息,确保回答的准确性和权威性。此外,GraphRAG引入了DRIFT推理(Drift Search)机制,通过三个阶段(Primer、Follow-Up、Output Hierarchy)优化检索流程,提高回答的全面性和多样性。在微软内部测试中,DRIFT搜索在全面性方面优于本地搜索78%,在多样性方面优于81%。
这种协同机制使GraphRAG能够充分利用知识图谱的结构化优势和RAG的检索增强能力,为大模型提供更丰富、更精准的上下文信息,从而显著提升复杂查询的处理能力和减少幻觉风险。
GraphRAG
什么是GraphRAG
GraphRAG 基于图的RAG,这一个方案也是一个项目,基于这个方案的项目有fast graph rag和graph rag等等。咱们要说的就是graph rag这个项目,是微软在去年7月份开源的。
GraphRAG代表了知识管理技术的范式转变,它通过结合知识图谱与大语言模型,解决了传统RAG在复杂关系推理和全局信息整合方面的局限性,为企业的知识资产管理提供了革命性的解决方案。
相较于在基础的 RAG 流程中,对原始数据除了做向量索引之外,还要用大模型做一个知识图谱的抽取,形成点与边关联的网状结构。在问答的时候,除了做检索、召回之外,还可以针对给定的任务描述在图上抽取关键词或关键实体,从关键词或关键实体出发,在图上按照语义找到最接近的点,从而以某种策略找到关联的知识,然后按照模版形成新的文本片段,再和其它路进行合并。
GraphRAG 项目旨在通过利用非结构化文本中的隐式关系,扩展 AI 系统可以在私有数据集上回答的问题类别。换句话说就是 针对私有的非结构化数据(各种文档),提取知识图谱(实体、关系、社区),利用图来增强RAG中检索。
什么时候用GraphRAG
当面临以下情况时,GraphRAG比标准RAG有更好的表现:
- 当一些实体(名词)占比比较小,通过标准RAG无法正确召回时;当希望通过实体关系正向和反向查询内容,通过实体关系实现很正确召回时;
- 通过GlobalSearch对整体进行总结和洞见时。
GraphRAG 相较于传统向量 RAG(或“语义搜索”)的一个关键优势在于它能够回答针对整个数据集的全局查询 ,例如“数据的主要主题是什么?”或“对 X 而言最重要的含义是什么?”。
相反,向量 RAG 更擅长处理局部查询 ,即答案与查询相似且可以在特定文本区域内找到的查询,例如“谁”、“什么”、“何时”和“何地”这类问题。
GraphRAG的查询接口
主要有LocalSearch、GlobalSearch和Driftsearch。
- LocalSearch主要是将知识图谱中的结构化数据与输入文档中的非结构化数据相结合,能够在查询时使用相关实体信息来增强LLM上下文。它非常适合回答需要了解输入文档中提到的特定实体的问题。
- GlobalSearch主要使用来自图的社区信息和社区报告作为LLM的上下文,对于需要聚合数据、集中信息来组成答案的全局查询有很好的支持。
- Driftsearch具有灵活遍历的动态推理,结合了全局搜索和本地搜索的特征,以平衡计算成本和质量结果的方法生成详细的响应。
localsearch 和标准rag一样,只查找相关实体缩关联的社区信息,构建查询上下文,对于全局类型的问题不能很好的回答。
而GlobalSearch过程需要遍历某一层的社区,如果对应的知识图谱巨大的,社区很多的话,需要消耗大量的token,花费很长时间才能得到最终答案。
DriftSearch就是在两种采取一个权衡。
graphrag实践挑战
首先是构建成本较高,依赖大语言模型的多次调用,导致索引阶段的计算资源消耗较大。其次是响应速度相对较慢,尤其是在处理大规模图结构时,多级社区的遍历和聚合可能影响实时响应性能。
构建成本高昂
- LLM api token消耗成本
GraphRAG的最大挑战在于其构建成本远高于传统RAG。
例如,处理《绿野仙踪》200页文本需调用GPT-4达449次,总成本高达11美元,而传统RAG仅需0.01美元。
这种成本差异主要源于知识图谱构建过程中的复杂性:实体识别、关系抽取、社区检测和摘要生成都需要大量计算资源。
为应对这一挑战,微软推出了LazyGraphRAG优化方案,将数据索引成本降低至传统GraphRAG的0.1%。LazyGraphRAG采用NLP技术提取名词短语及其共现关系,结合图统计方法优化概念图谱,大幅减少了对昂贵大模型的依赖。例如,通过计算每个文本单元中的名词短语列表,并生成所有可能的边(即名词短语对),利用点互信息(PMI)对边的权重进行归一化,构建更高效的图结构。 - 数据处理质量控制成本
企业知识管理面临的核心挑战是异构数据源的整合与质量控制。GraphRAG需要处理结构化数据、非结构化文本、多模态内容等多种数据格式,并确保数据准确性和一致性。此外,知识图谱的质量直接依赖于输入数据的质量,数据中的噪声或偏差会直接影响推理结果。
响应速度相对较慢
初始化时间:加载知识图谱
查询复杂度:通过向量查询实体,构建上下文
LLM调用:调用LLM,生成token
应用场景展望
微软提供了法律行业的一个案例,在法律、医疗行业有很多基于graph based rag 实现的系统,比如法律文档处理系统、案例分析工具、医疗知识系统、医疗问答系统。
尽管GraphRAG技术仍在发展中,但已经在多个专业领域展现出实际应用价值,特别是在处理复杂关系和推理链的场景中。我们也可以做一些展望,比如:将数据平台的DDL和SQL转化为知识图谱,然后基于这个图谱实现text-to-SQL应该是可行的。另外基于graphRAG能力可以利用实际查询模式发现隐式外键关系,可以极大改进text-to-SQL性能。可以对现有的BI系统生成BI报告,将报告再作为知识库的输入。
总结
LLM的出现,导致现如今许多企业正以生成式人工智能(GenAI)技术为全新基础,进行彻底的重塑。
我们知道GenAI会产生幻觉并编造答案。这里面临的关键挑战是信任问题。但业界很快提出了解决方案——检索增强生成 (RAG) 方法。RAG 应用使用从企业或用户内部收集的信息,增强LLM响应上下文,从而提高其准确性。
RAG技术在初始概念验证 (POC) 和小规模部署中取得了显著的立竿见影的效果。但是,当文档数量增加或文档彼此过于相似时,RAG 应用的事实收集引擎——向量搜索——就会开始失效。有许多技术可以用来提高向量搜索和信息检索流程的准确性。其中之一便是知识图谱(GraphRAG),这项技术还在发展中也面临各种挑战,比如构建成本高、响应慢的问题,但知识图谱+RAG的思路已经在多个专业领域展现出实际应用价值。
GenAI的飞速发展,每一次的迭代都是进化,站在AI进化路上的应用都会被取代,或许基于GenAI的应用重塑需要更高的抽象,应用本身可能已经跳出了现有的应用思维范畴。
4248

被折叠的 条评论
为什么被折叠?



