benchhubreproducibilitycli

自报分 vs 复现分:BenchHub 为什么存在,以及如何十分钟复现一个 benchmark

大多数 benchmark 分数由训练模型的厂商自己测得。本文介绍 BenchHub 注册表的内容,从搜索到推送的 ltb CLI 分步教程,以及目前数据的真实局限。

发布于 2026年10月2日 · 8 分钟阅读

发布会上看到的 benchmark 分数,大多是训练模型的公司自己测的:用它选的评测框架,有时还是它选的子集。这不算丑闻,只是一个数据点。 BenchHub 要做的,是在旁边放上第二个、第三个数据点,并且让产出一个数据点足够便宜,任何有 coding agent 订阅的人都能做。

自报、独立、复现

注册表里的每条分数都带有三种标签之一,以及来源链接:

  • 自报(Self-reported):模型厂商在 model card、博客或技术报告中公布的分数。
  • 独立(Independent):第三方测得,例如 benchmark 官方榜单或评测机构。
  • 复现(Reproduced):用户用 ltb CLI 推送的运行结果,按模型、benchmark 与评测框架聚合为中位数和运行次数。

目前注册表中有 489 条自报分数、5,550 条独立分数,其中 156 个“模型 × benchmark”组合两者都有。真正薄弱的是复现这一列:Oct 13, 2026 的快照里只有 0 条复现分数。这篇文章就是想补上这个缺口。

注册表里有什么

6,820
收录的 benchmark
718
可用 Harbor 运行
386
已核验记录
6,039
条分数,每条带来源链接

每个 benchmark 都有独立页面:论文、数据集、许可证、指标、样本数、能力维度,以及所有已知分数。其中 718 个现在就能被 CLI 转换为 Harbor 任务:要么通过自动生成的适配器(从 Hugging Face 拉取数据行,一行一个任务),要么 benchmark 本身就提供 Harbor 任务。 可以在目录中浏览,或在榜单查看模型 × benchmark 热力图。

大约十分钟复现一个 benchmark

下面以 MMLU-Pro 为例:它的许可证允许再分发,所以生成的任务带参考答案,oracle 自检可以跑通。在 Docker 已启动的机器上,20 个任务的首轮运行大约十分钟,大部分时间花在你的 agent 上。样本越大,耗时按比例增加。

0. 安装

需要 Node.js 20 及以上、Docker,以及 Harbor(一个 Python 工具,用 uv 安装)。

$ npm i -g lettokenburn-cli
$ uv tool install harbor
$ ltb --version && harbor --version && docker info > /dev/null && echo ready

1. 发现

search 和 info 读取公开的静态注册表,不需要账号。info 会打印该 benchmark 的基本信息、许可证、已知最高分以及具体命令。

$ ltb bench search mmlu
$ ltb bench search --axis coding --harbor-only --limit 10
$ ltb bench info mmlu-pro

2. 拉取

pull 以确定性方式抽样(相同的 --seed 得到相同的行),每行生成一个 Harbor 任务目录:说明、Dockerfile、校验器,以及在许可证允许时的参考答案。

$ ltb bench pull mmlu-pro --n 20
# -> ./mmlu-pro/<slug>-<row>/ task.toml instruction.md environment/ tests/ solution/

3. 用 oracle 自检

花 token 之前,先跑 oracle agent。它会对每个任务套用参考答案,理应得 100 分。如果不是,问题出在任务打包上,你发现的是一个值得反馈的 bug,而不是模型的弱点。

$ ltb bench run ./mmlu-pro -a oracle
# expected: score 100. Anything lower means the packaging is broken, not the model.

4. 用真实 agent 运行

然后让 Harbor 调用你已经付费的 agent 和模型。支持 Claude Code、Codex、OpenHands、Terminus 等,模型通过 -m 传入。你的密钥和订阅始终留在你自己的机器上。

$ ltb bench run ./mmlu-pro -a claude-code -m anthropic/claude-opus-4-8 -n 4

任务结束后,CLI 会写出 ltb-run-summary.json:分数(平均 reward × 100)、任务数、尝试次数、每个任务的 reward、Harbor 与 CLI 版本,以及结果文件的 SHA-256。

5. 推送

$ ltb bench push ./jobs --notes "first pass, 20 tasks, seed 7"

只上传这份摘要,不上传对话记录和模型输出。允许匿名推送;使用个人主页生成的 API key 推送,运行会记在你名下。命令会打印运行页面链接, 该运行随即进入这个模型与 benchmark 的“复现”列。

解读分数要谨慎。抽样 20 或 50 个任务不等于完整 benchmark。真实准确率约 70% 时,50 个任务的标准误约 6.5 分,所以和自报分之间小于这个幅度的差距说明不了什么。评测框架也不同:Claude Code 跑出的分数和厂商内部框架不是同一个实验。 但请照样推送:许多次运行的聚合结果才真正有信息量。

坦白说,目前的局限

  1. 1元数据是自动采集的。benchmark 记录来自 12 个公开渠道(论文索引、Hugging Face、GitHub、评测框架与榜单),再由 LLM 审核员检查。许可证、样本数、发布日期等字段可能缺失或有误。
  2. 2质量等级告诉你该信多少。每条记录标为 Verified(人工审核过,或多个独立渠道确认且基本完整)、Auto(由审核员自动发布,较完整)或 Incomplete,页面会列出缺失项。目前 6,820 条记录中只有 386 条是 Verified。
  3. 3社区复现才刚开始。复现列几乎是空的,所以每一次运行都有价值。
  4. 4分数一定带来源。缺失的格子从不估算。如果某个分数与来源不符,请发邮件到 [email protected],附上 benchmark、模型、数值和链接。

为什么是订阅,为什么是现在

包月的 coding agent 套餐不管用没用,每个周期都会归零。拿出一部分额度做一次复现,就会产生一个此前不存在的、带来源的公开数据点。 这是闲置 token 能做的最有用的事,也是这个网站叫 LetTokenBurn 的原因。

方法说明
数字在页面构建时读取自 Oct 13, 2026 的 BenchHub 快照。“可运行”指该 benchmark 有 Harbor 适配器或原生 Harbor 任务。标准误按 √(p(1−p)/n) 计算,p = 0.7,n = 50。

用你自己的订阅复现一个 benchmark

挑一个已核验的 benchmark,用 ltb CLI 和 Harbor 在本地运行,把分数推送到自报分旁边。

Also available in English