赞
踩
在数据洪流不断涌来的今天,如何高效且精准地从浩瀚的信息海洋中提炼出有价值的资讯,成为了自然语言处理领域待解决的关键问题。传统的检索增强生成(RAG)架构,以其独特的检索与生成结合的方式,在一定程度上满足了这一需求,为信息处理带来了便捷。然而,随着应用场景的复杂化,传统RAG在处理全局性、深层次语义信息上的局限性逐渐显现。
正是在这样的背景下,微软创新性地推出了GraphRAG(图的检索增强生成)架构,它不仅保留了传统RAG架构中的精华部分——即快速检索与生成高质量响应的能力,更在此基础上引入了知识图谱这一革命性的技术元素。通过精心构建的知识图谱,GraphRAG实现了对信息结构的深度挖掘与全局性把握,使得其在处理复杂语义关系和多主题问题时展现出前所未有的优势。下面本文将针对 GraphRAG 与 传统 RAG 架构设计分别进行分析。
1、文档编码:
传统RAG首先会对输入的文档进行预处理,如分词、去除停用词等。接着,利用自然语言处理(NLP)技术,如词嵌入或Transformer模型,将文档中的每个词或短语转换为高维向量,形成文档的向量表示。
2、信息检索:
在文档编码完成后,RAG架构会利用这些向量在已有的知识库中进行相似度计算,找到与输入文档最相关或最匹配的信息。知识库可以包括预训练的模型、外部数据库、历史问答对等。
3、融合生成:
检索到相关信息后,RAG架构会将这些信息与原始输入文档进行融合。融合的方法可以是通过某种权重机制、注意力机制等,使得原始文档与检索到的信息能够相互补充。最后,基于融合后的信息,RAG架构会生成相应的响应或输出。
1、知识图谱构建
GraphRAG架构的核心在于其知识图谱的构建。微软利用大型语言模型(LLM)从源文档中提取实体、关系和属性等信息。这些信息被组织成一个结构化的知识图谱,图谱中的节点代表实体,边代表实体之间的关系。
2、社区检测与摘要
在知识图谱构建完成后,GraphRAG会使用社区检测算法(如Leiden算法等)来识别图谱中紧密相关的实体组(社区)。每个社区代表一个特定的主题或领域,GraphRAG会为每个社区生成一个摘要,这个摘要能够概括该社区的主要内容或特点。
3、查询聚焦生成
当用户输入查询时,GraphRAG会根据查询内容在知识图谱中查找相关的社区和摘要。GraphRAG会基于这些相关的社区和摘要生成部分响应,每个响应都针对查询中的某个方面或主题。最后,GraphRAG会将所有相关的部分响应进行汇总和整合,形成一个完整的全局答案。
如上这是论文的一个截图,描述了 Graph RAG 处理流程。
下图展示了一个可视化示例。每个圆圈代表一个实体(例如,一个人、一个地点或一个组织),实体大小表示该实体具有的关系数量,颜色表示相似实体的分组。颜色分区是一种建立在图形结构之上的自下而上的聚类方法,它使我们能够回答不同抽象层次的问题。
全局性:传统RAG更侧重于局部信息的匹配和融合,而GraphRAG通过知识图谱和社区检测机制能够捕获全局信息,提供更全面、准确的回答。
结构化表示:GraphRAG使用知识图谱来表示信息,这种结构化的表示方式使得信息更加清晰、易于理解和推理。而传统RAG则更依赖于向量序列来表示信息,基线 RAG 难以将各个点连接起来。
性能优势:GraphRAG的模块化设计使得在索引和查询时能够并行处理多个社区和摘要,提高了处理效率。
环境要求:
Python 3.10-3.12
运行示例:
# 安装 GraphRAG``pip install graphrag`` ``# 运行索引器,设置一个数据项目和一些初始配置``# 准备一个示例数据集``mkdir -p ./ragtest/input`` ``# 获取查尔斯·狄更斯的《圣诞颂歌》数据``curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt > ./ragtest/input/book.txt`` ``# 初始化您的工作区,首先运行命令graphrag.index --init``python -m graphrag.index --init --root ./ragtest`` ``# 这将在目录中创建两个文件:.env和。settings.yaml./ragtest` `# .env包含运行 GraphRAG 管道所需的环境变量。如果检查文件,您将看到已定义的单个环境变量。` `# GRAPHRAG_API_KEY=<API_KEY>这是 OpenAI API 或 Azure OpenAI 端点的 API 密钥。您可以将其替换为您自己的 API 密钥。` `# settings.yaml包含管道的设置。您可以修改此文件以更改管道的设置。`` `` ``# 这里提供了两种方式,以下以 Azure OpenAI 用户应在 settings.yaml 文件中设置以下变量为例``type: azure_openai_chat # Or azure_openai_embedding for embeddings``api_base: https://<instance>.openai.azure.com``api_version: 2024-02-15-preview # You can customize this for other versions``deployment_name: <azure_model_deployment_name>`` `` ``# 运行索引管道``python -m graphrag.index --root ./ragtest`` ``# 运行查询引擎,有两种方式:``# 全局搜索提出高级问题的示例:``python -m graphrag.query \--root ./ragtest \--method global \"What are the top themes in this story?"`` ``# 本地搜索询问有关特定角色的更具体问题的示例:``python -m graphrag.query \--root ./ragtest \--method local \"Who is Scrooge, and what are his main relationships?"
总结
微软GraphRAG通过引入知识图谱和社区检测机制,有效解决了传统RAG在处理全局性问题时的局限性。其结构化表示和并行处理的能力使得GraphRAG在信息检索和生成领域具有显著优势。然而,其复杂性和高昂的成本也是需要考虑的因素。未来,随着技术的不断进步和优化,GraphRAG有望在更多领域得到应用和发展。
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
保证100%免费
】Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。