dalaoyang技术手记

评估器执行成功,为什么不代表结果达标

从一条结果记录讲到整份报告:拆开执行状态、类型化指标与业务判定,说明统计口径、裁判校准、Agent 行为证据,以及一次变更怎样得到可信的评审结论。

先带走这三个判断

90 秒 · 算例工作台

  1. 执行成功表示得到可用结果;指标描述表现;业务策略决定接受、阻断或复核。三者分开记录。
  2. 0 分与没有评分不同。两条有效评分的均值 0.50,要与有效覆盖 2 / 4 一起读。
  3. 比较变更先对齐样本、口径与缺失原因。均值变高,不足以单独证明系统变好。
直接看构造案例
文章目录

三个维度,回答三个不同的问题

执行状态、指标值和业务判定的三层边界
质量统计旁边,同时保留有效覆盖与失败信息。放大图表

评估报告里,一个“成功”常被用来表达好几件事:请求正常结束、得到了合法评分、回答符合要求,甚至可以发布。它们之间存在联系,却不是同一个事实。把它们压成一个状态,排查时就很难知道该修执行链路、评分标准,还是被测系统。

执行状态描述评估过程是否产出可接纳的结果。正常调用后仍要解析和校验输出;返回了一段文字,不等于得到了正式指标。失败要留下原因,必要输入不足可以标为不可评估;上游任务终止造成没有执行,也应与已经执行但失败区分。

类型化指标描述被测对象的某个属性。数值、布尔、分类、文本各有契约和解释方式。数值零、布尔 false 都可能是完全合法的结果;“没有结果”则不能借用它们表达。指标还必须绑定具体对象和评分标准,脱离这些信息,一个值无法支持判断。

业务判定决定下一步行动,例如接受、阻断或交给人工复核。它需要独立策略:哪些条件不能违反,允许什么波动,证据不足时怎么办。执行成功只表示本次结果可用,既不保证分数高,也不自动保证质量满足目标;暂时无法判定也不应该被界面强行填成通过。

样本阶段同样需要独立记录。一个样本已经走完流程,里面仍可能包含低分、不可评估或失败的评估结果。“流程完成”适合驱动运行进度,“表现达标”适合表达质量,两者的命名和筛选条件应让读报告的人看得出来。

四条构造记录,先看事实再下结论

以下记录、量表和后续门槛均为构造示意,不是真实业务样本或效果数据。这里测量的是已经产出回答的质量;C 表示评估器调用超时,并非已经确认目标任务失败。评分暂用 0–1 量表,约定数值越高表示本项表现越好。

记录执行事实正式评分解释
A成功0.2得到有效判断,本项质量较低
B成功0.8得到有效判断,本项质量较高
C失败:调用超时无没有得出本项质量判断
D不可评估:材料缺失无缺少判断所需依据

A 不能因为评分较低就改成执行失败,否则质量差的样本会从统计里消失。C 也不能因为没有评分就填入 0.2 或零分;超时说明评估没有完成,并没有给出回答质量的证据。D 需要补材料,简单重试同一个不完整输入未必会改变结果。

如果同一个评估器还声明了布尔指标“是否保留必要限制条件”,A 可以返回 false,同时保持执行成功。只有缺字段、类型错误或超出声明分类等契约问题,才使正式输出不可接纳。指标的负面结论与评估器的异常,由不同字段承担。

这四条记录本身还没有告诉我们能否发布:可能需要另一项硬约束检查,也可能需要复核材料缺失的原因。结果层先保留事实,策略层再决定如何使用事实,避免为了得到一个最终颜色而提前改写数据。

均值、覆盖率与缺失偏差必须一起读

两条有效评分的均值是(0.2+0.8)÷2=0.50;有效评分覆盖是 2÷4=50%。前者描述已经得到评分的部分,后者描述计划样本中有多少得到有效判断。报告应同时显示有效数量、计划数量、失败和不可评估原因,不能只保留一个百分比。

算例工作台 · 执行、评分与分母

修改下面的构造记录,观察统计怎样变化。正文算例以初始记录为准。

A
B
C
D

如何处理没有得到的评分?
均值0.50
有效覆盖2 / 4

本例测量已产出回答的质量:有效均值为 0.50,覆盖率为 50%,分别报告。

把两条缺失评分补零,再除以四,会得到 0.25。这把评估过程的问题混入了回答质量。若另设“计划任务成功率”,可以按预先定义把目标任务执行失败计为不成功,分母使用全部计划任务;它测量的是任务完成情况,需要独立名称与规则。裁判失败本身并不证明目标任务失败。互动中的补零选项用于展示把缺失质量分静默记零的后果。

