Retrieval-Augmented Generation for AI-Generated Content: A Survey
#survey
RAG 分三步
- retriever 拿到 query,在 docs 里找 retrieval result
- query 和 retrieval result 通过 augmentation 策略喂给 generator
- generator 生成期望结果
Retriever 类别(区别在于处理 query 的方式)
Sparse Retriever
把 query 按离散的词处理,使用 tf-idf, BM25, query likelihood 统计方法
Dense Retriever
把 query 直接打成 embedding,使用 contrastive learning 以提高正例相似度,减小负例相似度
RAG 有四种
Query-based RAG
直接使用查询文本检索相关文档,不需要编码成 embedding,一般直接用 BM25 / TF-IDF,通过关键字匹配来检索。效率低 + 语义匹配不足
Latent Representation-based RAG
查询先被编码成 latent representation,然后用潜在表示检索文档。一般用一个编码器(比如 BERT),然后计算表示和文档的相似度(比如余弦相似度)
Logit-based RAG
动态调整生成策略,以结合检索到的文档信息,主要是调整 logits 分布,比如增大检索到词的生成概率 / 扔进去新词 / 减少无关词的概率
Speculative RAG
通过生成多个候选文本并行进行检索,以找到最相关的文档,从而提高生成内容的准确性和相关性。这种方法的核心思想是通过“投机性”生成多个可能的输出,然后根据这些候选输出进行检索和筛选,最终生成更高质量的文本,类似 best-of-n
