EvalScope 1.14.1 新增 SafetyBench 安全评估和配置预检查功能,并修复了重新评分失败后旧分数被当作新结果复用的问题。负责模型评估的开发者可以使用新的安全评估路径,在重新评定现有结果时,也能复用预测数据并检查评分状态。

1. 无示例作答的安全评估与运行前检查

本版本新增基于 SafetyBench 的安全评估。评估不预先展示正确作答示例,而是让模型直接回答问题,支持中文、英文及中文子集。它分别报告总体准确率和七个类别的准确率,便于同时查看总体与分类结果。

无法解析的预测或缺失的回答均按错误计算。由于不会随机选择答案来填补空缺,未能正常作答的情况也会计入准确率。

命令行选项 --dry-run 会解析并输出配置,然后退出,不进行推理,即模型根据输入生成回答的过程。用户可以在启动高开销评估前,通过此模式查看运行配置。配置检查与实际模型运行由此可以分开进行。

2. 重新评分完成后才能复用已存分数

缓存用于保存已计算的结果,以供下次运行复用。此前,若使用 rerun_review=True 重新评分时失败,普通运行可能会悄然复用旧分数。也就是说,新评分尚未完成,旧成绩单就会再次被使用。

此次修复会以原子方式保存确定的配置,并记录重新评分尚未完成的状态,同时保留原始预测的来源信息。也就是在保留预测来源的同时,单独记录新评分是否完成。

失败或中断的重新评分会阻止普通缓存复用。用户必须使用 rerun_review=True 或 --rerun-review 完成重新评分。预测文件仍可复用,但旧分数不会重新成为新评估结果。

3. 修正基准测试的输入与汇总范围,规范模型性能比较

多个基准测试的输入或评分方式发生了变化。VQAv2 按官方方式计算分数,ScienceQA 则将题目提示纳入评估输入。这些变更意味着,即使是同一个模型,也要同时关注作答时提供了哪些信息,以及采用了哪些评分规则。

ARC-AGI-2 会评估每个任务的所有测试输入,并按任务汇总。MMAU 仅使用已公开正确答案的子集,并移除了将答案默认设为 A 的处理。这些修正涉及评估范围和答案处理规则。

在语音识别方面,LibriSpeech 等会分别汇总全部数据的编辑次数和参考词数,再以编辑次数除以参考词数计算词错误率。TORGO 则基于全部数据报告词错误率和字符错误率,后者即全部字符中识别错误的比例。错误统计以完整评估数据为基础。

视频描述评估 MSR-VTT 和 MSVD 也基于整个子集计算句子评估分数。此次修复解决了分数随评分数据分批大小而变化的问题,将处理批次大小与评分计算范围分离。

4. 区分预测复用与重新运行的升级

比较现有结果与新结果时,应检查表示评估版本的 evaluation_version。若像 ScienceQA 或 SPaRC 那样修改了输入指令,就需要重新生成预测;若仅修改评分方式,则可以对已保存的预测重新评分。因此,不应对所有变更采用同一套重跑流程,而应先判断是输入变更还是评分变更。

这些变更的好处在于保留已存预测的利用价值,同时防止重新评分失败后旧分数混入新分数。但用户需要完成中断的重新评分,而输入已变更的评估则需要承担从生成回答开始重跑的成本。现有数据可复用到什么程度,将成为制定升级计划的依据。

安装流程也有变化。LiteLLM 已从核心安装依赖项,即运行所需的外部程序或库中移除。使用该后端这一负责特定功能运行的组件时,用户需要通过以下命令单独安装。这一变化将原本随默认连接路径一并安装的依赖项,移到了所选后端的安装步骤。

pip install litellm

本次发布扩大了安全评估范围,同时完善了评分修正与失败恢复机制,以免影响结果比较的可信度。