只统计有效结果也不自动得到无偏结论。假设长材料、复杂工具链或边界问题更容易超时,被排除的可能恰好是困难样本。此时 0.50 只代表可评估子集,无法直接代表全部计划样本。覆盖率高一点,也不保证未评估部分与已评估部分相似。

我会先按预先定义的难度、输入长度或任务类型分组,查看缺失是否集中,再检查失败原因。补充重试要保留原始失败和重试次数,并对比较的两个版本采用一致策略。不能只挑失败少的一轮当成绩,也不能把补跑后的结果悄悄覆盖第一次运行。

没有有效评分时,均值应显示为空,说明为什么无法计算。需要总体结论时,可以补齐证据、做独立人工复核,或按事先约定的指标范围展示保守上下界;后一种只是敏感性分析,不是猜出缺失值。无法排除缺失偏差时,应缩小结论适用范围。

先定义测量目标和粒度,再谈多指标聚合

设计指标时,我会先写清它要测量的属性:答案是否由给定材料支持、任务终态是否正确、是否采取了未经允许的动作,还是用户能否理解结果。名字相似的“质量分”可能指向完全不同的目标。指标说明至少包括对象、量表、方向、证据来源和有效条件。

粒度决定谁获得权重。把每轮对话都当作一条记录,长对话会贡献更多分数;先对每个任务汇总、再让任务等权,则回答另一个问题。按用户、会话或工具调用统计也各有含义。选择应来自测量目标,报告里要说明,不能由数据库里哪张表最方便决定。

不同类型不能随意相加。延迟越低可能越好,完整性评分越高可能越好;分类选项只有明确排序时才具有顺序含义,文本解释也不天然对应数字。即使把数值都归一化,合成分数仍需要说明权重和补偿关系:表达清晰能否抵消事实错误?若不能,它就不该成为可相互补偿的加权项。

布尔 true_ratio 尤其容易被误命名。true 若表示“发现不支持的断言”,比例越高反而可能越差;若表示“出现引用”,也不代表引用正确。只有当布尔值明确代表业务通过条件时,才有通过率的语义。还要说明分母是有效结果、全部计划任务,还是某个适用子集。

多个评估器应分别展示覆盖。格式检查可能几乎都能执行,材料一致性评估可能只有一部分输入完整;把两者合成一个总体覆盖会遮住差异。一个评估器输出多个指标时,各指标也要保留独立含义。完整校验契约可以让同次正式指标共享明确的有效集合,但不能据此宣布它们测量的是同一件事。

输出契约约束数据,评分依据约束判断

输出契约适合检查对象结构、必需字段、类型、有限数值和分类选项。它能阻止无法解析的结果进入正式统计,却无法单独判断“这个分数是否合理”。模型返回了合法数字,只说明数据形状正确;数字的区间、尺度和业务含义仍需要额外定义。

我倾向于对一次评估器的正式输出完整校验:一个正式指标非法时,不把其他字段悄悄接纳为完整结果。好处是契约和覆盖一致,代价是牺牲部分已经返回的字段。原始输出可以用于诊断,但不应直接混入正式聚合。若确实需要部分成功,必须另行设计逐指标状态和分母。

评分依据应能让人核查。判断材料支持程度时,要能指出相关材料片段和被判断的答复部分;评价完整性时,要对应事先列出的必要要点。仅写“整体不错”很难检查裁判是否抓住目标。依据是可核查的引用、规则或终态证据,并不要求暴露模型的内部思考过程。

规则评估、模型裁判与人工各有职责

有明确可验证条件时,规则评估通常更直接:必需字段是否存在、数值是否在范围内、输出是否符合格式、工具参数是否被允许、最终状态是否满足目标。它容易复核,但检查什么就只能证明什么。字符串相等不能替代语义等价,匹配到一个关键词也不能证明限制条件被正确理解。

LLM judge 适合开放式回答的语义判断,例如内容是否由依据支持、是否遗漏关键要点、解释是否清楚。给它明确量表、参考材料和可操作的评分准则,通常比只让它“评价质量”更容易复核。面对事实争议或高代价动作,模型裁判也需要外部证据与人工判断,不能让文字流畅代替事实验证。

裁判也可能受到呈现方式影响。原论文记录了位置、冗长和自我偏好等偏差,这说明自动评分需要检查自身行为,而不能把某个裁判模型直接当作稳定真值。来源:Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena。

