笃行
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
  • AI / 大模型

    • AI / 大模型
    • 大模型核心原理
    • 推理与微调优化
    • RAG 检索增强生成
    • RAG 上下文剪枝实战(Listwise Pruning 复现)
    • RAG 数据清理
    • RAG 存量数据清理
    • Agent 开发
    • Agent 运行时深水区
    • Multi-Agent 协作
    • Agent 评测与线上运营
    • AI 与游戏研发周期
    • 互动影游与长视频创作 Agent
    • LLM 应用安全
    • LLM 评测方法论
    • LLM 成本与延迟
    • 微调策略
    • AI 研发工程化

LLM 评测方法论

指标分类 · Benchmark 与数据污染 · LLM-as-judge · 人类在环 · 离线回放与回归

🧠 一句话记忆锚点

评测四象限:能力 / 安全 / 幻觉 / 格式遵从,缺一象限模型上线就翻车。公开 benchmark 分数看看就好——数据污染(train-test contamination)让它虚高;生产靠自建 Golden Set + 离线回放 + 影子流量做回归。LLM-as-judge 便宜快,但有位置偏差/长度偏差/自我偏好三大坑,要靠人类在环校准(Cohen's kappa 量一致性)。RAG 的对错交给 RAGAS 的 faithfulness / answer relevance / context precision-recall。

名词速查

首次阅读可跳过本表,直接看「场景问题」,遇到生词再回查。

本篇是评测这一组名词的总论归属页。这一组词回答同一个问题:没有编译器和单元测试的东西,你怎么知道它变好了还是变坏了。类比过来就是——把"断言相等"换成"统计地不劣于基线"。

轨迹特有的评测词(成功率分母、span 树归因)归 Agent 评测与线上运营,创作类无标准答案的评测词(rubric、一致性断言)归 创作 Agent。

名词后台类比在系统里干什么类比失效边界
评测四象限上线前的多维验收清单:功能 / 安全 / 稳定性 / 兼容性,缺一项都不能发把评测拆成能力、安全、幻觉、格式遵从四类,任一象限失守都会在生产翻车常规验收各维度可独立通过、互不牵扯;这四个象限互相拉扯——把安全卡严了会拒答正常请求(能力掉点),把格式约束加紧了会牺牲回答质量。所以不是"逐项达标",而是要定一组可接受的权衡组合
基准(Benchmark)标准跑分套件(如 TPC-C、SPEC)——横向比较不同实现公开数据集上的标准化打分,用于横向比较模型能力跑分套件的数据是公开且与被测系统无关的;LLM 基准的题目极可能已经进过模型的训练语料(见下条),所以高分可能只是背下来了。公开分数只能当"筛掉明显不行的候选"的粗筛,不能当选型依据
基准污染(Contamination)用生产数据训练又用同一批数据做测试——测试集泄漏进了训练集公开基准题目被爬进预训练语料,导致分数虚高、失去区分度数据泄漏可以靠划分时间窗、隔离数据集来彻底避免;这里你无法核查闭源模型的训练语料,所以污染不可证伪也不可排除。唯一可靠的对策是自建私有评测集——这也是 Golden Set 存在的根本原因
Golden Set(黄金评测集)回归测试集——固定一批用例,每次改动都跑一遍比对基线自建的私有评测集,覆盖真实业务分布,是判断"这次改动是好是坏"的唯一可信基线回归测试的断言是精确的(相等/不等),失败即定位;Golden Set 的判分是统计性的——单条用例的好坏往往有争议,只有整体分布的变化才有意义。所以它需要足够的样本量,且必须版本化冻结:改了评测集就没有可比基线了
LLM-as-judge用自动化打分服务替代人工评审——快、便宜、可规模化让一个模型给另一个模型的输出打分,解决人工评测太慢太贵的问题自动化打分器的规则是确定的、可审计的;judge 是一个带偏差的黑盒——它有位置偏差(偏爱靠前的选项)、长度偏差(偏爱更长的回答)、自我偏好(偏爱同源模型的输出)。它测的是"像不像好答案"而非"对不对",必须用人工标注抽样校准后才能采信
位置偏差(Position Bias)A/B 测试里选项顺序影响点击率——展示位置本身带来偏差judge 系统性偏向排在前面(或后面)的候选,与内容质量无关A/B 的位置效应可以靠随机化展示位置完全消除;这里也用交换顺序跑两遍来缓解,但代价是评测成本翻倍。而且交换后两次结论矛盾的样本(相当比例)本身就说明 judge 对这类样本无判别力,需要转人工
长度偏差 / 自我偏好打分器被无关特征带偏——像 SEO 刷长度骗排名judge 倾向给更长的回答、以及与自己同源模型的回答更高分常规打分器的特征是你选定的、可解释的;这两个偏差内生于模型本身,无法通过调 prompt 消除(只能缓解)。尤其自我偏好意味着不能用同一个模型既生成又评判——这在工程上很容易无意犯
人类在环(Human-in-the-Loop)人工抽检 + 兜底审核——自动化流程里的校准点与最后防线用人工标注一小部分样本,去校准自动评测的可靠性,并处理自动化判不了的争议样本人工抽检的标准通常明确(合规与否);这里人和人之间也会不一致——同一条回答两个标注员可能给出相反评价。所以要先用 Cohen's kappa 量出标注一致性,一致性低说明评测标准本身没定清楚,此时任何自动化都无从谈起
Cohen's kappa多个审核员判定一致率的统计量(扣除了瞎猜也会蒙对的部分)量化两个标注者的一致程度,是判断"评测标准是否清晰"的体检指标常规一致率直接看百分比即可;kappa 扣除了随机一致的基线,所以它比裸一致率低很多且更保守——90% 的一致率对应的 kappa 可能只有 0.6。别拿百分比的直觉去读 kappa 值,要按公认区间解读(0.6~0.8 算可接受)
格式遵从(Format Compliance)接口契约校验——返回值必须符合约定的 schema评测模型能否稳定输出可解析的结构(JSON、指定字段、枚举值)接口契约由类型系统与序列化库保证,符合率是 100%;模型的格式遵从率永远小于 100%,且长尾失败不可预测(漏个引号、多段解释文字)。所以下游必须有解析失败的重试与降级路径,不能假定它一定合法
离线回放(Offline Replay)用线上流量录制回放做回归——真实分布、零线上风险拿历史真实请求重新跑一遍新版本,比对结果变化常规回放能精确比对响应是否一致;这里模型输出天生不确定,两次跑同一输入结果就不同,所以比对的是指标分布而非逐条相等。且回放无法覆盖"新版本会引出新用法"这类变化
影子流量(Shadow Traffic)双跑但不对外返回——新版本吃真实流量,结果只记录不生效让新版本并行处理真实请求,结果不返回给用户,只用于对比评估常规影子对比的是明确的正确性与性能;这里没有实时的对错标签——你只知道两个版本答得不一样,不知道谁对。所以影子期需要配合抽样人工标注,否则采集到的只是差异量而不是质量

本篇引用的其他上下文名词

名词在本篇里的角色完整解释去哪读
RAGAS / faithfulness / context precision-recallRAG 专用的分环节指标RAG · 名词速查
成功率分母 / 轨迹级 judge / span 树归因 / 灰度回滚判据Agent 多步轨迹特有的评测问题Agent 评测与线上运营 · 名词速查
rubric 打分 / 一致性断言 / 人评抽样无 golden answer 的创作类任务评测创作 Agent · 名词速查
灾难性遗忘 / 评测回归微调前必须备好基线的原因微调策略选型 · 名词速查

场景问题

模型迭代了一版,如何证明"新版比旧版好"?这是所有 LLM 落地都绕不开的问题,而它比传统 ML 的评测难得多:

  • 输出是开放文本:没有唯一正确答案,accuracy 这种硬指标常常失效。
  • 一个 prompt 多个维度:同一条回答可能"能力对但格式错"、"流畅但幻觉"、"正确但不安全"。
  • 公开分数不可信:模型可能在预训练时"背过"测试集(数据污染)。
  • 人工评测贵且慢:几千条样本靠人打分,成本高、还不稳定。

评测指标的四象限

任何一次评测都应把待测能力拆进四类,单看一类都会漏:

象限关注典型指标 / 方法
能力 (Capability)任务做得对不对准确率、EM/F1、pass@k(代码)、BLEU/ROUGE(弱信号)、LLM-as-judge 打分
安全 (Safety)是否越界、有害、可越狱拒答率、越狱成功率、毒性/偏见检测、红队对抗
幻觉 (Hallucination)是否编造事实事实一致性、引用可溯源、RAGAS faithfulness
格式遵从 (Format)是否守约(JSON/长度/语言)Schema 校验通过率、字段完整率、指令遵从率

口诀:能力对、安全稳、不幻觉、守格式——四关全过才叫"好",任何一关单独刷高分都是自欺。

实现方案

指标计算:从硬指标到 LLM-as-judge

不同任务用不同层次的指标,成本与信噪比是权衡的核心:

# 三层评测策略:硬匹配 → 规则校验 → LLM 裁判
def evaluate_sample(pred: str, gold: dict) -> dict:
    scores = {}

    # 1) 硬指标:有唯一答案时最可信、最便宜(分类/抽取/代码)
    if gold["type"] == "exact":
        scores["exact_match"] = int(pred.strip() == gold["answer"])

    # 2) 格式遵从:JSON Schema / 正则强校验,机器判定不需要模型
    if gold.get("schema"):
        scores["format_ok"] = validate_schema(pred, gold["schema"])

    # 3) 开放题:无唯一答案 → LLM-as-judge 按 rubric 打 1~5 分
    if gold["type"] == "open":
        scores["judge"] = llm_judge(
            question=gold["question"],
            answer=pred,
            reference=gold.get("reference"),   # 给参考答案能显著降方差
            rubric="事实正确性/相关性/完整性各1~5分,给出理由再给分",
        )
    return scores

优先级:能用硬指标绝不用模型;能用规则校验绝不用人工;只有开放题才动用 LLM-as-judge 或人类。

LLM-as-judge 的偏差与校正

用一个强模型给另一个模型的输出打分,快且便宜,但它不是中立的,三大系统性偏差必须校正:

偏差现象校正手段
位置偏差 (Position bias)成对比较时偏向排在前面(或后面)的答案两次交换顺序各判一遍,只有两次结论一致才算数;不一致判平局
长度偏差 (Length/Verbosity bias)偏爱更长、更啰嗦的回答rubric 里显式约束"简洁不扣分";或控制长度后比较
自我偏好 (Self-preference)裁判偏爱与自己同源/同风格的输出裁判换用不同家族的模型;多裁判投票;关键场景人工复核

其他稳态手段:给参考答案(降主观方差)、要求先说理由再打分(CoT 提升一致性)、固定低温度、多裁判取中位数。

打个比方:三层评测策略像做菜试吃——离线基准 / Golden Set 是自家厨房里让小徒弟按标准答案挨个"试菜盘"(硬指标又快又便宜);在线 A/B 与影子流量是把两道菜真端上门店对比顾客反馈(生产真实分布);LLM-as-judge 则是花小钱请一位"米其林评委"按 rubric 打分,能几秒钞级把千级样本判完。类比失效边界:真实米其林评委也会有个人偏好,LLM 裁判身上是三个系统偏差——偏爱排在前面的答案(位置偏差)、偏爱更啰嗦的答案(长度偏差)、偏爱和自己同源风格的答案(自我偏好);所以关键场景仍要先用人-人 kappa 校准 rubric、再用机器-人类 kappa 验证裁判,并做"位置反转 + 多评委投票"消偏,绝不能拿单一裁判的分数当上线门禁。

人类在环与标注一致性

LLM-as-judge 再好也要用人类校准。核心问题:多个标注员打分一致吗? 用 Cohen's kappa 衡量——它剔除了"瞎猜也能蒙对"的部分:

# Cohen's kappa: 衡量两个标注员一致性,扣除随机一致的成分
def cohen_kappa(po: float, pe: float) -> float:
    # po = 实际一致比例;pe = 随机情况下期望一致比例
    return (po - pe) / (1 - pe)

# 经验区间:<0.2 极差 | 0.2~0.4 一般 | 0.4~0.6 中等 | 0.6~0.8 好 | >0.8 极好
# 若人类之间 kappa 都上不去 → 说明 rubric 本身有歧义,先修标准再评模型

落地闭环:先让人类标一批 Golden Set → 算人-人 kappa 确认标准清晰 → 让 LLM-as-judge 判同一批 → 算机器-人类 kappa,达标(如 >0.6)才敢用裁判大规模跑,否则继续调 prompt 或回退人工。

离线回放 / 影子流量 / 回归测试

生产迭代靠三件套锁住"不退化":

  • 回归测试:每次改动都在 Golden Set 上跑,任一象限指标掉了就拦住(CI 门禁)。
  • 离线回放:把线上真实请求录下来,改版后原样重放,对比新旧输出差异(diff 审查 + 打分)。
  • 影子流量 (Shadow traffic):新版和旧版并行处理真实请求,新版结果不返给用户只记录对比,零风险验证。

Golden Set 构建

Golden Set 是一切回归的基石,构建要点:

  • 来源真实:主体来自线上真实 query,而非拍脑袋编造。
  • 分层覆盖:典型 case + 边界 case + 已知失败 case(历史 bug 全部沉淀进来防回归)。
  • 规模适中:100~500 条起步,覆盖各能力象限;宁少而精。
  • 带标准答案/rubric:每条标注期望输出或评分标准,支撑自动打分。
  • 版本化 + 定期刷新:随业务演进补充新场景,剔除失效样本,像代码一样管理。

为什么这么做

为什么公开 benchmark 分数不能全信:数据污染

MMLU、GSM8K、HumanEval 这些榜单分数常被拿来营销,但存在致命的 train-test contamination(数据污染):

  • benchmark 的题目和答案早已散落在互联网上,很可能进了模型的预训练语料——模型不是"会做",而是"背过"。
  • 表现为榜单虚高但换个说法就崩:改写题目、换数字、换语言,分数断崖式下跌。
  • 应对:用私有 / 新构造的评测集;做改写鲁棒性测试(同题换表述);关注发布日期晚于模型训练截止的新 benchmark;生产决策以自建 Golden Set为准。

为什么要分四象限而不是一个总分

一个"综合分"会掩盖致命短板:一个能力 90 分但越狱率 30% 的模型绝不能上线。安全和幻觉是"一票否决"象限,不能被能力的高分平均掉。分象限评测才能设"任一象限不达标即拦截"的门禁。

为什么 LLM-as-judge 值得用(尽管有偏差)

  • 成本/速度:人工评一条几分钟几块钱,LLM 裁判几秒几厘钱,能把评测规模扩大千倍。
  • 可复现:固定 prompt + 温度后可重复运行,人类会疲劳、会漂移。
  • 前提是校准:只要用 kappa 证明它和人类判断足够一致,就能放心替代大部分人工——把人力省下来盯真正模糊的 case。

为什么别的选择不行

只用传统文本相似度指标(BLEU / ROUGE)不行

  • BLEU/ROUGE 只算 n-gram 重叠,跟"意思对不对""有没有幻觉"几乎无关。
  • 换个同义表达、调下语序,分数就变,但语义没变——与人类判断相关性弱。
  • 只适合翻译/摘要做弱参考信号,绝不能当开放问答的主指标。

只跑公开 benchmark 不行

数据污染 + 分布不匹配(你的业务场景不在 benchmark 里)→ 榜单第一的模型在你的场景可能垫底。必须自建反映真实业务的评测集。

只靠人工评测不行

贵、慢、不一致(不同人、不同时间打分漂移)、不可复现、无法进 CI。规模一大就崩,只能用于校准裁判和抽查模糊 case。

只靠 LLM-as-judge 不做人类校准不行

不校准就用裁判,等于用一个有系统性偏差、且可能和你需求不对齐的黑盒下判决。位置/长度/自我偏好偏差会让结论失真——必须先用 kappa 证明它靠谱。

与 RAG 评测的边界

本文讲通用 LLM 输出评测;RAG 系统的对错要用专门指标,见 RAG。 RAGAS 三件套针对"检索增强"这一特有环节:

RAGAS 指标衡量什么归属象限
Faithfulness(忠实度)答案是否只基于召回的上下文,没编造幻觉
Answer Relevance(答案相关性)答案是否切题、不跑偏能力
Context Precision / Recall(上下文精度/召回)检索到的片段是否该来的都来了、不该来的别来检索质量(RAG 特有)

边界划分:Context precision-recall 评的是检索器,通用 LLM 评测管不着;而 faithfulness、answer relevance 本质是"幻觉"和"能力"象限在 RAG 场景的具体化。做 RAG 就两套一起上,分别定位"是检索的锅还是生成的锅"。

与 Agent 评测的边界

本文讲的是「一次输出」的评测;Agent 的「一条多步轨迹」另有一套特有问题,见 Agent 评测与线上运营。 分工如下:

归本文(通用方法论)归 agent-evaluation-ops(轨迹特有)
指标四象限、三层指标体系成功率的分母口径与异常归桶、部分成功计分
基准选择与数据污染Golden Set 的线上回捞与过拟合检测
LLM-as-judge 三偏差与 kappa 校准(总论)轨迹上的正确路径不唯一、判分粒度选择、步级归因
人类在环与标注一致性轨迹级 span 可观测(gen_ai.*)、影子/灰度/回滚判据

一句话记边界:本文回答"这个答案好不好",那篇回答"这条轨迹在哪一步开始不好、线上怎么发现"。 judge 的位置/长度偏差在多步轨迹上会被放大(长轨迹的中间步骤给分失真),校正手段也随之变化——那部分在那篇里展开。

沉淀结论

速记

评测 = 四象限(能力/安全/幻觉/格式)× 三层指标(硬匹配→规则→LLM/人类)。公开榜单防污染,生产靠 Golden Set + 离线回放 + 影子流量做回归门禁。LLM-as-judge 校三偏差(位置/长度/自我偏好)、用 kappa 对齐人类。RAG 的对错交给 RAGAS。

面试高频题清单

  • Q:LLM 评测分哪几类指标? A:能力(对不对)、安全(越不越界)、幻觉(编不编)、格式遵从(守不守约)四象限;安全和幻觉是一票否决,不能被能力高分平均掉。
  • Q:为什么公开 benchmark 分数不能全信? A:train-test contamination——题目答案早进了预训练语料,模型是"背过"不是"会做",改写换数就崩;生产要用私有 Golden Set + 改写鲁棒性测试。
  • Q:LLM-as-judge 有哪些偏差?怎么校正? A:位置偏差(交换顺序两判一致才算)、长度偏差(rubric 约束简洁不扣分)、自我偏好(换不同家族模型/多裁判投票 + 人工复核);再配给参考答案、先说理由再打分、低温度。
  • Q:Cohen's kappa 是什么?评测里干嘛用? A:衡量两标注员一致性、扣除随机蒙对的成分,(po-pe)/(1-pe);>0.6 算好。用来先确认人-人标准清晰,再验证机器-人类一致后才敢大规模用裁判。
  • Q:离线回放、影子流量、回归测试区别? A:回归测试在 Golden Set 上跑防指标退化(CI 门禁);离线回放录真实轨迹改版后重放对比;影子流量新旧版并行处理真实请求但新版不返给用户,零风险验证。
  • Q:RAG 怎么评?和通用评测什么关系? A:用 RAGAS——faithfulness(忠实/幻觉)、answer relevance(相关/能力)、context precision-recall(检索质量,RAG 特有);前两者是通用象限在 RAG 的具体化,precision-recall 专评检索器,两套一起上定位是检索还是生成的锅。

记忆口诀

  • 四象限:能力 / 安全 / 幻觉 / 格式遵从(安全+幻觉一票否决)
  • 三层指标:硬匹配 → 规则校验 → LLM/人类裁判(越往下越贵,能上层别下沉)
  • judge 三偏差:位置 / 长度 / 自我偏好(交换顺序 + rubric + 换家族模型)
  • 回归三件套:Golden Set 回归 / 离线回放 / 影子流量
  • 信不信榜单:污染让它虚高,改写就崩,生产只信私有集
  • RAGAS 三指标:faithfulness / answer relevance / context precision-recall

内容来源

综合整理自 OpenAI Evals / RAGAS / HELM / MT-Bench / Chatbot Arena 等公开资料与自研评测平台经验

综合整理:OpenAI Evals、RAGAS、Stanford HELM、LMSYS Chatbot Arena、Anthropic 评测实践(2026-07;评测生态更新快,请以官方文档为准)

自测:合上资料能说清楚吗?

  1. LLM 评测的四类指标象限是什么?为什么不能只看一个综合总分?
参考答案

能力 / 安全 / 幻觉 / 格式遵从。不能只看总分是因为安全和幻觉是一票否决象限——一个能力 90 分但越狱率 30% 的模型不能上线,总分会把致命短板平均掉。分象限才能设"任一象限不达标即拦截"的门禁。

  1. 什么是 train-test contamination?它如何影响 benchmark 分数,怎么应对?
参考答案

数据污染:benchmark 题目答案早已进了模型预训练语料,模型是"背过"而非"会做",表现为榜单虚高但改写换数就崩。应对:用私有/新构造评测集、做改写鲁棒性测试、关注训练截止后发布的新 benchmark、生产以自建 Golden Set 为准。

  1. LLM-as-judge 有哪三大偏差?各自的校正手段是什么?
参考答案

位置偏差(偏爱某个位置)→ 交换顺序各判一遍、两次一致才算数;长度偏差(偏爱啰嗦答案)→ rubric 显式约束简洁不扣分;自我偏好(偏爱同源输出)→ 换不同家族模型当裁判、多裁判投票 + 人工复核。此外给参考答案、先说理由再打分、固定低温度也能降方差。

  1. Cohen's kappa 是什么,为什么评测里要用它而不是直接算"一致比例"?
参考答案

kappa = (po - pe)/(1 - pe),扣除了随机蒙对的一致成分。直接算一致比例会被"瞎猜也能蒙对"虚高,kappa 更真实。用途:先确认人-人 kappa 高(rubric 无歧义),再验证机器-人类 kappa 达标(如 >0.6)才敢大规模用 LLM 裁判。

  1. 离线回放、影子流量、回归测试三者的区别?RAG 系统又该用什么评?
参考答案

回归测试在 Golden Set 上跑防指标退化(CI 门禁);离线回放录真实用户轨迹、改版后原样重放对比;影子流量新旧版并行处理真实请求但新版结果不返给用户、只记录对比(零风险)。RAG 用 RAGAS:faithfulness(幻觉)、answer relevance(能力)、context precision-recall(检索质量,RAG 特有),定位是检索还是生成的锅。

最近更新: 2026/9/10 11:38
Prev
LLM 应用安全
Next
LLM 成本与延迟