CharacterBench reproduction audit bundle

Everything behind Section 6 of the CharacterBench reproduction report: the scripts as run, their results and logs, and the frozen inputs from which the scoring can be recomputed without access to the platform. Nothing here contains test-set text, dialogue or a model's reply: the test set stays with its authors (github.com/thu-coai/CharacterBench), and replies are referred to only by sample.

Check without running anything

shasum -a 256 -c SHA256SUMS      # in a copy of this directory

Every file's SHA-256 is listed below and in SHA256SUMS.

Recompute the scores from the frozen judge outputs

Each line of frozen/judge_outputs_<run>.jsonl holds a sample's ten judge outputs as returned. Read each with check() from the authors' all_eval.py, average the ten, and per language and test file take mean / max(human scores of the kept samples) × 5; AVG is the mean of the 13 columns. The result must equal the run's result.perLang in frozen/runs.json at two decimals. code/tools/experiments/characterbench_recompute.py does exactly this with only this bundle and the authors' repository (log: logs/11-recompute.log):

python3 -I code/tools/experiments/characterbench_recompute.py repo frozen

Re-run the whole audit

git clone https://github.com/thu-coai/CharacterBench repo && git -C repo checkout 66c113c
curl -L -o eprint.tar.gz https://arxiv.org/e-print/2412.11912v1 && mkdir eprint && tar xzf eprint.tar.gz -C eprint
python3 -I code/tools/experiments/characterbench_spec_check.py eprint repo frozen/val_zh.jsonl frozen/val_en.jsonl
python3 -I code/tools/experiments/characterbench_judge_audit.py out.json frozen/val_zh.jsonl frozen/val_en.jsonl     --repeat frozen/judge_rep0_zh.jsonl frozen/judge_rep0_en.jsonl --seeds frozen/judge_rep{1,2,3}_{zh,en}.jsonl

The prompt and pipeline checks (characterbench_prompt_check.py, characterbench_audit_platform.ts, characterbench_audit.py) also need the platform's samples and the runs' replies; their outputs and logs are in results/ and logs/, and the logs give each command as run. The judge requests themselves can be repeated against any server running the checkpoint with characterbench_judge_validation.py (sampled outputs repeat only on the same deployment).

Runs audited

Files

