AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


蚂蚁 DB-GPT 也开源了 GraphRAG,能用吗?好用么?看这篇就够了
发布日期:2024-12-19 12:31:50 浏览次数: 1623 来源:深入LLM Agent应用开发


最近蚂蚁开源的 DB-GPT 上线了类似微软的 GraphRAG,并且宣称比 GraphRAG 节省 1 倍的 Token,而且官方的一张可视化图谱吸引了我,漂亮是真漂亮,真金不怕火炼,我来上手测一遍,让你少踩一次坑。

我之前一直有测试和使用微软 GraphRAG,微软的 GraphRAG 目前已经更新到 1.0.1,从 0.3.0 之后基本都是重构代码,仍然不支持多文件格式,距离生产依然很遥远。

1. DB-GPT

DB-GPT 是蚂蚁金服开源的一款 AI 原生数据应用开发框架,具有 AWEL(Agentic Workflow Expression Language)和智能体功能,旨在通过开发多模型管理(SMMF)、Text2SQL 效果优化、RAG 框架及优化、多智能体框架协作、AWEL(智能体工作流编排)等多种技术能力,在大模型领域构建基础设施。目标是在在数据 3.0 时代,企业和开发者可以基于模型和数据库,用更少的代码构建定制化应用程序。

介绍就不过多展开了,请看下图框架。这是个什么东西啊?大杂烩吗?好全啊,什么都有,这确定是一个代码仓库能干的事情?我不敢相信这是蚂蚁金服这样的公司开源的框架,在我看来这就是个 demo,除了那张可视化图是生产级别。吐槽完毕,让我们看看 DB-GPT 中 GraphRAG。

2. 安装

  • 首先,创建和激活虚拟环境。
conda create -n dbgpt python=3.10
conda activate dbgpt
  • 克隆代码
git clone https://github.com/eosphoros-ai/DB-GPT.git
cd DB-GPT
  • 安装依赖
pip install -e ".[default]" pip install -e ".[openai]" pip install "dbgpt[graph_rag]>=0.6.1"

这里会安装特别多的东西,什么 torch transformer,依赖就装了 1.9G。

  • 安装图数据库 TuGraph
docker pull tugraph/tugraph-runtime-arm64v8-centos7:4.5.1:latest docker run -d -p 7070:7070 -p 7687:7687 -p 9090:9090 --name tugraph_demo tugraph/tugraph-runtime-arm64v8-centos7:4.5.1:latest lgraph_server -d run --enable_plugin true

注意这里要根据自己的电脑架构去 Dockerhub 下载 tugraph,我是 Apple M1 Arm 的芯片。

  • 下载嵌入
cd DB-GPT mkdir models and cd models git clone https://huggingface.co/GanymedeNil/text2vec-large-chinese

不能理解,启动一个框架要先下载嵌入是什么操作?

  • 配置
cp .env.template .env

我想配置为线上的免费 glm-4-flash,并且使用本地 LM Studio 的 Embedding,改了一圈.env 中的配置。启动都是报错,人都麻了。直接修改代码:

- dbgpt/model/proxy/llms/chatgpt.py
设置模型为glm-4-flash

并且配置环境变量

OPENAI_API_KEY=your api key
OPENAI_BASE_URL=https://open.bigmodel.cn/api/paas/v4
  • 启动
python dbgpt/app/dbgpt_server.py

可能报缺少 httpx[socket]之类的包,照着提示安装就是了。

启动过程中,还是可能看到什么 OPENAI_BASE_URL 没配置的问题,忽略。

3. 运行

打开网页:http://localhost:5670/,然后我们在应用管理-知识库中点击创建知识库。

在弹框中存储类型选择知识图谱,其他输入后点击下一步。

在知识库类型中选择文档,它会自动跳转到第 3 步上传。

上传这里选择上传官方文档中的 3 个文件:tugraph.md[1]dbgpt.md[2]osgraph.md[3].

在第四步中默认选择,点击切片处理即可,这里要等待很久,界面也不会推出,还能点击切片处理,不知道咋想的。

跑不通报错,给 neo4j 上 leiden 插件失败了,然后似乎把整个二进制 so 打印出来了,命令行界面因此都会卡起来。

这可能是系统的问题,或者不知道的原因。总之切片这里看起来是初始化图谱社区就失败了,我们在页面执行同步,在日志中将能够看到 DB-GPT 的 GraphRAG 采用的 Prompt 很简单,提取的就是典型的三元组,大约 287 个 Token,而微软的实体提取 Prompt 是 2037 个 Token

此外,微软的 GraphRAG 提取的不是常规的三元组,他是提取的实体和关系描述,因此它的输出也会大。因此,蚂蚁的 GraphRAG 能够节约 1 倍的 Token 来源,并不是流程上的优化,而是 Prompt 的缩减。


DB-GPT
GraphRAG (microsoft)
Document Tokens
42631
42631
Graph Size
808 nodes, 1170 edges
779 nodes, 967 edges
Prompt Tokens
452614
744990
Completion Tokens
48325
227230
Total Tokens
500939
972220

4. 总结

本次解析就到这里了。虽然没能跑通,但是基本的东西已经看到了。我的观点是这个东西也只是个 Demo,而且如果你只是想用 GraphRAG,DB-GPT 不只是一个 RAG,不是一个软件,他是一个堆栈,你懂堆栈的意思吧?所以如果你只是想用 GraphRAG,我建议你直接用微软的。当然不可否认,那个可视化图确实漂亮,希望能够借鉴。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询