day24 实现 RAG Pipeline(Embedding + Retrieval + Generation)

RAG(Retrieval-Augmented Generation)全面解析与实现

一、Retrieval(检索)模块

核心目标

从大规模知识库中快速准确地找到与查询相关的信息。

关键技术组件

  1. 向量嵌入(Embedding)day19
# 核心思想:将文本转换为数值向量
text → [0.12, -0.45, 0.78, ..., 0.33]  # 高维向量(如384、512、768维)

# 关键特性:
# 1. 语义相似性 → 向量距离近(如余弦相似度高)
# 2. 数学可计算性 → 支持快速向量运算
  1. 相似度计算

    • 余弦相似度(最常用):cos(θ) = A·B / (||A||·||B||)

    • 欧氏距离:d = √Σ(A_i - B_i)²

    • 点积相似度:A·B = ΣA_i·B_i

  2. 检索策略

# 1. 密集向量检索(Dense Retrieval)
#    使用神经网络模型将查询和文档映射到同一向量空间

# 2. 稀疏向量检索(Sparse Retrieval)
#    如BM25,基于词频和文档频率

# 3. 混合检索(Hybrid Retrieval)
#    结合密集和稀疏检索的优势

检索优化技术

# 重排序(Re-ranking)
# 初步检索 → 精选排序 → 最终结果

# 查询扩展(Query Expansion)
# "养生呼吸" → ["养生呼吸", "呼吸养生法", "调息方法"]

# 最大边际相关性(MMR)
# 平衡相关性和多样性,避免结果同质化

二、Generation(生成)模块

核心目标

基于检索到的信息生成自然、准确、连贯的文本回答。

生成模型类型

  1. 自回归模型
# GPT系列模型原理
P(输出|输入) = Π P(词_t | 词_1...词_{t-1}, 输入)

# 特点:
# - 从左到右生成
# - 每个词基于之前所有词生成
  1. 编码器-解码器模型
# T5、BART等模型
编码器:理解输入文本
解码器:基于编码结果生成输出

# 特点:
# - 编码器双向理解
# - 解码器自回归生成
  1. 生成策略

贪心搜索(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的最小词集中采样
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