RAG(Retrieval-Augmented Generation)
·
day24 实现 RAG Pipeline(Embedding + Retrieval + Generation)
RAG(Retrieval-Augmented Generation)全面解析与实现
一、Retrieval(检索)模块
核心目标
从大规模知识库中快速准确地找到与查询相关的信息。
关键技术组件
- 向量嵌入(Embedding)day19
# 核心思想:将文本转换为数值向量
text → [0.12, -0.45, 0.78, ..., 0.33] # 高维向量(如384、512、768维)
# 关键特性:
# 1. 语义相似性 → 向量距离近(如余弦相似度高)
# 2. 数学可计算性 → 支持快速向量运算
-
相似度计算
-
余弦相似度(最常用):cos(θ) = A·B / (||A||·||B||)
-
欧氏距离:d = √Σ(A_i - B_i)²
-
点积相似度:A·B = ΣA_i·B_i
-
-
检索策略
# 1. 密集向量检索(Dense Retrieval)
# 使用神经网络模型将查询和文档映射到同一向量空间
# 2. 稀疏向量检索(Sparse Retrieval)
# 如BM25,基于词频和文档频率
# 3. 混合检索(Hybrid Retrieval)
# 结合密集和稀疏检索的优势
检索优化技术
# 重排序(Re-ranking)
# 初步检索 → 精选排序 → 最终结果
# 查询扩展(Query Expansion)
# "养生呼吸" → ["养生呼吸", "呼吸养生法", "调息方法"]
# 最大边际相关性(MMR)
# 平衡相关性和多样性,避免结果同质化
二、Generation(生成)模块
核心目标
基于检索到的信息生成自然、准确、连贯的文本回答。
生成模型类型
- 自回归模型
# GPT系列模型原理
P(输出|输入) = Π P(词_t | 词_1...词_{t-1}, 输入)
# 特点:
# - 从左到右生成
# - 每个词基于之前所有词生成
- 编码器-解码器模型
# T5、BART等模型
编码器:理解输入文本
解码器:基于编码结果生成输出
# 特点:
# - 编码器双向理解
# - 解码器自回归生成
- 生成策略
贪心搜索(Greedy Search)
# 总是选择概率最高的下一个词
# 优点:速度快
# 缺点:可能陷入局部最优
束搜索(Beam Search)
# 保持多个候选序列
beam_width = 4 # 保持4个最佳候选
# 优点:质量更高
# 缺点:计算量大
采样策略(Sampling)
# 1. 温度采样(Temperature Sampling)
# temperature=0.1 → 确定性高
# temperature=1.0 → 创造性高
# 2. Top-k采样
# 只从前k个概率最高的词中采样
# 3. Top-p采样(核采样)
# 从累积概率超过p的最小词集中采样
更多推荐


所有评论(0)