检索增强生成领域的突破性进步
微软在今年7月开源了GraphRAG,这是一个基于图的检索增强生成(Retrieval-Augmented Generation, RAG)系统。在短短4个多月的时间里,它在GitHub上获得了超过19000颗星,成为目前最火的RAG框架之一。
仅4个多月RAG就进化到“一个新时代”了,微软推出了RAG的新方法:LazyGraphRAG,核心是成本非常低,数据索引成本只有完整GraphRAG的0.1%,生成结果的准确率、查询效率很高。
开源链接:https://github.com/microsoft/graphrag
1. 什么是 GraphRAG以及其能做什么?
GraphRAG 是一种基于 AI 的内容解释和搜索功能。它使用 LLM 解析数据以创建知识图谱并回答用户有关用户提供的私有数据集的问题。
GraphRAG 能够将大量信息连接起来,并利用这些连接来回答那些使用关键字和基于向量的搜索机制难以回答或无法回答的问题。在上一个问题的基础上,提供有关系统如何提供各种用途功能的半技术性高级信息。这使得使用 GraphRAG 的系统能够回答答案涵盖许多文档的问题以及主题问题,例如“此数据集中的热门主题是什么?”。
GraphRAG 的优势主要分为三大类:
-
准确度更高且答案更完整(运行时间 / 生产优势)
-
一旦创建好知识图谱,那么构建和维护 RAG 应用都会更容易(开发时间优势)
-
可解释性、可追溯性和访问控制方面都更好(治理优势)
2. LazyGraphRAG概述及创新
LazyGraphRAG 的一个关键优势是其在成本和质量方面的固有可扩展性。LazyGraphRAG 在成本质量范围内表现出色,如下所示:
-
LazyGraphRAG 数据索引成本与矢量 RAG 相同,并且是完整 GraphRAG 成本的 0.1%。
-
对于与向量 RAG 相当的查询成本,LazyGraphRAG 在本地查询上的表现优于所有竞争方法,包括长上下文向量 RAG 和 GraphRAG DRIFT搜索(我们最近推出的 RAG 方法显示其优于向量 RAG)以及 GraphRAG 本地搜索。
-
相同的 LazyGraphRAG 配置也表现出与 GraphRAG Global Search 对全局查询的答案质量相当,但查询成本却低 700 多倍。
-
对于 GraphRAG 全局搜索的查询 成本为 4% 的情况,LazyGraphRAG在本地和全局查询类型上都明显优于所有竞争方法,包括 C2 级别(大多数应用程序推荐的社区层次结构的第三级)的 GraphRAG 全局搜索。
LazyGraphRAG 的主要创新:
-
无需事先总结
-
最小索引成本
-
迭代深化搜索
-
灵活的相关性测试预算
3. LazyGraphRAG性能测试
将不同相关性测试预算级别的 LazyGraphRAG 与一系列竞争方法进行了比较,在使用低成本 LLM 模型(与 SS_8K 成本相同)的最低预算水平(100 次相关性测试)下,LazyGraphRAG 在本地和全局查询上的表现明显优于所有条件,但全局查询的 GraphRAG 全局搜索条件除外。在使用更高级的 LLM 模型(查询成本为 C2 的 4%)的增加预算(500 次相关性测试)下,LazyGraphRAG 在本地和全局查询上的表现明显优于所有条件。随着相关性测试预算增加到 1,500,LazyGraphRAG 的胜率继续增加,证明了其在成本与质量方面的可扩展性。
4. GraphRAG使用教程
1. 环境部署
git clone git@github.com:microsoft/graphrag.git``cd graphrag``poetry install`` ``## 新建graphrag 项目``poetry run poe index --root ~/trumprag/ --init`` ``## 创建输入``mkdir -p ~/trumprag/input`` ``## 上传新闻稿到input目录下``## 来源: https://finance.eastmoney.com/a/202407143130425967.html`` ``## 本地起one-api服务``## https://github.com/songquanpeng/one-api``## one-api部署手册见:https://github.com/songquanpeng/one-api`` ``##修改setting.yaml``## 见https://github.com/flyrae/trumprag/blob/main/settings.yaml
2. 运行测试
运行Indexing Engine,得到日志则说明成功执行。
poetry run poe index --root ~/trumprag/
运行查询,
poetry run poe query --root ~/trumprag/ --method global "特朗普发生了什么事"
INFO: Reading settings from /root/trumprag/settings.yaml``creating llm client with {'api_key': 'REDACTED,len=35', 'type': "openai_chat", 'model': 'qwen2-72b-instruct', 'max_tokens': 2000, 'temperature': 0.0, 'top_p': 0.9, 'n': 1, 'request_timeout': 180.0, 'api_base': 'https://dashscope.aliyuncs.com/compatible-mode/v1', 'api_version': None, 'organization': None, 'proxy': None, 'cognitive_services_endpoint': None, 'deployment_name': None, 'model_supports_json': False, 'tokens_per_minute': 300000, 'requests_per_minute': 30, 'max_retries': 3, 'max_retry_wait': 10.0, 'sleep_on_rate_limit_recommendation': True, 'concurrent_requests': 1}SUCCESS: Global Search` ` ``Response: # 特朗普在宾夕法尼亚州竞选集会上遭遇枪击事件的综合报告`` ``## 事件概述``在宾夕法尼亚州巴特勒市的一次竞选集会上,特朗普遭遇了枪击事件,这一突发事件导致了人员伤亡,迫使集会被中断,可能会引发政治和社会动荡 [Data: Reports (2)]。`` ``## 安全响应``特勤局迅速采取行动,有效地保护并疏散了特朗普,确保了他的个人安全。这一专业和及时的反应避免了更严重的后果 [Data: Reports (2)]。`` ``## 总统关注``作为现任总统,拜登接收到关于这次枪击事件的初步简报,表明政府正在密切关注事态发展 [Data: Reports (2)]。`` ``## 目击者证言``罗恩·穆斯作为现场目击者,提供了关键证词,这对于事件的后续调查将起到重要作用 [Data: Reports (2)]。`` ``## 地方安全疑虑``此次事件的发生地点巴特勒市,其公共安全和危机应对能力受到了公众的质疑,这可能影响到当地民众对政府的信任度以及未来的公共活动安排 [Data: Reports (2)]。`` ``综上所述,特朗普在巴特勒市的竞选集会上遭遇的枪击事件不仅是一个严重的安全问题,还牵涉到了政治稳定、政府响应能力和地方治安等多方面议题。
LazyGraphRAG 代表了 RAG 技术的重大飞跃。通过解决 GraphRAG 的成本和效率限制,它为广泛的应用提供了更易于访问且用途更广泛的解决方案。然而,这两种技术都有各自的用处,GraphRAG 对于需要大量预处理和深入分析复杂数据集的场景仍然很有价值。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。