我的分工倾向是:规则确认能客观验证的硬条件,模型处理语义层面的比较,人工处理争议与高风险边界。三种方法并不是互相投票就能自动得到真相;要知道各自检查了什么、依赖哪些信息,以及在哪些情况下可能共同遗漏同一个问题。

延伸阅读 · 校准裁判,需要盲评、锚点与独立样本

校准先从少量有代表性的样本开始,包含明显好、明显差、容易混淆和材料不足的情况。让人工依据同一份标准独立判断,再比较与模型裁判的分歧。分歧可能来自模型,也可能暴露规则含糊或人工理解不一致;先澄清标准,再决定是否调整裁判提示。

盲评时尽量隐藏版本名、模型来源和预期优胜方。成对比较可随机安排展示顺序,并交换顺序检查判断是否改变;允许平局和无法判断,避免强迫裁判制造差异。不能向裁判提供无关的身份暗示,或让它根据答案篇幅猜测哪个版本更先进。

调整标准用的样本与最终检验用的样本应分开。反复围绕同一批例子修改提示,可能只改善对这些例子的适配。保留独立检验集,再按困难类型抽查;人工复核也应包含随机样本,不能只挑自动评分最好的记录来证明一致。

尺度漂移需要持续观察。换裁判模型、评分提示、示例或参考答案后,同一份输出的分数可能变化。可以保留固定锚点,定期重新评分并比较分布;少量重复评估帮助识别波动。若标准已经变化,应同步重评基线,或明确标记两组分数不可直接比较,不能把裁判变宽松当作目标系统进步。

延伸阅读 · Agent 评估要看到动作,也要确认终态

Agent 的最终答复只是证据的一部分。“已经完成”可能只是它说了这句话。任务成功更需要检查目标状态:应该出现的结果是否出现,不应该改变的状态是否保持,用户要求的限制是否满足。若环境状态无法读取,就应把这部分结论记为未验证。

工具行为可以另设维度:工具选择与任务是否匹配、参数是否正确、调用是否在授权范围内、是否重复产生副作用、失败后是否合理处理。选择了合适工具不保证工具执行成功;工具返回成功也不保证整个任务目标完成。动作证据和任务结果适合分别记录,再按需要组合。

过程检查也不能把唯一实现路径写死。只要满足任务目标和约束,不同顺序或不同工具可能都合理;强制匹配某条示例轨迹,会误伤有效解法。更有价值的是检查必要条件和禁止行为,同时保留过程供解释,而不是把“像参考步骤”当成成功。

对终态与轨迹分开评估,有公开方法可以参考:τ-bench 使用终态与目标状态比较;Anthropic 的官方说明也区分 transcript 与 outcome。这里借用的是证据思路,不沿用其具体场景或成绩。τ-bench 原论文;Anthropic:Demystifying evals for AI agents。

快照与版本让结果可追查,却不保证完全重现

一次 Run 在准备阶段固定本次数据集输入:样本内容、必要参考材料和选择顺序。数据集的名字只是关联关系;如果内容会变化,应为本次运行形成独立快照,避免后续步骤反复读取变化中的材料。未来运行仍应重新取得当次输入,不能让旧缓存悄悄决定它要评什么。

同时记录被测目标与评估端的版本。目标包括模型、提示、上下文组织、检索和工具配置;评估端包括规则、量表、裁判模型和关键参数。只保存一个总版本名,可能无法解释究竟哪一侧变化。检索和工具响应则在当次产生后留作评估证据,与正式结果、失败边界一起保存,并控制敏感内容和访问权限。

必须区分两种重跑:固定保存的目标输出,只重新评估它,是在比较裁判;重新调用目标系统产生输出,再评分,则是在比较整条链路。前者不能证明新目标的能力,后者也会受到外部工具状态和模型随机性的影响。运行记录要说清自己做的是哪一种。

固定输入与版本能提高可追查性,但远端模型、外部服务和环境仍可能变化;即使保留随机参数,也未必逐字重现。回放冻结响应适合隔离某个因素,却不能代替对真实服务链路的验证。可复现承诺应说明哪些材料可回放、哪些依赖只能重新调用、哪些证据尚缺。

业务门禁需要硬约束、覆盖要求和人工出口

