ragas修改

🔒 You must be logged in as an Administrator or Editor to listen to this audio.

这份文稿是上一部分内容的延续,主要从代码实战应用综合评分标准以及系统优化策略三个维度,深入讲解了如何将 RAG 评估落地并在发现问题后进行调优。

以下是核心内容的详细总结:

一、 评估框架 (Ragas) 的实战应用

在实际代码中,使用 Ragas 框架进行评估通常遵循一套固定的“套路”:

  1. 准备数据:针对实际项目(如金融助手),通常只需要准备**“用户问题”和对应的“参考答案”。将问题输入给你的 RAG 系统,系统会自动生成“检索的上下文”“最终回答”**。
  2. 构建数据集:将上述四个要素(问题、参考答案、上下文、最终回答)组合成 Ragas 框架要求的数据集格式 (Dataset)。
  3. 配置与执行:导入所需的大模型 (LLM) 和嵌入模型 (Embedding),配置需要评估的指标,执行评估操作。
  4. 结果输出:将评估结果转换为 Pandas 数据表,并导出为 CSV 文件,方便直观地对比各项指标的得分。

二、 综合评估:F1 分数与行业参考标准

在实际应用中,很难同时达到完美的“高召回率”和“高精度”,通常的妥协状态是**“高召回率 + 中等精度”**(宁可多找点废话,也不能漏掉关键信息)。

为了综合比较不同模型或不同时期的检索效果,引入了 F1 分数

  • 作用:它是精度 (Precision) 和召回率 (Recall) 的调和平均值,用于在精度和召回率出现一高一低时,给出一个综合评判标准,直观判断哪种方案总体更优。

行业常规的指标参考线(经验值): | 评估指标 | 优秀标准 | 及格/中等标准 | 较差标准 | | :--- | :--- | :--- | :--- | | 上下文召回率 (Recall) | ≥ 0.9 (医疗/法律等严谨领域需极高) | - | - | | 上下文精度 (Precision) | ≥ 0.8 | 0.5 - 0.8 | < 0.5 | | 忠实度 (Faithfulness) | ≥ 0.9 (不能有幻觉) | - | - | | 答案相关性 (Relevance) | ≥ 0.9 (不能答非所问) | - | - |

三、 指标偏低的原因及“对症下药”优化策略

如果评估跑出来的分数不理想,需要根据具体指标去反推问题所在:

1. 检索阶段问题(针对上下文)

  • 召回率低(找不全)
    • 原因:知识库本身缺失该信息、嵌入(Embedding)模型能力不足、检索策略设置返回的文档数量过少。
    • 优化:扩充/更新知识库、更换更高维度的嵌入模型、采用多路召回策略。
  • 精度低(找得不准、噪声大)
    • 原因:相似度阈值设置太低(召回了太多无关文档)、文档分块(Chunking)过大或过小、索引构建不合理。
    • 优化:优化分块策略、使用重排序 (Rerank) 技术、调整检索相似度阈值。

2. 生成阶段问题(针对最终答案)

  • 忠实度低(胡编乱造)
    • 原因:检索到的上下文太长导致关键信息被稀释(大模型抓不住重点)、提示词(Prompt)约束力不够。
    • 优化:在 Prompt 中加强约束(“严格基于以下上下文回答”)、精简和提炼送给大模型的上下文。
  • 答案相关性低(答非所问)
    • 原因:大模型没有理解用户的真实意图,特别是面对复杂多步的问题。
    • 优化:增加问题意图识别环节、对复杂问题进行改写 (Query Rewriting) 或拆解后再进行检索和回答。

四、 核心答疑 (Q&A) 精华总结

  • 上下文与文档块的关系:它们本质是同一个东西。上下文就是由检索器找出来的、与问题相关的多个“文档块”组合而成的。
  • 评估的时机:通常在应用构建完成后进行系统性评估;但在开发阶段也可以对单个小模块(如单纯测检索)进行边做边测。
  • 数据更新与重新评估:知识库动态更新后,不需要全部推翻重来,只需对新增的数据进行定期抽样评估即可;如果发现某个环节(如分块策略)有严重问题,才需要推翻该环节重新构建索引。