为什么用RAG,而不用知识图谱
这是一个很好的对比问题。实际上两者并不是非此即彼的关系,但选择 RAG 更多的原因在于工程成本与收益的权衡。
RAG 被更广泛采用的原因
1. 构建成本低
RAG 的流程相对简单:切割文档 → 向量化 → 存入向量数据库 → 检索 → 喂给 LLM。整个流程几天内可以上线。
知识图谱则需要:实体抽取、关系定义、本体设计、图谱构建、持续维护……往往需要专门的团队和数月时间。
2. 对非结构化文本天然友好
现实中大量知识以文档、PDF、网页形式存在。RAG 可以直接消费这些内容,而知识图谱需要先将非结构化文本转化为结构化的三元组(实体-关系-实体),这一步本身就很难做准确。
3. 维护成本低
知识图谱一旦建立,随着业务变化需要持续更新图谱结构,成本很高。RAG 只需重新导入文档即可。
4. LLM 弥补了推理不足
知识图谱的优势之一是显式推理,但现代 LLM 本身具备较强的推理能力,RAG 检索到相关片段后,LLM 可以完成一定程度的隐式推理,降低了对严格结构化知识的依赖。
知识图谱真正的优势场景
知识图谱并非没有价值,在以下场景它明显优于 RAG:
多跳推理:如"A 的老板的老板是谁"——需要沿关系链路跳转,RAG 很难处理
精确关系查询:金融风控、药物相互作用等对关系准确性要求极高的场景
数据天然是图结构:供应链、组织架构、知识库已经是结构化的
一致性要求高:不允许 LLM 产生幻觉、必须有可溯源路径的场景
当前趋势:GraphRAG
微软提出的 GraphRAG 试图结合两者:先用 LLM 从文档中抽取知识图谱,再结合图结构和向量检索进行问答。这在需要全局理解和多跳推理的场景下效果显著优于纯 RAG,但构建成本也相应提高。
一句话总结:RAG 胜在"足够好且成本低",知识图谱胜在"精确但代价高"。大多数业务场景下,RAG 的性价比更高。