RAG evaluation

LLM-as-a-Judge

在前面的课程中,我们了解了 RAG Triad 评估体系。大家可能会好奇,像 Context Precision / Context Recall 这些指标,到底是通过什么手段来具体度量的呢? 在深入讲解目前最主流的 LLM as …

TL;DR

在前面的课程中,我们了解了 RAG Triad 评估体系。大家可能会好奇,像 Context Precision / Context Recall 这些指标,到底是通过什么手段来具体度量的呢? 在深入讲解目前最主流的 LLM as …

在前面的课程中,我们了解了 RAG Triad 评估体系。大家可能会好奇,像 Context Precision / Context Recall 这些指标,到底是通过什么手段来具体度量的呢? 在深入讲解目前最主流的 LLM-as-a-Judge 之前,我们先回顾一下早期或基础阶段常用的评测手段,看看它们到底卡在哪里: - 传统自动指标(如 BLEU、ROUGE):这些指标主要靠计算生成文本与标准答案之间的“字面重叠度”来打分。但在 RAG 场景下,答案的措辞往往很灵活,即便语义完全正确,字面重合度也可能很低。所以,它们很难搞定复杂的语义和逻辑评估。 - 人工评估(Human Evaluation):这当然是最准确的“金标准”。但缺点也很致命——贵、慢、难规模化。面对成千上万条 RAG 检索与生成的测试数据,纯靠人工逐一打分是不现实的。 - 基于规则的评估:写死代码规则(比如正则匹配、关键词检测)来验证答案。这种方法虽然快,但太死板,根本应付不了开放域的自然语言问答。 为了解决“人工评估太慢太贵”与“传统自动指标太死板”之间的矛盾,业界逐渐演化出了一种新的评估范式——LLM-as-a-Judge。 简单来说,就是将一个大语言模型(通常是能力更强的闭源模型)当作“裁判员”,让它根据预设规则,自动去给另一个模型(被测模型)的答案打分。这种方法不仅解决了规模化难题,还能像人类一样从语义层面理解复杂的上下文。

核心运作模式

LLM-as-a-Judge 通常有两种工作模式,分别适用于不同的评估场景: - 无参考评估:不需要提供“标准答案”,仅根据用户指令(Query)和模型生成的答案(Answer)进行判断。适合评估主观标准,比如语气是否专业、是否包含偏见、回答是否流畅等。 - 有参考评估:除了 Query 和 Answer,还会提供“标准答案”(Ground Truth)或“检索到的上下文”(Context)。裁判模型需要对比生成答案与参考内容的一致性。适合评估事实准确性、忠实度等客观标准。

为什么在 RAG 中常用 LLM-as-a-Judge?

在 RAG Triad 的三个维度中,上下文相关性和答案相关性往往涉及复杂的语义理解,人工评估虽然准确但难以规模化。 LLM-as-a-Judge 在这里起到了“放大器”的作用: - 规模化: 它可以 24*7 全天候工作,不知疲倦,只要给够 Token 就能一直干活。 - 多维度诊断: 它不仅能给总分,还能指出具体是“事实错误”、“逻辑混乱”还是“废话太多”,帮我们精准定位 RAG 系统的瓶颈(到底是检索没找对资料,还是生成端产生了幻觉)。 但是,理想很丰满,现实很骨感,LLM-as-a-Judge好是好,但是也会存在一定的缺点,最重要的就是成本高。因为想要实践LLM-as-a-Judge做评估,如果全部都自己手搓的话,还是比较麻烦的,你需要构建数据集、生成答案(问题-答案对,问题-文档-答案对),设计LLM评判prompt,设计评分维度、设计评分量表(总分多少分、评分标准)、以及最终的数据统计。 而现在其实已经有一些成熟的框架, 帮我们做了这些事情。比如ragas、DeepEval等。

版本提示

模型、框架与接口会持续变化。涉及版本号、参数与生产配置时,请在实践前对照对应官方文档。

LLMentor系统化学习大模型应用工程

内容来自个人课程知识库备份,并经过结构化整理。技术版本持续演进,生产使用前请结合官方文档验证。