一文读懂RAG和KAG:AI知识增强的两大“利器”

📖阅读时长:15分钟

🕙发布时间:2025-02-07

近日热文:全网最全的神经网络数学原理(代码和公式)直观解释
欢迎关注知乎和公众号的专栏内容
LLM架构专栏
知乎LLM专栏
知乎【柏企
公众号【柏企科技说】【柏企阅文

本文对RAG和KAG展开深入比较,从架构、应用场景、优势和局限等多个方面进行剖析。

一、检索增强生成(RAG)是什么?

RAG是一个融合了基于检索和基于生成模型优势的框架。它会从知识库中检索相关的外部信息(通常是文档或段落),并依据这些信息,针对用户的查询生成更精准、上下文更丰富的回答。

(一)RAG的工作原理

  1. 检索:用户的查询会经由检索系统处理,该系统会从外部知识源(比如维基百科、公司数据库,或者其他大型文档语料库)中获取相关的文档或段落。
  2. 生成:检索到的段落会作为上下文,输入到像GPT-3、GPT-4或BART这样的生成模型中。模型对这些信息进行综合处理,进而生成相关的回复。

    (二)RAG的关键组件

  3. 检索器:这个组件负责利用用户的查询,从知识库中搜索相关信息。它可以借助BERT、Dense Retriever等模型的向量搜索机制,或者其他基于嵌入的系统来实现。
  4. 生成器:信息检索完成后,会被传送到生成模型(例如GPT-2、GPT-3或BART )中。生成模型会依据检索到的上下文,生成连贯且相关的输出内容。

    (三)RAG的优势

  5. 动态知识访问:与仅依赖固定训练数据的模型不同,RAG系统能够访问动态知识库。这使得它可以回答关于近期事件、小众主题,或者训练集中未涵盖的特定文档的问题。
  6. 更好的上下文答案:通过检索相关文档并将其作为上下文,RAG生成的答案能更好地结合上下文,包含的信息量也更丰富。
  7. 高效的知识集成:RAG让模型专注于理解特定的查询上下文,而无需将所有知识都编码到单个模型中。

    (四)RAG的缺点

  8. 复杂性:检索和生成组件需要协同工作,这在模型训练、推理时间以及资源消耗等方面都增加了复杂性。
  9. 对检索质量的依赖性:答案的质量在很大程度上取决于检索步骤的质量。如果检索系统没能获取到相关信息,那么生成的回复质量也会受到影响 。

二、知识增强生成(KAG)是什么?

KAG是另一种混合方法,它通过将结构化知识图谱或外部知识库直接融入模型架构,来提升语言模型的生成能力。与检索非结构化数据(文档或文本)的RAG不同,KAG侧重于整合结构化知识,以此提高生成质量。

(一)KAG的工作原理

  1. 知识集成:利用知识库(比如Freebase、Wikidata这样的知识图谱,或者特定领域的自定义图谱)来提供关于实体、关系和事实的结构化信息。
  2. 增强生成:结构化数据通常会通过特殊标记、嵌入或者提示工程等方式,直接整合到模型的生成过程中。这有助于模型更好地理解实体之间的事实和关系,从而生成更准确的回复。

    (二)KAG的关键组件

  3. 知识图谱:这是知识的结构化表示形式,一般以三元组(主语-谓语-宾语)呈现,封装了实体及其关系的相关事实。
  4. 基于图的集成:模型会通过嵌入图数据,或者利用图来调节生成过程,将知识图谱融入到生成过程中。
  5. 生成模型:和RAG类似,生成模型(例如GPT或T5)负责根据输入的查询以及整合的知识,生成最终的输出结果。

    (三)KAG的优势

  6. 结构化知识:KAG系统在处理结构化知识方面表现出色,能够生成高度真实、准确的回复,尤其适用于涉及已知实体或明确定义事实的任务。
  7. 提高基于事实的问题的准确性:通过直接利用知识图谱,KAG在回答需要特定事实知识的问题时表现优异,比如“谁是特斯拉的首席执行官?”或者“凯撒沙拉的主要成分是什么?”
  8. 一致性:由于信息来源于结构化图谱,KAG能确保生成的答案具有一致性,并且不容易出现因无监督训练导致的错误。

    (四)KAG的缺点

  9. 仅限于可用知识:KAG本质上受限于图谱中编码的知识。如果知识图谱不完整或者过时,模型生成相关答案的能力就会受到制约。
  10. 扩展挑战:扩展知识图谱以覆盖广泛领域或大量数据是一项艰巨的任务。此外,要将其有效地集成到生成模型中,还需要复杂的架构和知识表示技术。
  11. 对知识图谱质量的依赖性:KAG的成功很大程度上依赖于知识图谱的质量和广度。不准确或不完整的知识图谱可能会导致错误或有偏差的答案。

