你本地已经跑通了 Ollama,也想上知识库问答,但一搜 GraphRAG 全是云 API 教程,LightRAG 又说要建实体图——到底哪个适合自己机器、建图那一步会不会把显存和电费吃光,没人直说。这篇不重复基础部署步骤,只讲两套图谱 RAG 的路线差异、什么时候不该选它们,以及从装到跑通、再到效果验收的动作清单。
你本地 Ollama 已经能对话了,也想搭知识库问答,结果一搜 GraphRAG 全是云 API 教程,LightRAG 又说要先建实体图——到底哪套适合自己这台机器、建图那一步会不会把显存和电费吃光,很少有人直说。这篇不重复基础部署步骤,只讲两条图谱 RAG 路线的差异、什么时候不该选它们,以及从装到跑通再到验收的动作清单。
先说清楚前提:Ollama 给的是本地对话与嵌入能力,图谱 RAG 的抽取质量完全取决于你挂哪个模型。抽取模型选小了,实体漏、关系断,后面检索再花哨也是白搭;这一步没有捷径,只能靠小样本试跑对比。
先分清两条路线:GraphRAG 和 LightRAG 到底差在哪
两者最大的差别不在算法名字,而在「什么时候建图」。GraphRAG 是文档一进来就把实体和关系抽出来、预先把图建好,查询时直接在图上游走;LightRAG 更偏查询时按需检索,把图当辅助手段,而不是先花大代价铺满。这个差别直接决定你第一次跑要等多久、以后每改一篇文档要付多少代价。
| 对比维度 | GraphRAG | LightRAG |
|---|---|---|
| 建图时机 | 文档入库即抽取建图 | 查询阶段按需检索 |
| 首次运行耗时 | 明显更长,取决于模型和文档量 | 相对轻,可先跑通再补图 |
| 文档增量更新 | 通常要重跑受影响部分甚至全量 | 增量友好,单篇更新代价低 |
| 擅长的问题 | 跨文档归纳、全局性总结 | 单点事实、局部关系查询 |
| 什么都不如时 | 文档量小、更新极频繁 | 问题基本是单篇事实检索 |
还有个容易被忽略的点:两套方案都不是「越贵越好」。如果文档总量不大、问题又集中在单篇里找事实,普通向量 RAG 反而更省心。想先确认你要不要上图谱这条路,可以到 /tools 里的工具目录按场景挑,别一上来就选最重的那套。
动手前先确认三件事,不然装完就跑不动
- 模型分工:对话、抽取、嵌入三类角色最好分开评估,抽取模型偏小的话实体和关系容易漏,先用小样本比一比再定
- 算力与显存:建图阶段是多次并发调用,跟平时一问一答完全不是一个负载,先算清你的卡和量化档位能不能扛住
- 存储与依赖:向量库和图存储要不要分开部署,容器还是裸装,提前定下来,省得跑到一半再迁数据
显存这块没有通用答案,没人能替你拍板。比较稳妥的做法是到站内 /models/deploy 页面,按你手上的显卡和量化档位核一遍当时的参考数字,再决定模型要不要降档。如果一套配置建图时频繁爆显存或疯狂走磁盘,就说明抽取并发或分块设置该往下调了。
从 Ollama 到跑通第一份文档:可照着做的顺序
- 把 Ollama 暴露成兼容接口让上层框架能像调 OpenAI 那样指过来,接口地址和模型名要对齐,先在命令行里确认能正常返回,再往下走。
- 小样本试跑先放两三篇短文档,把抽取、分块、入库、检索四步全走一遍,哪一步报错就地排查,别急着上全量。
- 调参数分块大小、抽取并发数、检索返回条数,改动一次只动一个变量,动完重新试跑同一批文档做对比。
- 记录基线同一批问题配同一批文档,把耗时和答案存下来,后面换模型换配置才有对照,不然全是感觉。
# 确认 Ollama 服务可用后再让框架指过来
ollama list
curl http://localhost:11434/api/tags
# 上层配置里把 base_url 指向 Ollama、model 名与列表保持一致试跑阶段最容易踩的坑是并发开太大。抽取是一次调很多次模型,你平时聊天感觉不到的压力,到这里会一起爆发。稳妥起见,先按低并发跑通,再逐档往上加,盯着显存和响应时间走。
怎么判断跑出来的结果能不能用,什么情况下别硬上
验收别只看「答得像不像」。准备三类问题去测:单点事实、跨文档归纳、多跳关系。哪一类答不上来,就回到对应环节查——单点事实出问题多半是分块或嵌入,跨文档归纳出问题看图的连通性,多跳出问题看关系抽取是否够细。
- 答案必须能回到原文片段,对不上就当没答,图谱 RAG 一样会编
- 同一批文档、同一批问题重复跑两次,答案漂移太大说明抽取不稳定
- 增量更新后再问一遍,确认新文档进了图、旧答案没被带偏
- 多人协作场景要把维护和调参的人力算进去,不是装完就一劳永逸
三种情况下建议别硬上图谱路线:文档量很小、更新极频繁、问题基本都是单篇事实检索。这几种用普通向量 RAG 更省事,硬套图谱只会把简单问题复杂化。至于这台机器到底能撑到哪个量级,去 /tools/speed-test 按你的实际负载测一遍,比看别人的经验靠谱。
还有一点,本地这套的长期维护成本要提前想清楚。模型升级、依赖变动、存储增长,都会让一开始跑通的配置慢慢失效。想少踩坑,可以定期到 /price-watch 看模型与算力侧的变化,心里有个数。
下一步拿你手上真实的两三篇文档按上面的顺序试跑一遍,卡在哪一步再回头查;配置量级和成本参考到站内页面核对当时的数字,别凭感觉拍。→常见问题
本地跑 GraphRAG 一定要很贵的显卡吗?
不一定,但建图阶段确实比普通问答吃资源,因为要反复调用模型抽实体和关系。关键是先量后买:拿你自己的文档规模跑一遍小样本,看峰值显存和耗时,再决定要不要降量化档位或换更小的抽取模型。具体到某张卡能扛多少,去 /models/deploy 按你的卡和量化档算一遍,比看别人的配置单靠谱。
GraphRAG 和 LightRAG 只能选一个吗?
不是,但建议先跑通一个再碰另一个。两者的索引结构和查询逻辑差别不小,同时上会让你分不清是数据问题还是框架问题。先按文档更新频率和问题类型选一条主线,跑出基线之后,再拿同一批文档和问题去试另一条,对比才有意义。文档极少、问题又都是单篇事实检索的话,两个都可以先不碰。
本地部署这套,数据和隐私就绝对安全了吗?
本地部署能减少数据出内网,但不等于自动合规。抽取和嵌入过程可能会把文档碎片写进本地向量库或图存储,这些中间文件的落盘位置、备份策略、谁能访问,都要一起管。另外你从网上拉的镜像和依赖包也属于外部来源。要按合规口径梳理,可以对照 /safety 那一区的页面过一遍,别只看模型跑在哪台机器上。