大模型算法实习-RAG梳理
1. RAG 是什么
RAG(Retrieval-Augmented Generation),中文叫检索增强生成,是当前大模型的重要技术路线之一。
核心思想:
“让大模型具备外部知识库,提升事实性和领域适应性。”
大语言模型(LLM)在预训练时固定了知识,更新困难,容易幻觉。
RAG 在生成答案前会先检索外部知识库,再把相关文档拼接到 Prompt 中交给大模型,从而得到更准确、可控的输出。
RAG 工作流程
-
Embedding 向量化
用向量模型(如 BERT、E5、SimCSE)将知识库文档转为向量。 -
向量检索
根据用户 Query,检索 Top-K 相关文档(Faiss、Milvus、Elasticsearch)。 -
上下文拼接
将检索到的内容拼接进 Prompt,形成 Context + Question。 -
LLM 生成
大模型基于补充知识生成答案。
公式上可以写成:
2. RAG 的优势
| 对比维度 | 直接用LLM | RAG |
|---|---|---|
| 知识范围 | 固定,更新困难 | 可动态扩展外部知识库 |
| 事实性 | 容易幻觉 | 基于真实文档,准确度高 |
| 领域适配 | 需微调模型 | 无需微调,仅更新知识库 |
| 成本 | 高 | 相对低 |
| 可解释性 | 弱 | 可以返回引用文档 |
3. RAG 面试高频考点
(1) 原理类问题
考察你对概念、机制的理解
1. 什么是 RAG?为什么大模型需要检索增强?
A:
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合向量检索和大模型生成的技术,让模型在回答问题时动态接入外部知识库,从而提高事实性、可解释性和领域适应性。
核心思想公式:
-
:用户查询
-
:检索到的文档
-
:候选文档集合
-
:相关性概率
-
:基于文档生成答案的概率
为什么需要检索增强:
-
大模型参数静态 → 知识无法实时更新
-
原始预训练数据有限 → 专业/小众领域知识不足
-
减少“幻觉”(生成不符合事实的内容)
-
降低训练成本 → 无需全量微调,只需维护知识库
一句话总结:
“RAG通过检索+生成,让大模型像‘带了外接硬盘’,既懂上下文,又能接入最新知识。”
2. RAG 的典型架构是什么?核心组件有哪些?
A:
典型 RAG 架构分为四层:
(1) 文档向量化层
-
模型:BERT、E5、SimCSE、text-embedding-ada-002
-
作用:将文档切分为 chunk,转为向量:
(2) 向量检索层
-
引擎:Faiss / Milvus / ElasticSearch / Pinecone
-
计算相似度:
-
找出 Top-K 最相关文档。
(3) 上下文拼接层
-
把检索到的文档
拼接到 Prompt:
(4) 大模型生成层
-
模型:LLaMA、ChatGLM、Qwen、GPT 等
-
基于扩展后的 Prompt 生成答案:
核心组件总结:
-
Embedding 模型(向量化)
-
向量数据库(检索)
-
大语言模型(生成)
-
上下文拼接器(提示工程)
“RAG 架构是 Embedding + Retrieval + Prompt + LLM,可直接对接外部知识库。”
3. RAG 如何解决大模型幻觉问题?
A:
大模型“幻觉”是因为:
-
模型只依赖训练时的静态知识
-
在不确定或缺失知识的场景下会“编造”答案
RAG 的解决方案:
-
检索增强事实性
-
动态引入外部文档,限制答案空间
-
-
上下文可控
-
把真实文档拼接到 Prompt,模型按事实生成
-
-
可解释性
-
可以返回引用文档,提高结果可验证性
-
“RAG 在生成前引入真实检索文档,把答案建立在可验证事实上,从而显著降低幻觉概率。”
4. 检索的向量模型是怎么训练的?用什么指标评估?
A:
(1) 训练方法
-
有监督(MS MARCO、NQ 数据集):
-
正例:
-
负例:
-
损失函数(对比学习):
为温度参数。
-
-
无监督:SimCSE、E5,通过同一文本 dropout 前后增强,做自对比。
(2) 评估指标
-
Recall@K(召回率):
其中 表示相关文档集合,
表示前 K 检索结果。
-
MRR(平均倒数排名):
-
nDCG(归一化折损累计增益):
总结回答:
“向量模型一般用对比学习训练,常用 Recall、MRR、nDCG 来评估检索相关性。”
5. RAG 的 Top-K 检索数量怎么选?K 大小对生成效果有何影响?
A:
(1) K 太小
-
缺点:覆盖不足,可能检不到关键信息 → 幻觉率升高
-
优点:Prompt 短,推理快
(2) K 太大
-
缺点:噪声信息增多,影响生成质量,Prompt 太长导致上下文冲突
-
优点:召回率高
(3) 平衡方法
-
一般经验:K=3~5
-
通过实验找最优 K:
-
也可做 Rerank 策略:
-
初检大 K(比如 20)
-
用 cross-encoder 排序
-
最终拼接前 K’(比如 5)
-
“K 需要在信息覆盖率和噪声控制之间折中,一般先大取 K,再 rerank 筛选 K’。”
待补充实践类面试题
更多推荐


所有评论(0)