MODULE m1 · 8.0 HOURS
理解 RAG 架构
已完成 0%
LEARNING OBJECTIVES
本模块目标
- 理解 RAG (Retrieval-Augmented Generation) 架构的核心组件。
- 识别大语言模型 (LLM) 的知识局限性以及检索增强的必要性。
- 能够解释检索-生成流水线的结构流程。
RAG (Retrieval-Augmented Generation) 架构概述
最新的自然语言处理 (NLP) 和深度学习模型通过学习海量文本数据展现出卓越性能,但在处理模型训练时未包含的最新信息或特定领域的非公开数据时,存在幻觉 (hallucination) 或无法获知信息的局限性 [S1]。
通过检索克服 LLM 的局限性
RAG 不是让模型在参数 (parameter) 内部死记硬背所有知识,而是在“适当时机 (just-in-time)”检索与问题相关的外部可靠文档,并将其提供给生成阶段作为输入的方案 [S2]。
核心组件
- 检索器 (Retriever): 接收用户查询 (query),从向量数据库等中识别相关性高的文档片段 (chunk)。
- 增强 (Augmentation): 组合检索到的文档与原始问题,构成传递给 LLM 的提示词。
- 生成器 (Generator): 基于增强后的信息生成事实依据的回答。
这种结构有助于使模型的知识保持最新,并追踪生成答案的依据,从而在确保可靠性方面做出贡献。
WORKED EXAMPLES
讲解示例
- 案例 1: 传统 LLM 方式 - 若提问“告诉我今天的新闻”,因无法获知训练数据之后发生的事件,存在生成错误信息的风险。
- 案例 2: RAG 方式 - 当提问“告诉我今天的新闻”时,1) 检索器 (Retriever) 通过外部搜索引擎或实时新闻 API 收集相关报道,2) 将其作为上下文 (context) 包含在内传递给 LLM,从而生成准确的最新信息回答。
LAB PROTOCOL
RAG 架构流程可视化与分析
- 1
打开 Jupyter Notebook,对 RAG 基本流水线的 3 阶段(输入、检索、生成)结构进行绘图。
- 2
从开源授权文档语料库中提取 5 个短文本,制作数据集样本。
- 3
编写简单的关键词匹配检索器 (Retriever) 函数,实现根据问题返回对应文档。
- 4
通过代码编写将检索到的文档注入提示词模板的增强阶段。
安全检查
- 绝不使用实际个人信息或机密文档作为语料库数据。
- 使用 API 时确认调用次数限制 (Rate Limit),并在测试代码中设置种子 (seed) 值以确保可重现性。
实验提交物
- RAG 架构图 (包含在 Notebook 单元中)
- 简单的基于关键词的检索器实现代码
- 文档注入型提示词生成结果
ASSIGNMENT
基于 RAG 的信息检索流水线分析报告
提交物
评分标准
- RAG 的 3 阶段(检索、增强、生成)是否被准确区分并解释?
- 对于检索阶段可能检索到无关文档的分析是否合理?
- 是否遵守非公开数据安全指南进行实现?
KNOWLEDGE CHECK
理解检查
FIELD CHECK
完成标准
- 能够解释 RAG 架构的组件。
- 确认实操的 RAG 流水线代码正常运行,能够检索并增强相关文档。
- 在分析报告中描述 RAG 流水线的局限性与改进方向。
MODULE SOURCES
本模块参考资料
- Stanford CS 224N | Natural Language Processing with Deep Learningweb.stanford.edu · university
- Natural Language Processing with Deep Learning CS224N/Ling284web.stanford.edu · university