认识 RAG
RAG (Retrieval-Augmented Generation) 又称检索增强生成,通过外部知识改善 llm 的幻觉、即时性和专业性
为什么不直接使用 llm 生成,而是先进行 “检索增强” 呢? 这是因为 llm 的缺陷导致的
直接使用 LLM 的缺陷 | 实际应用的需求 |
---|---|
・幻觉 ・信息过时 ・参数化知识效率低 ・缺乏专业领域的深度知识 ・推理能力弱 | ・领域精准问答 ・数据频繁更新 ・生成内容可解释可溯源 ・成本可控 ・数据隐私保护 |
通过 RAG 缓解了 llm 的缺陷,检索增强生成的步骤如下:
![[RAG-20241214111206.png]]
即以下 3 个关键步骤:
- 建立索引:对外挂知识库建立索引,便于后续检索;
- 检索:根据用户的问答去检索外挂知识库;
- 生成:用提取的外挂知识 + 用户提问构建 LLM 的提问 prompt,最终输出答案
以上搭建的流程是标准的 RAG 流程,能解决一定场景的问题,经过发展,已经逐步向 ### Advanced RAG、Modular RAG 的方向演进
![[RAG-20241214111649.png]]
上图说明 llm 应用的不同进化阶段
基础 | 描述 |
---|---|
PromptEngineering | 通过构建更好的提示,让 llm 回答更佳,包括 Few-shot、Cot、Xot、ToT 、RaAct 等技术 |
NaiveRAG | 标准 RAG 流程 |
AdvancedRAG | 对检索进行优化 |
ModularRAG | 模块化,定制化 |
GraphRAG | 对索引优化 |
AgenticRAG | 在 rag 的不同阶段引入 agent |
微调 | 微调模型 |