【AIGC】大模型面试高频考点-RAG篇
(1)RAG的基本原理
RAG 检索增强生成由2部分构成:一是离线对异构的数据进行数据工程处理成知识,并存储在知识库中,二是基于用户的提问进行知识库的检索增强。详细步骤如下:
- 加载文件
- 读取文本
- 文本分割
- 文本向量化
- 问句向量化
- 在文本向量中匹配出与问句向量最相似的top k个
- 匹配出的文本作为上下文和问题一起添加到 prompt中
- 提交给LLM生成回答
原理如下图所示:
RAG Prompt模版
已知信息:{context}
根据上述已知信息,简洁和专业的来回答用户的问题。如果无法从中得到答案,请说 “根据已知信息无法回答该 问
题” 或 “没有提供足够的相关信息”,不允许在答案中添加编造成分,答案请使用中文。
问题是:{question}
(2)RAG有哪些评估方法?
主要有两种方法来评估 RAG 的有效性:独立评估和端到端评估。
(一)独立评估
介绍: 独立评估涉及对检索模块和生成模块(即阅读和合成信息)的评估。
(1)检索模块:
介绍: 评估 RAG 检索模块的性能通常使用一系列指标,这些指标用于衡量系统(如搜 索引擎、推荐系统或信 息检索系统)在根据查询或任务排名项目的有效性。
评估指标: 命中率 (Hit Rate)、平均排名倒数 (MRR)、归一化折扣累积增益 (NDCG) 、**精确度 (Precision) **等。
(2)生成模块:
介绍: 生成模块指的是将检索到的文档与查询相结合,形成增强或合成的输入。这与最 终答案或响应的生成不
同,后者通常采用端到端的评估方式。
评估指标: 关注上下文相关性,即检索到的文档与查询问题的关联度。
(二)端到端评估
介绍: 对 RAG 模型对特定输入生成的最终响应进行评估,涉及模型生成的答案与输入 查询的相关性和一致性。
无标签的内容评估:
评价指标:答案的准确性、相关性和无害性
有标签的内容评估:
评价指标:准确率 (Accuracy) 和精确匹配 (EM)
(3)RAG有哪些评估框架?
在 RAG 评估框架领域,RAGAS 和 ARES 是较新的方法。
1.RAGAS
RAGAS 是一个基于简单手写提示的评估框架,通过这些提示全自动地衡量答案的准确性、 相关性和上下文相关 性。
算法原理:
- 答案忠实度评估: 利用大语言模型 (LLM) 分解答案为多个陈述,检验每个陈述与上下文 的一致性。最终,根 据支持的陈述数量与总陈述数量的比例,计算出一个“忠实度得分”。
- 答案相关性评估: 使用大语言模型 (LLM) 创造可能的问题,并分析这些问题与原始问题 的相似度。答案相关性得分是通过计算所有生成问题与原始问题相 似度的平均值来得出的。
- 上下文相关性评估: 运用大语言模型 (LLM) 筛选出直接与问题相关的句子,以这些 句子 占上下文总句子数量的比例来确定上下文相关性得分。
2.ARES
ARES 的目标是自动化评价 RAG 系统在上下文相关性、答案忠实度和答案相关性三个方 面的性能。ARES 减少了评估成本,通过使用少量的手动标注数据和合成数据,并应用预测 驱动推理 (PDR) 提供统计置信区间,提 高了评估的准确性。
算法原理:
- 生成合成数据集: ARES 首先使用语言模型从目标语料库中的文档生成合成问题和答案,创 建正负两种样本。
- 训练大语言模型 (LLM) 裁判: 然后,ARES 对轻量级语言模型进行微调,利用合成数据集 训练它们以评估上下 文相关性、答案忠实度和答案相关性。
- 基于置信区间对RAG 系统排名: 最后,ARES 使用这些裁判模型为 RAG 系统打分,并结 合手动标注的验证集 ,采用 PPI 方法生成置信区间,从而可靠地评估 RAG 系统的性能。
(4)RAG各模块有哪些优化策略?
- 文档块切分: 设置适当的块间重叠、多粒度文档块切分、基于语义的文档切分、文档块摘要。
- 文本嵌入模型: 基于新语料微调嵌入模型、动态表征。
- 提示工程优化: 优化模板增加提示词约束、提示词改写。
- 大模型迭代: 基于正反馈微调模型、量化感知训练、提供大context window 的推理模型。此外,还可对query召回的文档块集合进行处理,如:元数据过滤、重排序减少文档块数量。