LM Evaluation Harness

—Stars

广泛使用的大语言模型评测框架,将任务定义、few-shot 模板、生成参数和推理后端统一到可复现流水线,支持跨模型、跨基准的标准化比较。

Open LLM Leaderboard BackendReproducible Evaluation
EVALUATION INFRA · CONFIGURATION

让两种配置入口走同一条路

CLI 和 YAML 表达方式不同,但进入评测系统前应该被规范化成完全相同的数据结构。

CLI
key=value
YAML
"key=value"
SINGLE SOURCE OF TRUTHDICT_KEYSshared _configure()
model_argsgen_kwargsmetadatadict
入口分裂

同一字段得到两种运行时类型

启用延迟注解后,dataclass 字段保存的是推迟求值的类型描述,`f.type is dict` 不再成立。CLI 会把 `model_args` 等字典参数解析成映射,纯 YAML 入口却可能把同样的 `"pretrained=gpt2,dtype=float16"` 一路保留为字符串,直到元数据与模型配置阶段才暴露类型错位。

根因定位

延迟注解破坏了身份判断

问题不在某个参数,而在配置入口缺少共同的规范化边界。项目已经用 `DICT_KEYS` 维护 CLI 风格字典字段的单一清单,因此类型识别不应依赖注解对象身份;字符串字典还必须在任何元信息消费之前解析,同时让原生 YAML mapping 保持原状。

统一边界

DICT_KEYS 成为单一事实来源

以现有 `DICT_KEYS` 取代 `f.type is dict`,并把字典字符串解析前移到 `from_config()` 与 `from_cli()` 共享的配置流水线;将 `trackio_args` 纳入同一注册表。回归同时覆盖 YAML 字符串、原生映射及两种入口,验证规范化发生在模型配置构建之前。

配置语义

CLI 与 YAML 得到同样结果

相同的评测参数现在从 CLI 与 YAML 进入后会得到一致的运行时映射,不再因延迟注解静默绕过解析;原生 YAML 字典不会被重复转换。针对配置子命令的 70 项测试和主体测试集的 613 项用例共同锁定这条入口契约。

PR #4020 已随 LM Evaluation Harness v0.4.13 正式发布
  • CLI / YAML 配置统一解析
  • Release Notes 收录 PR #4020
  • New Contributors 官方署名
查看正式版本