收藏 | 程序小白也能学会!知识图谱RAG入门与实战,解锁大模型新技能
收藏 | 程序小白也能学会知识图谱RAG入门与实战解锁大模型新技能本文介绍了知识图谱在解决传统RAG系统处理长文档时忽视块间关联性问题上的优势。对比了GraphRAG和LightRAG两大框架指出GraphRAG适合企业级场景但成本高昂而LightRAG更轻量高效支持增量更新和多种检索模式。通过LightRAG实战展示如何构建知识库并执行查询其hybrid模式能结合实体关系和向量检索提供更全面准确的答案是学习知识图谱RAG的理想选择。为什么使用知识图谱基于向量的RAG的原理大致是这样内容分块、嵌入、存储并建立索引建立知识库对查询进行嵌入再进行相似性检索将检索结果作为上下文提供给LLM一个内容紧密关联的长文档比如合同、法律文书、小说分隔成多个小块后可能只有一些零散块因向量相似性被检索到这可能会导致检索时忽视了块之间的内在联系难以通过检索结果重复还原文档的概括性见解随着内容不断增加检索的质量难以维系这被称为RAG的局限性。知识图谱Knowledge GraphKG尝试用另一个角度来解决这些局限性对原始内容进行分析并抽取出知识实体及实体间的关系将实体和内容分块进行嵌入、存储并建立索引建立知识库可以看到知识图谱和基于向量的RAG的一个显著区别是数据库中不仅保存了文档的内容还保存了对文档的分析和认知在检索时也会先检索到相关实体和关系再检索相关内容块二者相结合作为检索的结果使LLM能够生成更全面的答案。相关文献表明基于图的 RAG 系统始终优于纯粹基于文本块的RAG的检索方法随着数据集规模的增加这种差距变得尤为明显。开源知识图谱框架目前热门的开源知识图谱框架主要有微软发布的Graph RAG和香港大学发布的LightRAG。GraphRAGGraphRAG 流程的基本步骤如下索引对原始语料切分为TextUnit从中提取实体、关系和关键声明在实体中执行社区检测并生产成多粒度的社区摘要和报告将实体嵌入到图向量空间中文本块嵌入到文本向量空间中查询全局搜索遍历所有社区摘要和报告局部搜索识别出相关实体进而提取相邻的实体、关系和社区DRIFT搜索为局部搜索引入社区信息基本搜索在文本块上进行向量搜索总体来讲GraphRAG能够出色地处理全局或高级查询并且对于关系密集、需要深度推理的查询效果极佳。不过劣势也有比如因为需要大量、频繁的进行LLM调用速度非常慢成本非常高新数据进行更新合并时需要对整个知识图谱进行更新如果语料内容关系稀疏的则应用效果一般。在README中也有醒目的提醒⚠️警告GraphRAG 索引可能是一个昂贵的操作请阅读所有文档以了解所涉及的过程和成本并从小处着手。目前而看GraphRAG更适合用在资源充足、数据庞大、内容垂直度高的成熟的企业重量级场景。对于学习目的或者个人使用的轻量级场景可优先考虑LightRAG。LightRAG基于图的文本索引将文档分割成更小、更易于管理的部分无需分析整个文档即可快速识别和访问相关信息利用 LLM 识别和提取各种实体及其之间的关系以键值对形式进行输出用于高效检索识别并合并重复的实体和关系缩减图形大小和图形操作开销增量更新时按照同样流程构建小图在对节点集进行并集操作避免重新构建图谱双层检索范式低级检索侧重与检索特定实体及其相关的的属性或关系回答细节性主题高级检索聚合多个相关实体和关系信息回答更广泛或抽象的主题在检索时会融合图谱与向量实现高效检索借助LLM从查询中提取出局部关键字和全局关键字使用向量数据库将局部关键词与候选实体进行匹配将全局关键词与链接到全局键的关系进行匹配收集局部子图中的单跳相邻节点最终形成包含实体、关系、原始文本的上下文对比传统RAGLightRAG能够更好的理解事物之间复杂的相互关系帮助LLM实现更全面的回答对于GrapRAGLightRAG在检索和增量更新方面具有显著的降低成本、快速响应优势。LightRAG 应用实战安装pip install lightrag-hkuLightRAG 除了提供核心组件外还提供了两个扩展组件api组件提供WebUI 和Ollama 兼容的接口支持被聊天机器人直接调用api组件tools组件提供RAG的交互式可视化工具tools组件注意api组件仅支持ollama和openai的作为模型后端如果使用HuggingFace或Gemini则需要使用核心组件或手动改造api组件启动import os import asyncio from lightrag import LightRAG from lightrag.llm.openai import gpt_4o_mini_complete, openai_embed from lightrag.kg.shared_storage import initialize_pipeline_status WORKING_DIR ./dickens asyncdef initialize_rag(): rag LightRAG( # 指定工作目录存储KV数据、向量数据、图数据等 working_dirWORKING_DIR, # 指定LLM函数实现可以使用OpenAI兼容接口 llm_model_funcgpt_4o_mini_complete, # 指定嵌入函数实现可以使用本地嵌入模型 embedding_funcopenai_embed,) await rag.initialize_storages() await initialize_pipeline_status()return rag asyncdef main(): rag None try: rag await initialize_rag() # 向rag导入新文档 with open(./book.txt,r, encodingutf-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(fAn 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, encodingutf-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( queryquery, paramQueryParam(modehybrid, top_k5, response_typesingle line),))print(await rag.aquery( queryquery, paramQueryParam(modenaive, top_k5, response_typesingle line),))print(await rag.aquery( queryquery, paramQueryParam(modebypass, top_k5, response_typesingle line),))我用小篇幅文档的实测结果来看hybrid 模式在回答中出现了多个有关联的实体虽然有些实体没啥必要naive 模式能给出的答案也还行但细节和扩展 比hybrid 模型差一些bypass 模式长篇大论离题万里。。。最后近期科技圈传来重磅消息行业巨头英特尔宣布大规模裁员2万人传统技术岗位持续萎缩的同时另一番景象却在AI领域上演——AI相关技术岗正开启“疯狂扩招”模式据行业招聘数据显示具备3-5年大模型相关经验的开发者在大厂就能拿到50K×20薪的高薪待遇薪资差距肉眼可见业内资深HR预判不出1年“具备AI项目实战经验”将正式成为技术岗投递的硬性门槛。在行业迭代加速的当下“温水煮青蛙”式的等待只会让自己逐渐被淘汰与其被动应对不如主动出击抢先掌握AI大模型核心原理落地应用技术项目实操经验借行业风口实现职业翻盘深知技术人入门大模型时容易走弯路我特意整理了一套全网最全最细的大模型零基础学习礼包涵盖入门思维导图、经典书籍手册、从入门到进阶的实战视频、可直接运行的项目源码等核心内容。这份资料无需付费免费分享给所有想入局AI大模型的朋友扫码免费领取全部内容部分资料展示1、 AI大模型学习路线图2、 全套AI大模型应用开发视频教程从入门到进阶这里都有跟着老师学习事半功倍。3、 大模型学习书籍文档4、AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5、大模型大厂面试真题整理了百度、阿里、字节等企业近三年的AI大模型岗位面试题涵盖基础理论、技术实操、项目经验等维度每道题都配有详细解析和答题思路帮你针对性提升面试竞争力。6、大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。扫码免费领取全部内容这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】