收藏必备!知识图谱如何解决RAG局限性?大模型开发者必读指南
知识图谱解决传统RAG系统忽视内容内在联系的问题,通过抽取实体关系构建更全面的知识库。GraphRAG适合企业级场景但成本高,LightRAG更适合轻量级应用,支持多种检索模式,在理解复杂关系和增量更新方面有明显优势,是大模型检索增强的有效解决方案。
为什么使用知识图谱

基于向量的RAG的原理大致是这样:
- 内容分块、嵌入、存储并建立索引(建立知识库)
- 对查询进行嵌入,再进行相似性检索
- 将检索结果作为上下文提供给LLM
一个内容紧密关联的长文档(比如合同、法律文书、小说)分隔成多个小块后,可能只有一些零散块因向量相似性被检索到,这可能会导致:
- 检索时忽视了块之间的内在联系
- 难以通过检索结果重复还原文档的概括性见解
- 随着内容不断增加检索的质量难以维系
这被称为RAG的局限性。

知识图谱(Knowledge Graph,KG)尝试用另一个角度来解决这些局限性:
- 对原始内容进行分析,并抽取出知识(实体及实体间的关系)
- 将实体和内容分块进行嵌入、存储并建立索引(建立知识库)
可以看到知识图谱和基于向量的RAG的一个显著区别是:数据库中不仅保存了文档的内容,还保存了对文档的分析和认知,
在检索时,也会先检索到相关实体和关系再检索相关内容块,二者相结合作为检索的结果,使LLM能够生成更全面的答案。
相关文献表明:基于图的 RAG 系统始终优于纯粹基于文本块的RAG的检索方法,随着数据集规模的增加,这种差距变得尤为明显。
开源知识图谱框架
目前,热门的开源知识图谱框架主要有:微软发布的 Graph RAG 和香港大学发布的 LightRAG。
GraphRAG

GraphRAG 流程的基本步骤如下:
索引
- 对原始语料切分为TextUnit,从中提取实体、关系和关键声明
- 在实体中执行社区检测,并生产成多粒度的社区摘要和报告
- 将实体嵌入到图向量空间中,文本块嵌入到文本向量空间中
查询
- 全局搜索:遍历所有社区摘要和报告
- 局部搜索:识别出相关实体,进而提取相邻的实体、关系和社区
- DRIFT搜索:为局部搜索引入社区信息
- 基本搜索:在文本块上进行向量搜索
总体来讲,GraphRAG能够出色地处理全局或高级查询,并且对于关系密集、需要深度推理的查询,效果极佳。
不过劣势也有,比如因为需要大量、频繁的进行LLM调用,速度非常慢,成本非常高;新数据进行更新合并时,需要对整个知识图谱进行更新;如果语料内容关系稀疏的则应用效果一般。
在README中也有醒目的提醒:
⚠️ 警告:GraphRAG 索引可能是一个昂贵的操作,请阅读所有文档以了解所涉及的过程和成本,并从小处着手。
目前而看,GraphRAG更适合用在资源充足、数据庞大、内容垂直度高的成熟的企业重量级场景。
对于学习目的或者个人使用的轻量级场景,可优先考虑LightRAG。
LightRAG

基于图的文本索引
- 将文档分割成更小、更易于管理的部分,无需分析整个文档即可快速识别和访问相关信息
- 利用 LLM 识别和提取各种实体及其之间的关系,以键值对形式进行输出用于高效检索
- 识别并合并重复的实体和关系,缩减图形大小和图形操作开销
- 增量更新时按照同样流程构建小图,在对节点集进行并集操作,避免重新构建图谱
双层检索范式
- 低级检索:侧重与检索特定实体及其相关的的属性或关系,回答细节性主题
- 高级检索:聚合多个相关实体和关系信息,回答更广泛或抽象的主题
在检索时会融合图谱与向量,实现高效检索:
- 借助LLM从查询中提取出局部关键字和全局关键字
- 使用向量数据库将局部关键词与候选实体进行匹配,将全局关键词与链接到全局键的关系进行匹配
- 收集局部子图中的单跳相邻节点,最终形成包含实体、关系、原始文本的上下文
对比传统RAG,LightRAG能够更好的理解事物之间复杂的相互关系,帮助LLM实现更全面的回答;
对于GrapRAG,LightRAG在检索和增量更新方面,具有显著的降低成本、快速响应优势。
LightRAG 应用实战
安装
pip install lightrag-hku
LightRAG 除了提供核心组件外,还提供了两个扩展组件:
api组件 :提供WebUI 和Ollama 兼容的接口,支持被聊天机器人直接调用

