如何复现并验证SimpleEnglish的基准数据:面向开发者的诚实Benchmark完全教程
【免费下载链接】SimpleEnglishAgent skill: make LLMs write docs in ASD-STE100 Simplified Technical项目地址: https://gitcode.com/gh_mirrors/si/SimpleEnglish
SimpleEnglish 是一个 Agent skill,让大语言模型按 ASD-STE100 简化技术英语(STE)规范写文档。它的核心卖点是一组可复现的 Benchmark 数据:开启 skill 后,每百词 STE 违规数平均下降 74.6%(7 个 Claude 模型 × 8 个写作任务,共 112 次生成)。本教程带你从零复现这些数据:无需 API Key,只需登录的 Claude Code CLI;即使只想"验证"数据,一条命令 30 秒搞定。
动手前先看懂:112 次生成在测什么
复现之前,先理解这套 benchmark 的设计,才能判断结果是否可信:
| 组成 | 内容 | 文件 |
|---|---|---|
| 模型 | 7 个 Claude 模型(opus-5 到 sonnet-4-6) | 定义在 evals/run_bench.py 的MODELS |
| 任务 | 8 个写作场景:README 简介、快速上手、故障排查、错误消息、事故报告、发布说明、runbook 压缩、架构说明 | evals/scenarios.json |
| 条件 | 每个任务跑两遍:baseline(无 skill)和skill(把 SKILL.md 全文注入 prompt) | 同上 |
| 评分器 | 确定性正则 linter,数句子超长、缩写词、禁用情态动词、slop 词汇等 12 类违规 | evals/ste_lint.py |
全部 8 个场景都围绕同一个虚构工具 "sqlpipe"(Postgres 同步到 S3 的 CLI),保证 baseline 与 skill 两组输出面对完全相同的输入。
环境准备:3 项检查清单
✅需要:
- Python 3(评分器纯标准库,无第三方依赖)
- Claude Code CLI 并已登录(
claude --version能输出即可) - 仓库代码:
git clone https://gitcode.com/gh_mirrors/si/SimpleEnglish cd SimpleEnglish✅不需要:API Key、付费额度之外的额外配置。
先花 5 秒确认 linter 自检通过,后面所有数字才有意义:
python3 evals/ste_lint.py --self-test三步命令:复现 74.6% 的完整流程
第 1 步:冒烟测试(1 个模型 × 2 个场景)
python3 evals/run_bench.py --smoke这条命令只跑claude-sonnet-4-6的前两个场景,几十秒出结果,用来确认 CLI 登录态和参数没问题。
第 2 步:完整矩阵(7 模型 × 8 任务 × 2 条件 = 112 次生成)
python3 evals/run_bench.py几个值得注意的工程细节(都写在 evals/run_bench.py 头部注释里):
- 可断点续跑:
evals/results/raw/下已存在的结果文件会自动跳过,中断后重跑即可; - 推理力度锁定
low:避免继承你本地配置的effortLevel,每个 raw 文件都会记录实际用的力度; - 每次调用禁用所有工具(Bash、Read、WebFetch 等),保证输出只来自语言模型本身。
第 3 步:只从原始数据重建报告(不调用任何模型)
python3 evals/run_bench.py --report-only它扫描evals/results/raw/全部 JSON,重新聚合出 evals/results/RESULTS.md 和 evals/results/results.json。这正是"验证"而非"重跑"的关键:README 里的每一个数字都能从提交的 raw 文件复算出来。
零成本验证:直接给已提交的 raw 文件打分
仓库里已提交 168 个 raw 文件(112 个生成 + 56 个裁判打分),你甚至不必调用任何模型就能验证公开数字:
# 重算主 benchmark 表格 python3 evals/run_bench.py --report-only # 重算其他 harness 的表格(如 OpenAI API 的 gpt-4.1-mini,降幅 95.8%) python3 evals/score_text_dir.py evals/results/openai-2026-09-01/raw打分工具 evals/score_text_dir.py 会自动按文件名解析模型/条件/场景,输出与 evals/results/openai-2026-09-01/RESULTS.md、evals/results/pi-2026-07-31/RESULTS.md 一致的表格。
盲测裁判:45/56 胜局是怎么来的
除了硬性违规计数,项目还跑了一轮盲测 pairwise 裁判(evals/run_bench.py 的judge()函数):
python3 evals/run_bench.py --judge方法:裁判模型claude-opus-4-8对每组 baseline/skill 文本按 0–10 分细则打分,两种文本顺序各打一次再取平均(消除位置偏差),裁判看不到任何标签。最终 skill 输出在 56 组中胜出 45 组、平 5 组、输 6 组,平均 8.12 分对 6.04 分。
想复现时用自定义力度或输出目录:
python3 evals/run_bench.py --effort high # 覆盖锁定的 low 力度 python3 evals/run_bench.py --results-dir /tmp/r2 # 结果写到别处,避免污染 raw/怎么读这些数字:4 个诚实的 caveat
结果报告 evals/results/RESULTS.md 专门有一节 "Honest number warnings",值得原样读一遍:
- linter 是正则不是语法分析器:查不出被动语态和词性问题,绝对值偏低;但两组用同一把尺子,相对降幅依然公平;
- skill 条件输入 token 更多:因为 SKILL.md 全文进了 prompt,所以报告的是输出 token(7 个模型全部下降);
- 每格只生成一次:想看方差就整矩阵重跑(runner 可续跑,删掉
results/raw即可重来); - 力度敏感:同一批场景,claude-opus-5 在
low力度下是 85.0%,xhigh下是 90.2%——比较结果前先确认effort一致。
核心结论一句话:74.6% 是"用确定性 linter 在同一任务集上测得"的均值,最低的是 claude-opus-4-8(41%),最高的 gpt-4.1-mini(95.8%,OpenAI API 通道)。完整模型表见 evals/results/RESULTS.md。
复现常见问题 FAQ
Q:数字和我跑的不完全一样?正常。每格一次生成,语言模型有随机性,项目文档也明确建议"重跑矩阵看方差"。对比的是量级与方向。
Q:我只想手工体验 skill 效果?安装 skill 后新开会话,粘贴 evals/scenarios.json 里任意一条 prompt,再用 evals/pressure-tests.md 里的清单人工打分即可。
Q:skill 本体在哪里看?53 条编号规则、Pragmatic/Strict 两种模式都在 skills/simple-english/SKILL.md,配套词表在 skills/simple-english/references/word-swaps.md。
按以上流程走完,你就完整复现并独立验证了 SimpleEnglish 公开的全部 benchmark 数据——从 112 次生成到盲测裁判,每一步都可从提交文件重算,这正是"诚实 benchmark"的含义。
【免费下载链接】SimpleEnglishAgent skill: make LLMs write docs in ASD-STE100 Simplified Technical项目地址: https://gitcode.com/gh_mirrors/si/SimpleEnglish
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考