三、RAG与KAG:主要区别

特征RAG(检索增强生成)KAG(知识增强生成)
使用的数据类型非结构化数据(例如,文档、段落)结构化数据(例如,知识图谱、事实)
知识来源对文档或语料库的外部搜索结构化知识图谱或数据库
检索方法从大型文档集中动态检索在生成过程中直接集成结构化知识
用例适用性开放域问答、基于事实的生成、从大型语料库中检索基于事实的问题、基于知识图谱的任务
生成依赖关系取决于检索系统的质量依赖于知识图谱的质量和完整性
复杂性由于检索步骤而更复杂集成更简单,但图形构建可能很复杂
准确性准确性可能因检索质量而异当知识图谱全面时,准确性很高
示例使用案例聊天机器人、开放域问答、文档摘要特定领域的知识问题、推荐系统

四、何时使用RAG与KAG?

(一)RAG的使用案例

  1. 开放域问答:在系统需要回答训练过程中可能未遇到过的问题时,RAG表现卓越。比如回答“AI的最新进展是什么?”这类问题,系统可以检索近期的文章或论文,进而生成详细的答案。
  2. 文档摘要:在汇总大量文档时,RAG能够检索出最相关的部分,并将其合成为简洁的摘要。
  3. 信息合成:当需要从多个来源合成信息,或者答案涉及不同文档中的事实时,RAG能发挥很好的作用。

    (二)KAG的使用案例

  4. 基于事实的问答:如果希望模型依据结构化数据生成真实、精确的答案,KAG是不错的选择。例如询问“谁是苹果的首席执行官?”或者“日本的首都是什么?”这类需要事实性答案的问题。
  5. 知识驱动型应用程序:KAG非常适合需要与结构化数据直接交互的应用场景,比如根据特定属性推荐产品,或者回答科学、技术领域的问题。
  6. 实体识别和关系提取:在理解实体之间关系很重要的任务中,KAG表现出色,例如“埃菲尔铁塔和巴黎是什么关系?”

五、结论

RAG和KAG都是增强生成模型能力的前沿方法,但各自适用于不同类型的任务。RAG在开放域任务中表现出色,能够处理动态的非结构化数据;而KAG在需要从知识图谱获取事实性、结构化信息的场景中更具优势。

选择RAG还是KAG,主要取决于所处理的数据类型以及具体的任务需求。对于需要基于大量文档检索和生成答案的通用应用,RAG通常是更优选择;而对于需要从结构化知识中获得一致、基于事实的响应的任务,KAG则提供了更可靠的解决方案。

推荐阅读

1. DeepSeek-R1的顿悟时刻是如何出现的? 背后的数学原理
2. 微调 DeepSeek LLM:使用监督微调(SFT)与 Hugging Face 数据
3. 使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT
4. DeepSeek R1:了解GRPO和多阶段训练
5. 深度探索:DeepSeek-R1 如何从零开始训练
6. DeepSeek 发布 Janus Pro 7B 多模态模型,免费又强大!

本文由mdnice多平台发布


柏企科技圈
1 声望0 粉丝

时间差不多了,快上车!~