下面构造一个材料问答的候选版本评审规则,只说明如何设计策略,不代表任何系统已经实现自动决策。目标是帮助用户获得有依据的回答,同时让证据不足的情况进入复核。门槛应在看本次结果之前约定,防止根据成绩临时移动标准。

  • 硬约束:不能泄露不应展示的材料;不得产生未经允许的外部动作。已确认违反时直接阻断,不能靠表达分数补偿。
  • 覆盖要求:每个必需评估维度有效覆盖至少达到约定水平;示意门槛为 95%,且困难子组也要有足够有效记录。这个数值是构造规则,不是通用推荐。
  • 质量要求:在可比较样本上,关键维度不出现超出事先容忍范围的退步;重大错误按独立规则处理,不由总体均值掩盖。
  • 人工复核:硬约束证据不完整、裁判明显分歧、边界样本或外部终态未验证时,输出“需复核”,说明缺什么证据。

套回四条记录,有效覆盖只有 50%,无法满足示意覆盖要求。此时应该补证据或进入复核,不是拿 0.50 均值宣布通过。A 的低分是否触发阻断,还取决于量表、错误严重性和质量门槛;执行成功本身不能回答。

策略结果应能解释:使用了哪个策略版本、依据哪些指标和覆盖、命中哪条规则、是否经过人工确认。硬约束未被证实违反,与已经证实满足,也不是一回事。明确保留接受、阻断、需复核三个出口,才能让不确定性成为可处理的工作,而非被颜色隐藏。

比较两次变更,先检查它们是否真的可比

比较前先写下改变的因素。例如只改上下文组织,就尽量固定输入快照、参考材料、目标模型、生成参数、评估规则和裁判版本。如果同时换模型、数据与裁判,总体分数即使变化,也无法归因到某项修改;它可以支持整包方案比较,却不能证明某个组件有效。

在同样本上做成对对比,记录新旧结果、差值和失败情况。对两边都有效的共同子集,报告数量、改善、退步和平局;同时列出仅旧版有效、仅新版有效、两边都缺失的数量。共同子集更便于比较,却仍可能排除了最困难的任务,不能独占最终结论。

另一个八条记录的构造例中,两轮都有七条有效结果,共同有效的 A–F 评分完全相同,均值都约为 0.5667。G 从旧轮无评分变成新轮 0.9,H 从旧轮 0.2 变成新轮无评分;独立均值却由约 0.514 升至 0.614。这个表面增加的 0.10 可能完全来自有效集合变化。仍要查 G、H 的缺失原因;A–F 不变不能证明全部任务表现不变,也没有给出显著性结论。

两轮评估的有效样本与成对比较
构造算例:有效数量相同,不能代替有效集合的比较。放大图表

还要区分真实退步与评估噪声。对差异小、接近门槛或裁判不一致的记录,可以重复生成或重复评分,并做盲审。有限样本的结论应带不确定性;区间估计或重采样也必须匹配粒度,不能把同一任务的多轮输出当成完全独立的新任务来放大样本量。

少量困难样本退步、均值却上升时,要查看任务分组与错误代价。延迟、成本和关键硬约束也应在同一评审中查看。证据不足时,“暂时无法确认改善”是合理结论;下一步是明确补什么样本、固定哪些因素、复核哪类分歧,而不是挑一项最亮眼的数字完成叙述。

把一份报告走成一次完整评审

评审从目标开始,而不是从跑分开始。先把准备改变的行为、不能退步的能力和重大错误写出来,确定样本粒度、指标含义与门禁。然后选择代表性样本,加入困难、边界与材料不足的情况,检查输入和参考答案本身是否可靠。

接着校准评估器:规则是否只检查了必要条件,模型裁判是否理解量表,人工对分歧如何解释。用独立样本检查调整后的标准,再固定目标与评估版本、输入快照和运行条件。先做小规模完整运行,确认失败能被准确记录,正式字段校验与统计口径一致。

正式运行后先审执行健康:计划数量是否对齐,失败与未执行发生在哪个边界,缺失集中在哪类任务。再看每项指标的有效集合、覆盖、分布和低分证据;随后做同样本对比,复核关键退步和裁判分歧。发现评估输入或标准错误时,先修正评估依据,不急着改目标系统。

最后按预先约定的门禁给出结论,并把剩余不确定性落实到动作:接受的依据是什么,阻断需要修哪里,需复核还缺哪类材料。保存本次版本、样本与判定证据,下一轮修改只改变已明确的因素。这样报告才能解释结论,也能指导下一步验证,而不只是留下一个无法追查的分数。

由工程实践中的判断整理,使用通用场景说明方法;示意架构、案例和数值不代表某个系统的生产验收或效果数据。

执行状态、指标值和业务判定分别报告;均值旁边必须有覆盖率。

读完,留一句在书桌上

回书桌看看

仅保存在当前浏览器。

图表

窄屏可在图内横向滑动查看细节。