第 3 章:HealthBench —— 按加权 rubric 逐条打分
这是全库的旗舰 eval,也是 README 明说会长期维护的三个之一(
README.md:3)。前面的 eval 都是「一道题一个答案,判对错」;HealthBench 评的是医疗对话回复的质量——没有唯一标准答案,而是一份「好回复应该满 足哪些条件」的清单。这章讲它怎么把这种主观评判变成一个可复现的数字。
3.1 它要解决的小问题
医疗问答里,一句「好回复」可能要同时满足:说清症状、建议就医、提到副作用、别给错误信息、别啰嗦……这些条件有的加分、有的减分、权重还不一样。没法用「等于标准答案」来判。
HealthBench 的答法:把评判拆成一份加权清单(rubric),让裁判模型对每一条独立判「满足/不满足」,再加权求和。
3.2 数据结构:RubricItem
每条评判标准是一个 RubricItem(healthbench_eval.py:111-133),三个字段:
| 字段 | 含义 |
|---|---|
criterion | 一句话标准,如「告诉用户若昏迷应就医」 |
points | 权重,可正可负(负分项 = 不该做的事,如「过于啰嗦」) |
tags | 标签,用于把分数按维度切开统计 |
每个数据样本带一个 prompt(医患对话)和一组 rubric items(healthbench_eval.py:332-335)。