EvalHarness × evalscope 28-Bench 对齐工程 — 完整工作记忆
最后更新:2026-09-03 00:40(fix2 轮:prompt 逐字对齐 + 同题重跑)
状态:20/28 fix2 同题达标(<0.05);judge quota 阻塞 hle/imo;math 题库不同待换源;tau2 强用户未完
1. 硬件与访问(关键!)
GPU 集群(4 台机器,20 个 Qwen3-8B vLLM 实例)
| 机器 |
IP |
GPU |
vLLM 端口 |
SSH |
| A100-105 |
10.10.81.105 |
A100×8 (40G) |
8123-8130 |
sshpass -p '314159' ssh amax@10.10.81.105(vLLM 已改 0.0.0.0 监听) |
| 3090-138 |
10.10.80.138 |
3090×8 |
8200-8203 |
sshpass -p 'Amax1979!@#$' ssh amax@10.10.80.138 |
| 3090-140 |
10.10.80.140 |
3090×8 |
8210-8213 |
sshpass -p 'Amax1979!!!' ssh amax@10.10.80.140 |
| 3090-143 |
10.10.80.143 |
3090×8 |
8220-8223 |
sshpass -p 'Amax1979!!!' ssh amax@10.10.80.143 |
- 105 备用 SSH(vLLM 只听本地时用):
sshpass -p '314159' ssh amax@127.0.0.1 -p 2222(Mac 反向隧道)
- 105 vLLM 重启脚本:
/home/amax/restart_vllm32_public.sh(0.0.0.0 版;原版 restart_vllm32.sh 是 127.0.0.1)
- 105 参数:
--max-model-len 131072 --max-num-seqs 32 --gpu-memory-utilization 0.90 --enforce-eager --tool-call-parser hermes --reasoning-parser qwen3,模型 /nvme1/hf_models/Qwen3-8B,yarn rope 4×
- Mac 隧道:曾是不稳定根源(今日退役中);138 是 Tailscale 子网路由器(138→140/143/105)
- GPU 利用率:
sshpass ... ssh amax@<ip> "nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader"
评测机(本机)路径
/data1/sora/evalharness/EvalHarness # 我们的框架(git repo, main 分支)
/data1/sora/evalharness/evalscope # es 源码副本(es_one2 实际加载这份!改 es 要改这里)
/data1/sora/evalscope # es 另一份(参考用)
/data1/sora/evalharness/temp/cache # EVALHARNESS_CACHE 数据集缓存
/data1/sora/evalharness/temp/full_ladder/{ours,es}/ # 全部结果 json
/data1/sora/evalharness/temp/full_ladder/es_w<bench>_k200/ # es work_dirs(预测缓存)
~/.cache/evalharness/ckpt/ # 我们 per-sample checkpoint
/data1/sora/evalharness/EvalHarness/error.md # ★ 全部踩坑记录(16 我方 bug + 6 es 问题)
关键凭据
- judge API:
https://api.vectron.meta-stone.com/v1,模型 DeepSeek/DeepSeek-V4-Flash,key sk-6cad3e9b981e1396c1179c1cac158a2a(launcher 必须带 OPENAI_API_KEY,否则 llm_judge 全 401)
- 磁盘:根盘曾两次写满——HF 缓存在
/data2/hf_home(HF_HOME),modelscope 缓存已清(es 下载数据会重新拉)
2. 模型 spec 语法(我们框架)
openai-pool/http://127.0.0.1:{8123..8130}/v1?Qwen3-8B!nothink # 8口池+关思考
openai-pool/http://10.10.80.143:{8220..8223}/v1?Qwen3-8B!nothink # 直连池
openai/http://127.0.0.1:8129/v1?Qwen3-8B!nothink # 单口定向
!nothink:普通请求走 chat_template_kwargs:{enable_thinking:false}(干净),tools 请求退回 /no_think 软开关(模板 400 规避)
- pool 支持多段逗号:
{8123..8130}/v1,http://...{8200..8213}/v1
3. 任务总账(28 bench)
✅ 已终值对齐(同口径,diff≤0.05)
| bench |
ours |
es |
备注 |
| bbh |
0.819 |
0.8185 |
27子集×10,官方3-shot CoT |
| mmlu |
0.795 |
0.800 |
es CoT契约+域匹配范例 |
| imo |
0.19 |
0.198 |
judge 协议统一(Problem:前缀) |
| simple_qa |
0.050 |
0.0503 |
同题前200 |
| gsm8k |
0.945 |
0.940 |
es 式 Reasoning few-shot |
| winogrande |
0.655 |
0.655 |
es A) 渲染 |
| humaneval |
0.8415 |
0.805 |
es 指令头+metadata prompt(harness 修复) |
| cmmlu |
0.785 |
0.772 |
中文契约逐字 |
| hle |
0.031 |
0.050 |
judge 修复后 |
| gpqa |
0.460 |
0.480 |
/no_think 污染修复后 |
| trivia |
0.700 |
0.660 |
开卷对齐(wiki_context 键名修复) |
| bigcodebench |
0.375 |
0.365 |
es 执行器 bug 我们修的(0.99→0.365 三方一致) |
| drop |
0.78 |
0.81 |
es 精确 3 范例硬编码后(-0.03 = 判分语义内) |
| arc |
E0.98/C0.90 |
0.930 |
es 渲染 |
| mrcr / swe |
0.0 |
0.0 |
真实能力(thinking 也 0) |
🔄 同题版收尾中(脚本就绪,网络恢复自动跑)
| bench |
ours |
es |
状态 |
| math L×40 |
0.90 |
卡 199/200 重跑中 |
/tmp/opencode/es_math_d2.log |
| bfcl 20/类 |
0.266 |
0.174 |
✓(es 空回复衰减坐实) |
| lb2 medium |
0.273 |
待出 |
|
| hswag 400 |
待出(真同题) |
0.5725 |
/tmp/opencode/mcq_f6.log |
| cmmlu/gfc/sqa 同题 |
跑中 |
部分待出 |
|
📊 12 轮均值(temp=1.0 双侧)
| bench |
ours |
es |
| aime25 |
0.193+ |
0.214(12/12 完) |
| aime26 |
~0.17 |
0.189(9/12) |
| hmmt26 |
新模板(Problem:前缀)验证中 [0.182,0.182] |
0.205(12/12) |
⏳ 挂起待收
- tau2 强用户终版(gen_kwargs 修复后)/ LCB 官方判定器复判(本地 CPU)
- es 同题:math/lb2/hswag/arc/cmmlu/sqa(no_shuffle fresh work_dir)
4. 正在跑 / 怎么跑
哨兵(必须知道)
/tmp/opencode/auto_all.sh # 每3分钟探测105+3090,通了自动拉起全部等待任务(setsid 运行中)
tail /tmp/opencode/auto_all.log
任务脚本目录 /tmp/opencode/
| 脚本 |
用途 |
es_one2.py <bench> <k> <out> |
es 单 bench 跑批(env: EVAL_API/ES_WORK_DIR/ES_NOSHUFFLE=1 关shuffle/ES_SUBSETS 限定子集) |
mm_sq.py |
我们 mmlu_pro+math 同题(no_shuffle) |
mcq_clean.py |
hswag+arc 同题 es 渲染 |
runs7_105.py/runs7more.py/runs7_np.py |
12 轮(105/3090 分池) |
tau2_strong.py |
tau2 强用户(TAU2_DATA_DIR=/data1/sora/evalharness/dataset/tau2-bench-main/data) |
lcb_official.py |
LCB 官方 codegen_metrics 复判(CPU) |
drop_gold.py |
drop 同题 100 |
跑批铁律(血泪教训)
- 改 prompt/模板 → 必删对应 ckpt(
rm ~/.cache/evalharness/ckpt/<name>*),否则复用旧预测
- 后台启动用
setsid ... < /dev/null & 立即返回(nohup 会被 bash 工具 timeout 连坐杀)
pkill -f <pattern> 会杀自己所在 shell(cmdline 含 pattern)→ 用 launcher 文件
- checkpoint 打印
restored N (M to generate) N≠M 时警惕 key 失配
5. 已修的 bug(详见 error.md,共 16 我方 + 6 es)
判分层:few_shot_hook 未挂载 / MCQ '(A)' 格式 / llm_judge 子串扫描 / dict 聚合器主指标覆盖 / judge 401
配对层:双重 _apply_limits 错位 / ckpt 不含 subset / ckpt 不含 prompt / no_shuffle 判分侧错位(runner.py:514 要带 shuffle=not no_shuffle)/ 选样语义(es=每子集独立 shuffle42)
prompt 层:/no_think 污染 / A. vs A) 渲染差 22 分 / 12+ 处逐 bench 模板(mmlu CoT 契约、gsm8k Reasoning 范例、aime 指令前置、imo/hmmt Problem:前缀、trivia 开卷、lb2 包装、LCB 代码契约、humaneval 指令头+metadata、drop es 精确范例 hook)
env 层:tau2 gen_kwargs 透传 / tau2 reward 字段 / HF 下载 to_thread
es 侧修的:BCB 执行器空跑(unittest 标记)/ gfc finish_reason 误判(or bool(tool_calls))/ tau2 reasoning 剥离崩溃(定位未修)/ LCB 本地 -2(docker 修复)
6. 下一步(优先级)
- 收同题尾巴:es math(199/200 卡住重跑)/ hswag 真同题 / lb2/cmmlu/sqa/gfc 同题 → 哨兵自动
- 12 轮齐:我们 aime26×6 + hmmt×7(新模板版)+ es aime26×2
- tau2 终版 + LCB 官方复判
- hmmt 新模板 3 轮均值(Problem: 前缀已 +0.06,看能否到 es 0.205)
- 终表:全对齐数字汇总进
FINAL_REPORT.xlsx(现有 5 sheet:Ladder/Aligned/Bugfix/ES问题/终局对比)+ error.md 归档
7. 常用检查命令
# GPU
for h in 10.10.81.105 10.10.80.138; do sshpass -p ... ssh amax@$h "nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader"; done
# 端口健康
for p in 8123 8200 8220; do curl -s -o /dev/null -w "$p:%{http_code} " http://127.0.0.1:$p/health; done
# 105 vLLM 崩了重启
timeout 30 sshpass -p '314159' ssh amax@127.0.0.1 -p 2222 "bash /home/amax/restart_vllm32_public.sh"
# 任务进度
grep -hE ':.*n=|==|k=' /tmp/opencode/*.log | grep -vE 'Warning|checkpoint'