# 评测体系说明 本目录是子平八字技能的内置评测体系,随技能包发布。目标:用**盲测 + 脚本判分** 客观回答一个问题——加载本技能后,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。 ```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答案/<模型>//, # 由 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模型纬度得分/` 下的三件,临时文件不要提交。