Skip to content

RAG检索增强生成 - 概述

尚硅谷大模型技术之LangChain V1.1.0


一、大模型的困境

1.1 四大局限

局限说明影响
知识滞后LLM因海量参数,需要花费相当的物力与时间进行预训练和微调,还需各种安全测试与风险评估,因此存在知识滞后无法回答最新事件
知识缺失在专有领域,LLM无法学习到所有的专业知识细节,面向专业领域的提问时,无法给出可靠准确的回答专业领域回答不准确
幻觉LLM在生成回答时,可能会"胡言乱语",体现为错误陈述、编造事实、错误的复杂推理或语境理解不足可信度降低
不可追溯模型生成的答案无法追溯来源难以验证和审计

1.2 幻觉的成因

  • 训练知识存在偏差,错误信息被LLM学习后在输出中复现
  • LLM训练时过度泛化,将普通的模式应用在特定场合导致不准确输出
  • LLM本身没有真正学习到训练数据中深层次的含义,在需要深入理解或复杂推理的任务中出错
  • LLM缺乏某些领域的相关知识,面临相关问题时编造不存在的信息

大模型生成内容的不可控,尤其在金融和医疗等领域,一次金额评估的错误、一次医疗诊断的失误,哪怕只出现一次都是致命的。但这些错误对于非专业人士来说难以辨识。目前还没有能够百分之百解决这种情况的方案。

面对这些局限,我们该如何让大模型回答得更准确、更可靠?这就引出了本节的核心主题——RAG。


二、RAG概述

2.1 什么是RAG

RAG(Retrieval-Augmented Generation,检索增强生成)的基本思想为:将传统的生成式大模型和实时信息检索技术相结合,为大模型补充来自外部的相关数据和上下文,来帮助大模型生成更加准确可靠的内容。这使得大模型在生成内容时可以依赖实时与个性化的数据和知识,而非仅仅依赖训练知识。就相当于在大模型回答时给它一本参考书。

当应用需求集中在利用大模型回答特定私有领域的知识,且知识库足够大时,除了微调大模型外,RAG就是非常有效的一种解决方案。LangChain对这一流程提供了完整的解决方案。

2.2 RAG优缺点

优点

  • 相比提示词工程,RAG有更丰富的上下文和数据样本,不需要用户提供过多的背景描述,就能生成符合预期的答案
  • 相比模型微调,RAG可以提升问答内容的时效性和可靠性
  • 在一定程度上保护了业务数据的隐私性

缺点

  • 每次问答都涉及外部系统数据检索,响应时延相对较高
  • 引用的外部知识数据会消耗大量的模型Token资源

2.3 RAG vs 其他方案

方案优势劣势适用场景
提示词工程简单快速,无需额外资源效果有限,难以处理复杂知识简单任务
RAG知识可更新,可追溯,成本较低响应延迟,需维护向量库知识密集型应用
微调学习领域风格,响应快速知识更新难,成本高,有幻觉风险特定格式/风格
RAG + 微调结合两者优势复杂度高,成本最高复杂企业应用

2.4 RAG应用场景

2.5 完整流程总览

典型的RAG有两个主要阶段:索引阶段(离线)检索生成阶段(在线)

索引阶段:从各种数据源加载数据 → 将文档切分为小块 → 对文本块进行嵌入 → 存储嵌入向量。

检索生成阶段:根据用户输入,使用检索器从存储中检索相关文本块 → 大模型使用包含问题和检索结果的提示生成回答。

接下来的第三到第八章,将沿着这条数据流,逐步讲解每一个环节的实现。