北大202402的RAG综述
1 intro
1.1 AICG
- 近年来,人们对人工智能生成内容(AIGC)的兴趣激增。各种内容生成工具已经精心设计,用于生产各种模态下的多样化对象
- 文本&代码:大型语言模型(LLM),包括GPT系列和LLAMA系列
- 图像:DALL-E和Stable Diffusion
- 视频:Sora
- "AIGC"这一词强调内容是由高级生成模型而非人类或基于规则的方法产生的
- 基础模型的架构最初由数百万参数组成,现在已增长到包含数十亿参数
1.2 信息检索
- 检索旨在从庞大的资源池中定位相关的现有对象
- 在当前时代,高效的信息检索系统可以处理高达数十亿的文档集合
- 除了文档外,检索还已应用于其他模态
1.3 AICG的挑战
- 难以保持知识的最新性
- 无法整合长尾知识
- 泄露私有训练数据的风险
1.4 RAG
- 为了缓解上述挑战,提出了检索增强生成(RAG)
- 用于检索的知识可以被概念化为非参数记忆
- 这种形式的记忆容易修改,能够容纳广泛的长尾知识,并且还能编码机密数据
- 检索还可以用来降低生成成本
- 一个典型的RAG过程包括:
- 给定一个输入查询,检索器定位并查找相关的数据源
- 检索到的结果与生成器互动,以增强整体的生成过程
- 可以通过不同的方式与生成过程交互
- 作为生成器的增强输入
- 在生成的中间阶段以潜在表征的形式加入
- 以logits的形式贡献到最终的生成结果中
- 影响或省略某些生成步骤
- 可以通过不同的方式与生成过程交互
- 虽然RAG的概念最初出现在文本到文本的生成中,但它也已被适应于各种领域
- 代码
- 音频
- 图像
- 视频
- 知识
- 科学领域
1.5 本文贡献
- 提供了关于RAG的全面概述,覆盖了基础、增强、应用、基准测试、限制和潜在的未来方向
2 preliminary
- 整个RAG系统由两个核心模块组成:检索器和生成器
- 检索器负责从构建的数据存储中搜索相关信息
- 生成器负责产生生成的内容
2.1 生成器
- 将生成器分类为4个主要组别:Transformer、LSTM、扩散模型和GAN
2.1.1 Transformer
2.1.2 LSTM
2.1.3 扩散模型
- 扩散模型通过逐渐向数据添加噪声直至变成随机,然后反转这一过程从噪声生成新数据
- 这一过程基于概率建模和神经网络
- 扩散模型主要有三种等效表述:
- 去噪扩散概率模型
- 基于分数的生成模型
- 随机微分方程
- 记x0是一个随机变量,遵循数据分布q(x0);xt是一个在时间步t添加噪声后遵循分布q(xt|x0)的随机变量,DDPM可以如下表述:
- 前向过程
- 通过一系列高斯噪声注入扰乱数据,将数据分布q(x0)转化为一个简单的先验分布q(xT) ≈ N(0, I)
- 每个时间步的转移核由以下给出:
- βt∈(0,1)是超参数
- 反向过程
- 通过一个可学习的马尔可夫链反转前向过程,生成新的数据样本
- 反向过程从采样xT∼p(xT)开始,迭代地采样xt−1∼pθ(xt−1∣xt)直到t=0
- 模型训练
- 模型训练的目标是最大化数据x0的对数似然的变分下界(VLB)
- 前向过程
2.1.4 GAN
- 典型的GAN由两个主要组成部分:一个生成器和一个鉴别器。
- 这两部分通过对抗学习相互竞争,使得生成器不断提高其生成逼真样本的能力,同时鉴别器不断提高其区分真伪样本的能力。
2.2 检索
- 检索旨在识别和获取与信息需求相关的信息系统资源
- 存储的信息资源为
,k为键值,v为value
- 给定一个查询q,目标是使用相似度函数s搜索最相似的前k个键,并获取配对的值
2.2.1 稀疏检索器
- 广泛用于文档检索
- 利用词项匹配度量如TF-IDF、查询似然和BM2,分析文本中的词项统计并构建倒排索引以实现高效搜索
- 其中,BM25是工业规模网络搜索中难以超越的基线
- 对于包含关键词
的查询q,文档D的BM25得分是
2.2.2 密集检索器
- 使用密集嵌入向量表示查询和键,并构建近似最近邻(ANN)索引以加速搜索