api组件
tools组件:提供RAG的交互式可视化工具

tools组件
注意:api组件仅支持ollama和openai的作为模型后端
如果使用HuggingFace或Gemini,则需要使用核心组件(或手动改造api组件)
启动
import osimport asynciofrom lightrag import LightRAGfrom lightrag.llm.openai import gpt_4o_mini_complete, openai_embedfrom lightrag.kg.shared_storage import initialize_pipeline_statusWORKING_DIR = "./dickens"asyncdef initialize_rag(): rag = LightRAG( # 指定工作目录,存储KV数据、向量数据、图数据等 working_dir=WORKING_DIR, # 指定LLM函数实现,可以使用OpenAI兼容接口 llm_model_func=gpt_4o_mini_complete, # 指定嵌入函数实现,可以使用本地嵌入模型 embedding_func=openai_embed, ) await rag.initialize_storages() await initialize_pipeline_status() return ragasyncdef main(): rag = None try: rag = await initialize_rag() # 向rag导入新文档 with open("./book.txt", "r", encoding="utf-8") as f: await rag.ainsert(f.read()) print('请在下方“>”处输入查询问题,输入“exit”则退出系统') whileTrue: query = input("> ") # 向rag检索内容 response = await rag.aquery(query) print(response) except Exception as e: print(f"An error occurred: {e}") finally: print('Bey~') if rag: await rag.finalize_storages()if __name__ == "__main__": asyncio.run(main())
第一次启动时LightRAG 完成知识库的初始化(会稍微花点时间),初始化完成后,会在 dickens 目录下生成数据文件
dickens├── graph_chunk_entity_relation.graphml├── graph_data.json├── kv_store_full_docs.json├── kv_store_llm_response_cache.json├── kv_store_text_chunks.json├── lightrag.log├── vdb_chunks.json├── vdb_entities.json└── vdb_relationships.json
下次启动前可以注释文档导入代码,即可直接进行内容检索
# 向rag导入新文档 # with open("./book.txt", "r", encoding="utf-8") as f: # await rag.ainsert(f.read())
检索
LightRAG 支持多种检索模式:
- naive:传统的向量相似度检索
- local:利用局部关键字进行检索,关注实体细节信息
- global:利用全局关键字进行检索,关注实体关系和全局知识
- hybrid:结合了 local 和 global 模式,检索实体和关系信息
- mix:结合了 hybrid和 naive模式
- bypass: 不进行任何检索,直接由LLM生成答案
默认情况下LightRAG使用 global 模式,并且允许在每一次检索进行自定义
print(await rag.aquery( query=query, param=QueryParam(mode="hybrid", top_k=5, response_type="single line"),))print(await rag.aquery( query=query, param=QueryParam(mode="naive", top_k=5, response_type="single line"),))print(await rag.aquery( query=query, param=QueryParam(mode="bypass", top_k=5, response_type="single line"),))
我用小篇幅文档的实测结果来看:
-
hybrid 模式在回答中出现了多个有关联的实体(虽然有些实体没啥必要)
-
naive 模式能给出的答案也还行,但细节和扩展 比hybrid 模型差一些
-
bypass 模式长篇大论,离题万里。。。

图谱可视化
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套 AI 大模型突围资料包:
- ✅ 从零到一的 AI 学习路径图
- ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
- ✅ 百度/阿里专家闭门录播课
- ✅ 大模型当下最新行业报告
- ✅ 真实大厂面试真题
- ✅ 2025 最新岗位需求图谱
所有资料 ⚡️ ,朋友们如果有需要 《AI大模型入门+进阶学习资源包》,下方扫码获取~

① 全套AI大模型应用开发视频教程
(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)

② 大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

③ 大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

④ AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

⑤ 大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

⑥ 大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

以上资料如何领取?

为什么大家都在学大模型?
最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!

不出1年,“有AI项目经验”将成为投递简历的门槛。
风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!


这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


以上全套大模型资料如何领取?







