Files

9.4 KiB
Raw Permalink Blame History

评测体系说明

本目录是子平八字技能的内置评测体系,随技能包发布。目标:用盲测 + 脚本判分 客观回答一个问题——加载本技能后,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。

# 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模型纬度得分/ 下的三件,临时文件不要提交。