152 lines
9.4 KiB
Markdown
152 lines
9.4 KiB
Markdown
# 评测体系说明
|
||
|
||
本目录是子平八字技能的内置评测体系,随技能包发布。目标:用**盲测 + 脚本判分**
|
||
客观回答一个问题——加载本技能后,AI 的八字断验准确率是多少。
|
||
|
||
当前收录三个模型(同一题集、同一答案键、同一判分脚本,各含 with-skill 与
|
||
without-skill 两组):
|
||
|
||
- **kimi-k3**:加载技能 81/200 = 40.5%(规则库 3.9・568 条,2026-10-13 收录),
|
||
裸答对照 82/200 = 41.0%;
|
||
- **qoder-agent**:加载技能 79/200 = 39.5%,裸答对照 78/200 = 39.0%
|
||
(规则库 3.7,2026-10-12 起跑 / 2026-10-13 收录);
|
||
- **deepseek-v4-flash**:加载技能 74/200 = 37.0%,裸答对照 71/200 = 35.5%
|
||
(2026-10-13 收录;`得分.json` 的 `skill_version` 只记到 `3.6.2`、未标规则库小版本,
|
||
与上两组的 3.7 是否严格同版待核)。
|
||
|
||
官方基线(Gemini,论文口径)34.5%。逐维度/逐届明细见
|
||
`ai模型纬度得分/<模型>/<模式>/得分.md` 与 `得分.html`
|
||
(品牌记分卡,浏览器直接打开),每个得分目录三件(json/md/html)。
|
||
|
||
## 跨模型对照(200 题)
|
||
|
||
| 模型 | with-skill(加载技能) | without-skill(裸答对照) | 组内差 |
|
||
|---|---|---|---|
|
||
| kimi-k3 | 81/200 = 40.5% | 82/200 = 41.0% | −0.5pp |
|
||
| qoder-agent | 79/200 = 39.5% | 78/200 = 39.0% | +0.5pp |
|
||
| deepseek-v4-flash | 74/200 = 37.0% | 71/200 = 35.5% | +1.5pp |
|
||
| 官方基线(Gemini) | 69/200 = 34.5% | — | — |
|
||
|
||
如实呈现:**三个模型上,加载技能都没有跑出可检出的增益。** kimi-k3 裸答反而高
|
||
0.5pp;qoder-agent 加载技能只高 1 题(+0.5pp);deepseek-v4-flash 高 3 题(+1.5pp),
|
||
方向为正但幅度同样在噪声内。qoder-agent 两组做过题级配对检验——
|
||
两组都对 53 题、只 with-skill 对 26 题、只裸答对 25 题、都错 96 题;
|
||
两臂选中同一字母 118/200(59%);McNemar 不一致对 51 组且 26:25 几乎对半,
|
||
校正 χ² = 0.00,p ≈ 1.0,配对 z = 0.10。
|
||
|
||
六组成绩全落在 71–82 题(35.5%–41.0%)的窄带里;
|
||
相对官方基线 +1.0~+6.5pp,配对 z = 0.21–1.34(单组标准误约 ±3.4~3.5pp),
|
||
**均未过 p<0.05 门槛**。同模型组内差最大只有 3 题。
|
||
|
||
结论口径:200 题规模的这套基准**尚不足以区分「加载技能」与「裸答」**;
|
||
本目录仍按同一题目集、同一判分脚本、同一答案键收录全部留档,供复测核对。
|
||
分维度上两组各有胜负(如 qoder-agent 性格 +10.0pp、事业 +8.0pp,
|
||
但学业 −16.6pp、财富 −15.3pp),这些维度题数只有 12–25 题,
|
||
一题就是 4–8 个百分点,摆动同样在噪声内,不宜单点解读。
|
||
|
||
## 迭代轨迹(kimi-k3・with-skill)
|
||
|
||
| 版本 | 评测日期 | 正确/总题数 | 准确率 | 主要变更 |
|
||
|---|---|---|---|---|
|
||
| v3.6.1+排盘修复(规则库 3.6) | 2026-10-12 | 76/200 | 38.0% | 修复排盘时区/边界口径 bug 后按规则库 3.6 全量盲测,首轮正式收录 |
|
||
| 3.6.2-未发版(规则库 3.7) | 2026-10-13 | 79/200 | 39.5% | 规则推理层「剪枝上锁」(542→547 条:R-运-32 降级保留、R-杂-38 从格临界双轨、91 新增冲刑方向判别四条),同题集同判分脚本重跑 |
|
||
| 3.9.0-未发版(规则库 568 条) | 2026-10-13 | 81/200 | 40.5% | E3 规则补强——职业/形貌/健康/学业/六亲应期映射 +20 条,3.7 全量 + 3.9 补强重跑 17 位命主合并收录 |
|
||
| without-skill 裸答对照 | 2026-10-12 | 82/200 | 41.0% | 同模型不加载技能,仅凭模型自身知识手排四柱作答 |
|
||
| 官方基线(Gemini,论文口径) | — | 69/200 | 34.5% | BaziQA 论文跑分口径,见 试题/BaziQA-全球算命师大赛/SOURCE.md |
|
||
|
||
中性口径:3.7 相对 3.6 总分 +1.5pp,在 200 题规模噪声边界内
|
||
(单组标准误约 ±3.5pp),不构成显著结论;结构性维度改善明显——
|
||
流年运势/感情/事业/性格/学业五维度回升约 5–10pp,财富/健康/其他小幅回落。
|
||
3.9 相对 3.7 总分 +1.0pp(79→81),同样在噪声边界内;
|
||
职业映射等目标题型翻正确认(事业 40.0%→48.0%、性格 50.0%→60.0%)。
|
||
3.6 版求解留档存档于 `ai答案/kimi-k3/with-skill-v3.6/`;
|
||
历史留档目录命名规范:`<模式>-v<规则库大版本>/`(如 `with-skill-v3.6/`),
|
||
当前成绩固定收录于 `<模式>/`。
|
||
|
||
qoder-agent 为首轮收录,两组均跑在 3.6.2-未发版(规则库 3.7)上,无历史轨迹。
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
评测/
|
||
├── 试题/
|
||
│ └── BaziQA-全球算命师大赛/ # 一个赛事一个目录,可陆续收集更多
|
||
│ ├── SOURCE.md # 来源、届次、题数、官方基线
|
||
│ ├── questions/ # 盲版题面(剥离 answer,求解端只准读这里)
|
||
│ └── answers/ # 答案键(person_id+题序+答案字母+维度,求解端禁读)
|
||
├── ai模型纬度得分/
|
||
│ └── <模型名>/ # 已收录:kimi-k3、qoder-agent、deepseek-v4-flash
|
||
│ ├── with-skill/ # 得分.json + 得分.md + 得分.html(三件齐全才算收录)
|
||
│ └── without-skill/ # 同模型裸答对照组,同样三件
|
||
├── ai答案/
|
||
│ └── <模型名>/
|
||
│ ├── with-skill/ # 41 位命主的完整求解留档(含推理过程)
|
||
│ ├── without-skill/ # 对照组 41 位命主留档(模型手排四柱 + 作答)
|
||
│ └── <模式>-v<规则库版本>/ # 可选:历史留档存档(如 kimi-k3/with-skill-v3.6/)
|
||
├── 工具/
|
||
│ ├── make_blind.py # 试题原始包 → questions/+answers/ 分离(含校验)
|
||
│ ├── run_eval.py # 判分:submissions vs 答案键 → 统计 + 报告
|
||
│ ├── extend_cities.py # 评测用地点扩展(境外/模糊地名 → 代理城市)
|
||
│ ├── render_scorecard.py # 得分.json → 单文件 HTML 品牌记分卡
|
||
│ └── scorecard_template.html # 记分卡模板(与盘面图同一套亮色卡片风)
|
||
├── 测试规则.md # 评测纪律定稿(盲测红线/输出契约/收录规范)
|
||
└── README.md # 本文件
|
||
```
|
||
|
||
## 判分口径
|
||
|
||
- 每题四选一,答对得 1 分;标 `N` 记未答(不计对);准确率 = 对/总题数。
|
||
- 答案从求解留档 md 末尾的 `Q1: A` … `Q5: X` 五行正则抽取(每题取首次出现)。
|
||
- 分维度标签(流年运势/感情/六亲/事业/性格/学业/财富/健康/其他)随答案键收录。
|
||
- 官方基线 34.5% 为论文跑分口径,内嵌于 `run_eval.py` 并在报告逐届/逐维度对照。
|
||
|
||
## 如何复测(你也可以跑)
|
||
|
||
前置:Python ≥ 3.10;技能自身依赖(排盘用)见技能根目录 requirements.txt。
|
||
|
||
```bash
|
||
# 0. 准备技能副本并做地点扩展(不改母版)
|
||
cp -R <技能根目录> /tmp/skill_bench
|
||
python 评测/工具/extend_cities.py \
|
||
--cities /tmp/skill_bench/data/cities.json --scripts /tmp/skill_bench/scripts
|
||
|
||
# 1. 盲测求解:对每个命主新开无上下文的子代理,只读
|
||
# 试题/BaziQA-全球算命师大赛/questions/,用副本 scripts/cast_chart.py 排盘,
|
||
# 按 测试规则.md 的双盘纪律与输出契约写答案 md 到某个 submissions 目录。
|
||
# (求解提示词可参考首次评测的求解契约;红线:禁触 answers/ 与得分目录。)
|
||
# 排盘命令前加 ZIPEC_EVAL=1,示例:
|
||
ZIPEC_EVAL=1 python /tmp/skill_bench/scripts/cast_chart.py \
|
||
--name 张三 --gender 男 --birth "1990-05-14 08:30" --place "四川省成都市"
|
||
|
||
# 2. 脚本判分(非模型裁判)
|
||
python 评测/工具/run_eval.py --submissions <你的答案目录> \
|
||
--out-json /tmp/result.json --out-md /tmp/report.md
|
||
|
||
# 3. 收录(满足 测试规则.md §7 后)
|
||
# 把答案 md 放进 ai答案/<模型>/<with-skill|without-skill>/,
|
||
# 由 result.json 汇总出 得分.json,再渲染记分卡:
|
||
python 评测/工具/render_scorecard.py --score <得分.json>
|
||
```
|
||
|
||
`run_eval.py` 不带参数时默认判分 `ai答案/kimi-k3/with-skill/`——
|
||
应输出 **81/200 = 40.5%**,这是本目录出厂状态的自检点。
|
||
|
||
> **额度豁免**:评测/复测全程在命令前加 `ZIPEC_EVAL=1`(示例见上),授权门直接放行,
|
||
> 不签发、不扣次、不创建任何授权文件——跑测试集不会消耗授权副本的使用次数。
|
||
> `评测/工具/` 下脚本内部调排盘时环境变量随子进程继承,同样适用(详见 测试规则.md §1.1)。
|
||
|
||
## 收录新模型 / 新赛事
|
||
|
||
- **新模型**:建 `ai答案/<模型>/<模式>/` 与 `ai模型纬度得分/<模型>/<模式>/`,
|
||
按 测试规则.md 完成盲测求解与判分,收录 得分.json/得分.md/得分.html 三件;
|
||
`without-skill` 对照组为同一模型裸答(不给排盘不给规则,只给出生信息+题目)。
|
||
- **新赛事**:`python 评测/工具/make_blind.py --src <含答案的原始包目录>
|
||
--out 试题/<赛事名> [--scores <官方跑分目录>]` 一键分离 questions/answers/
|
||
并自校验;随后在赛事目录补一份 SOURCE.md(来源/届次/题数/基线)。
|
||
|
||
## 注意
|
||
|
||
- `questions/` 可公开分发;`answers/` 仅作判分用,求解端任何时候禁读。
|
||
- 判分输出(eval_result.json 等临时产物)默认写在评测根目录,
|
||
收录时只保留 `ai模型纬度得分/` 下的三件,临时文件不要提交。
|