Milvus(@milvusio)

𝗔 𝘀𝗶𝗻𝗴𝗹𝗲 𝟭–𝟱 𝘀𝗰𝗼𝗿𝗲 𝗶𝘀 𝗮 𝗯𝗮𝗱 𝘄𝗮𝘆 𝘁𝗼 𝗷𝘂𝗱𝗴𝗲 𝗥𝗔𝗚 𝗾𝘂𝗮𝗹𝗶𝘁𝘆 𝗶𝗻 ...

8.5内容质量
𝗔 𝘀𝗶𝗻𝗴𝗹𝗲 𝟭–𝟱 𝘀𝗰𝗼𝗿𝗲 𝗶𝘀 𝗮 𝗯𝗮𝗱 𝘄𝗮𝘆 𝘁𝗼 𝗷𝘂𝗱𝗴𝗲 𝗥𝗔𝗚 𝗾𝘂𝗮𝗹𝗶𝘁𝘆 𝗶𝗻 ...

TL;DR · AI 摘要

单一评分无法准确评估RAG系统质量,应采用基于声明和问题类型的多维度分析。

核心要点

  • 使用声明级评估可识别关键参数的错误,避免高风险幻觉。
  • 按问题类型分类评分,能发现特定查询类型的异常表现。
  • Milvus支持通过字段过滤实现按问题类型分析的评分统计。

结构提纲

按章节快速跳转。

  1. 单一评分无法准确评估RAG系统质量,应采用更精细的方法。

  2. 整体评分可能掩盖高风险幻觉,且分布不均的问题未被发现。

  3. 将答案拆分为独立声明,逐一验证其是否被上下文支持。

  4. 在高风险领域,若关键参数未被支持,应阻止输出。

  5. 按查询类型分类评分,能发现特定类型问题的异常表现。

  6. Milvus实现方式

    Milvus可通过字段过滤实现按问题类型分析的评分统计。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • RAG系统质量评估
    • 单一评分的局限性
      • 掩盖高风险幻觉
      • 分布不均问题未被发现
    • 声明级评估方法
      • 拆分答案为独立声明
      • 验证声明是否被支持
    • Milvus实现方式
      • 字段过滤实现分类评分

金句 / Highlights

值得收藏与分享的关键句。

  • 整体评分可能掩盖高风险幻觉,即使答案90%基于事实,10%的错误也可能导致不可用。

    第 2 段

    ⬇︎ 下载 PNG𝕏 分享到 X
  • 声明级评估方法通过拆分答案为独立声明,逐一验证其是否被上下文支持。

    第 3 段

    ⬇︎ 下载 PNG𝕏 分享到 X
  • Milvus支持通过字段过滤实现按问题类型分析的评分统计,无需额外报告流程。

    第 6 段

    ⬇︎ 下载 PNG𝕏 分享到 X
#RAG#AI#Milvus#评估方法
打开原文

Milvus on X: "单个 1–5 分的评分并不是衡量生产环境中 RAG 质量的好方法。原因如下。首先,整体平均分数会掩盖高风险的幻觉。一个长答案可能有 90% 的内容是基于事实的,https://t.co/vWfU4GpoqL" / X

Milvus

@milvusio

单个 1–5 分的评分并不是衡量生产环境中 RAG 质量的好方法。原因如下。首先,整体平均分数会掩盖高风险的幻觉。一个长答案可能有 90% 的内容是基于事实的,但如果其余 10% 编造了一个关键参数,那么在金融、医疗或法律领域,这个答案将无法使用。平均分数仍然显示为 5 分中的 4 分,团队会认为系统基本上是可靠的。其次,幻觉的分布并不均匀。平均基于事实性可能看起来健康,但某些查询类型,如数字查找或多条件问题,其幻觉程度可能远高于平均值。如果没有按查询类型进行分组,这种偏差将保持隐藏。第三,指标之间可能会相互掩盖。当你优化答案的相关性并添加类似“提供更详细的背景”的提示指令时,相关性分数确实会上升,但模型会开始依赖参数知识来填补证据的空白,而忠实度可能会下降,但不会在主要评分中体现出来。一个指标上升,另一个指标则在视线之外下降。这就是为什么基于事实性不能只进行一次检查:它必须在每次提示更改后进行监控。

更可靠的方法是按声明级别进行评估,分为以下四个步骤:

  • 原子声明提取:将完整答案拆分为独立的事实陈述。例如,“XR-2048 是一种低功耗设备,功耗为 150W,并支持热插拔”将被拆分为三个独立的声明。
  • 蕴含检查:对每个声明,测试检索到的上下文是否确实支持它。可以使用 NLI 模型或 LLM 作为裁判。
  • 量化:基于事实性 = 支持的声明数 / 总声明数。
  • 关键错误门控:在高风险工作中,如果某个关键参数的声明没有得到支持,无论整体评分多高,都要阻止答案的生成。

按查询类型对分数进行分组,而不是查看一个全局平均值。按声明查看可以告诉你比答案整体看起来是否可靠更多的信息。它会指出具体哪一句没有依据,并使调试变得更容易,因为你可以追踪每个未支持的声明到底在哪里出了问题:检索从未提取到证据,重排序器将其隐藏了,上下文窗口将其截断了,或者模型只是忽略了已有的信息。

按组进行分组设置起来非常简单。将每个评估记录标记为其查询类型,然后根据该标签进行过滤。KStore 评估记录包含如 query_type、claim_count 和 unsupported_claim_count 等字段。Milvus 可以使用标量或动态字段实现这一点,因此每个组的数字可以通过一个过滤器直接得出。这使你可以在不构建独立报告管道的情况下对结果进行切片。

如果你的 RAG 系统报告了一个单一的质量评分,请检查按声明和组别进行的详细分析对它做了什么。那个看起来很不错的数字通常无法幸存。