- 规则库 3.6→3.8.1(542→548 条):剪枝上锁、R-杂-38 从格临界双轨、 R-事-10~13 冲刑方向判别、R-禁-23 自造必要条件之禁 - 排盘修复随 3.6.2 已发:港澳时区夏令时双向误拨、晚子时双重换日 - 新增 评测/ 目录(BaziQA 题答分离、判分工具、记分卡、with/without-skill 对照) 与 scripts/query_rules.py 条款检索;ZIPEC_EVAL 评测额度豁免 - manifest 重建并重新签名;VERSION 保持 3.6.2,不发版不打 tag
9.0 KiB
评测体系说明
本目录是子平八字技能的内置评测体系,随技能包发布。目标:用盲测 + 脚本判分 客观回答一个问题——加载本技能后,AI 的八字断验准确率是多少。
当前收录三个模型(同一题集、同一答案键、同一判分脚本,各含 with-skill 与 without-skill 两组):
- kimi-k3:加载技能 79/200 = 39.5%(规则库 3.7,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 | 79/200 = 39.5% | 82/200 = 41.0% | −1.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 裸答反而高 1.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 新增冲刑方向判别四条),同题集同判分脚本重跑 |
| 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.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。
# 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/——
应输出 79/200 = 39.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模型纬度得分/下的三件,临时文件不要提交。