Skip to main content
一个**指标(metric)**一次给一条 item 打分,并定义其逐项分数如何聚合。指标与套件解耦: 一次运行可在同一批 items 上应用多个(套件的客观分在其 evaluator 里;附加项——answered-rate、 成本效率、LLM 判定 rubric——无需 fork evaluator 即可接入)。 需要套件发出逐项 items(Evaluator.items(raw)),因为指标是对 items 打分。内置的 mmlu / gsm8k / human-eval 套件都有。

运行一个指标

在 evaluator 上绑定,或按运行 opt-in:
指标在 <suite_id>.<metric_id> 下发出测量,并给每条 item 追加一个逐项 ItemScore (4 态:ok / fail / skip / error)。指标是隔离的:一个指标在某条 item 上抛异常 会被记为 status="error" 且运行继续——绝不作废整次运行或另一个指标。

参考指标:answered-rate

确定性、无判定:被测系统实际作答的 item 比例(output 非空)。answered-rate 是它的 入口点名称;它的指标 id 是 answered_rate——写进 extra_metrics 和测量键里的是 这个 id。开箱绑定到 mmlu / gsm8k → 它们也发出 mmlu.answered_rate / gsm8k.answered_rate。一个模型可以在它作答的部分很准, 却答得很少。

写你自己的

注册并绑定或 opt-in:
required_inputs 按 item 校验:缺必需字段的 item 记为 skip(不计入聚合),绝不崩溃。 从 score_item 返回 None 表示该指标不给这条 item 打分。

聚合

默认 aggregate() 用 core.aggregate——ratio/mean(带 Wilson 或正态置信区间)、 geomean、百分位——作用于该指标的 ok/fail 分数;skip/error 不计入分母。覆写 aggregate() 做自定义形状,或发出按 group 的切片(如 MMLU 按学科)。