记录AI学习之路Day04:“RAG“~检索增强生成
·
引言
这两天有在学习RAG的相关知识,这个词我们经常听说,那他到底是什么呢?今天记录依然记录一下个人的总结。
1. RAG 是什么?
RAG,全称 Retrieval-Augmented Generation,即检索增强生成。它是一种将信息检索(Retrieval)与大型语言模型(LLM)的文本生成(Generation)能力相结合的技术范式。
简单来说,RAG 的工作流程可以概括为:
- 检索(Retrieve):当用户提出一个问题(Query)时,系统会从一个外部的、通常是海量的知识库(如文档、数据库、网页)中,检索出与问题最相关的若干片段(Chunks)。
- 增强(Augment):将检索到的相关文本片段,与用户的原始问题一起,组合成一个新的、信息更丰富的“提示”(Prompt),提交给 LLM。
- 生成(Generate):LLM 基于这个包含了外部知识的提示,生成最终的回答。
其核心思想是:让 LLM 的“大脑”(参数知识)与一个可随时更新的“外部记忆体”(检索知识库)协同工作,从而生成更准确、更实时、更具事实依据的答案。
2. 为什么需要 RAG?
尽管 LLM 本身拥有强大的知识和推理能力,但它存在几个关键限制,RAG 正是为了解决这些问题而生:
- 知识过时/静态性:LLM 的训练数据有截止日期,无法获取训练之后的新知识(例如,最新的新闻、产品发布、研究报告)。
- 幻觉(Hallucination):LLM 可能会生成看似合理但事实上错误或编造的内容,尤其是在其参数知识不完整或模糊的领域。
- 缺乏领域/私有知识:通用 LLM 不了解特定企业、个人的私有文档、内部数据或专业领域知识。
- 可解释性与溯源困难:LLM 的回答像一个“黑箱”,我们很难知道其结论具体来源于哪些信息。
RAG 通过引入检索步骤,为 LLM 提供了可验证、可更新、可溯源的外部知识来源,有效缓解了以上问题。
3. RAG 的核心组件与工作流程
一个典型的 RAG 系统包含两个主要阶段:索引(Indexing) 和 检索与生成(Retrieval & Generation)。
3.1 索引阶段(离线)
这是为知识库建立“外部记忆体”的过程。
- 文档加载:从各种来源(PDF、Word、网页、数据库)加载原始文档。
- 文本分割:将长文档切分成更小的、语义连贯的片段(Chunks)。这是关键步骤,分割策略(如按字符、句子、段落或语义)直接影响检索效果。
- 向量化(Embedding):使用嵌入模型(Embedding Model)将每个文本片段转换为一个高维向量(Vector)。这个向量代表了该文本的语义。
- 存储:将文本片段及其对应的向量存储到向量数据库(如 Pinecone, Weaviate, Milvus, Chroma)中,以便后续高效检索。
3.2 检索与生成阶段(在线)
这是响应用户查询的实时过程。
- 查询向量化:将用户的查询(Query)使用同样的嵌入模型转换为查询向量。
- 相似性检索:在向量数据库中,计算查询向量与所有存储向量之间的相似度(通常使用余弦相似度),返回最相似的 K 个文本片段。
- 提示构建:将检索到的相关文本片段(作为“上下文”)与用户的原始问题组合,构建成一个结构化的提示(Prompt)。例如:
请基于以下上下文回答问题。如果上下文不包含答案,请直接说“根据提供的信息无法回答”。 上下文: {检索到的文本片段1} {检索到的文本片段2} ... 问题:{用户原始问题} 答案: - LLM 生成:将构建好的提示提交给 LLM(如 GPT-4, Claude, 文心一言等),LLM 基于给定的上下文生成最终答案。
4. RAG 的优势与挑战
优势
- 知识实时性:只需更新知识库,即可让系统获取最新信息,无需重新训练昂贵的 LLM。
- 减少幻觉:答案基于提供的上下文,事实准确性更高。
- 可解释与可溯源:可以展示答案引用了哪些源文档片段,增强可信度。
- 成本效益:相比用私有数据微调(Fine-tuning)一个大模型,RAG 的实现和更新成本更低。
- 数据隐私:敏感数据可以保留在本地知识库中,无需上传给第三方 LLM 服务(在使用本地或可信任的 LLM 时)。
挑战与优化方向
- 检索质量:检索不到或检索到不相关的片段,会直接导致生成错误答案。优化点包括:更好的文本分割策略、更优的嵌入模型、检索后重排序(Re-ranking)等。
- 上下文窗口限制:检索到的片段总长度可能超过 LLM 的上下文窗口。需要精炼或摘要检索结果。
- 提示工程:如何将检索到的上下文和问题有效组合成提示,直接影响生成质量。
- 多跳推理:对于需要串联多个文档片段才能回答的复杂问题,基础 RAG 可能力不从心,需要更高级的架构(如迭代检索、图检索)。
5. 总结
RAG 不是要取代 LLM,而是增强它。它巧妙地结合了传统信息检索的精确性与 LLM 强大的语言理解和生成能力,是构建可靠、可信、知识可更新的 AI 应用(如智能客服、企业知识库、研究助手)的主流架构之一。
理解 RAG 的原理是第一步,下一步可以深入其技术栈(如 LangChain, LlamaIndex 等框架),并动手实践,体验从文档处理到问答的全流程。
更多推荐


所有评论(0)