FileBytesSHA-256Content
code/server/src/benchmarks/characterbench/build.ts21,238705c2c9d6e7bcd4f…The audit scripts and the platform source they execute, exactly as run.
code/server/src/benchmarks/characterbench/data.ts2,386dc6fe1137d0411c5…The audit scripts and the platform source they execute, exactly as run.
code/server/src/benchmarks/characterbench/index.ts16,6421f74f44ce9495512…The audit scripts and the platform source they execute, exactly as run.
code/server/src/benchmarks/characterbench/meta.ts5,602e19408fd71e689df…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_anchor.py4,008797136272f04d0ba…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_audit.py19,921cfc6f8a9ceb202cc…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_audit_bundle.py20,63771a9c5daeb22f0ba…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_audit_module.py6,64971ce8d04468a5964…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_audit_platform.ts5,3336a1f7d620038c7bf…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_judge_audit.py7,5060353f6874e13297a…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_judge_validation.py13,13148f6febb00f29e13…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_prompt_check.py6,0885014aa156a5b328b…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_prompt_hashes.ts1,1421ce6c15b72bd06d7…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_recompute.py3,526c342d1d7c87893d9…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterbench_spec_check.py15,0169ffa1deff1d3b52c…The audit scripts and the platform source they execute, exactly as run.
code/tools/experiments/characterjudge_server_check.py8,160c62a6224388ba91f…The audit scripts and the platform source they execute, exactly as run.
code/worker/src/benchmarks/characterbench/build.ts21,238705c2c9d6e7bcd4f…The audit scripts and the platform source they execute, exactly as run.
code/worker/src/benchmarks/characterbench/index.ts17,2124508a6e9c651550a…The audit scripts and the platform source they execute, exactly as run.
code/worker/src/engine/results.ts28,235b0a90135beac7839…The audit scripts and the platform source they execute, exactly as run.
code/worker/src/engine/runner.ts47,0754857386b410a9f19…The audit scripts and the platform source they execute, exactly as run.
code/worker/src/scoring.ts3,320cd5a1df8bcb974c5…The audit scripts and the platform source they execute, exactly as run.
frozen/judge_outputs_31a478305c1641a6.jsonl1,489,960c1e79ed2ef6c83f0…Every stored judge output of one run (10 per sample) with the platform's reading; excluded samples marked.
frozen/judge_outputs_47920340ab8e49fe.jsonl1,490,470af7582956f3969b7…Every stored judge output of one run (10 per sample) with the platform's reading; excluded samples marked.
frozen/judge_outputs_7ec615d6637844cd.jsonl1,489,9324949ee238286a16d…Every stored judge output of one run (10 per sample) with the platform's reading; excluded samples marked.
frozen/judge_outputs_a9c1f7d7a75f4fb3.jsonl1,490,05278a88037286641cc…Every stored judge output of one run (10 per sample) with the platform's reading; excluded samples marked.
frozen/judge_outputs_e279fdfe13874179.jsonl1,490,572425ede6757da3ff5…Every stored judge output of one run (10 per sample) with the platform's reading; excluded samples marked.
frozen/judge_outputs_e78e8134973f4bd5.jsonl1,490,8806da83e4473630b55…Every stored judge output of one run (10 per sample) with the platform's reading; excluded samples marked.
frozen/judge_outputs_eebe847ae59b4d41.jsonl1,489,99050cdf5d8deba2999…Every stored judge output of one run (10 per sample) with the platform's reading; excluded samples marked.
frozen/judge_outputs_fb8c23842faa41d1.jsonl1,490,052fc525920ddfee9d7…Every stored judge output of one run (10 per sample) with the platform's reading; excluded samples marked.
frozen/judge_rep0_en.jsonl787,0584f5eeebbf584b915…The same requests a day later with the same seeds.
frozen/judge_rep0_zh.jsonl786,8614b04714d01f371d5…The same requests a day later with the same seeds.
frozen/judge_rep1_en.jsonl787,05874d2e0775147b0b3…The same requests with other seeds (offset 1, 2, 3).
frozen/judge_rep1_zh.jsonl786,8615f7454c7cc114da7…The same requests with other seeds (offset 1, 2, 3).
frozen/judge_rep2_en.jsonl787,058ebf7d80931712c65…The same requests with other seeds (offset 1, 2, 3).
frozen/judge_rep2_zh.jsonl786,861b28dbf9e73fc62ef…The same requests with other seeds (offset 1, 2, 3).
frozen/judge_rep3_en.jsonl787,058fb475c5d0753db45…The same requests with other seeds (offset 1, 2, 3).
frozen/judge_rep3_zh.jsonl786,861bf234d3b2e3c2fde…The same requests with other seeds (offset 1, 2, 3).
frozen/leaderboard.json5,5057eb46d42cdb596c9…Every CharacterBench run's protocol and eligibility at the time of the audit.
frozen/runs.json34,7368507f0955b2452d8…Each audited run's protocol snapshot (judges, engine), configuration and result.
frozen/val_en.jsonl720,504aa18d8937799b4b7…The deployed judge on the 3,250 annotated test responses per language (greedy and 10 seeded samples).
frozen/val_zh.jsonl720,259da7eeb1fe6e48c6c…The deployed judge on the 3,250 annotated test responses per language (greedy and 10 seeded samples).
logs/00-environment.log4715d0e2dcafcdb8589…One log per step: command, start and end time, exit status and full output.
logs/01-spec_check.log12,63261fbac3ac22e09b8…One log per step: command, start and end time, exit status and full output.
logs/02-table11.log3,0351e41d533ba32aa98…One log per step: command, start and end time, exit status and full output.
logs/03-prompt_check_authors.log2865ea98387147b85e0…One log per step: command, start and end time, exit status and full output.
logs/04-prompt_check_platform.log606acedcc372a18ee8e…One log per step: command, start and end time, exit status and full output.
logs/05-prompt_check_compare.log3634f2958678992fe47…One log per step: command, start and end time, exit status and full output.
logs/06-audit_platform.log51678cdb959c8acf91c…One log per step: command, start and end time, exit status and full output.
logs/07-audit.log2,551109d434b677f1e9a…One log per step: command, start and end time, exit status and full output.
logs/08-judge_audit.log1,345b74ebb55e9b407a1…One log per step: command, start and end time, exit status and full output.
logs/09-anchor.log605f92b06d4bc7d534f…One log per step: command, start and end time, exit status and full output.
logs/10-audit_module.log46406ac0a2a465f6f6c…One log per step: command, start and end time, exit status and full output.
logs/11-recompute.log1,917880210dd2eb4a984…One log per step: command, start and end time, exit status and full output.
results/anchor.json6,25961601f6355b988d1…The paper anchor (GPT-4o) against the paper's appendix row.
results/audit.json28,382fe1b3812d0d1242e…Data, prompts, judge input and scoring: the authors' functions against the platform, per run.
results/characterjudge_server_check.as_run.py8,0505aa5d75d75364a0b…The check script exactly as the operator ran it.
results/characterjudge_server_check.json4,752879f430846db593e…The operator's check of the served judge's files against Hugging Face (host name and unrelated servers left out).
results/judge_audit.json5,47974a0325f77d36848…Judge against human scores, the authors' predictions, a same-seed repeat and three other seeds.
results/prompt_hashes_authors.json861,836ef5572a7ae12e76a…SHA-1 of every role-play and judge prompt built by the authors' functions.
results/prompt_hashes_platform.json829,367c66d03aaeaebd0f7…The same, built by the platform's functions.
results/spec_check.txt12,63261fbac3ac22e09b8…Every protocol setting against the paper and the authors' code.