--cot与--astro如何抉择?MingLi-Bench思维链与命盘注入效果深度对比
【免费下载链接】MingLi-BenchA benchmark for evaluating LLMs on Chinese traditional fortune telling — Bazi (八字) and Ziwei Doushu (紫微斗数).项目地址: https://gitcode.com/gh_mirrors/mi/MingLi-Bench
MingLi-Bench 是一个评测大语言模型中国传统命理能力的开源基准,用 2022–2025 年全球算命师大赛的 160 道选择题检验模型在八字与紫微斗数上的推理水平。运行时最常被纠结的两个开关是--cot(思维链推理)和--astro(命盘注入):到底开哪个?开几个?本文从提示词原理到消融实验,带你把这两个参数一次讲透 🧭
MingLi-Bench 评测的是什么?
项目把命题拆解为两类能力:
- 排盘能力:由生辰信息推导出八字四柱、紫微十二宫星曜分布(这是纯计算,容易出错);
- 推理能力:基于命盘做出对人生事件的判断(事业、婚姻、财运等十二大类事件)。
数据与命盘分别存放在:
| 文件 | 作用 |
|---|---|
| data/data.json | 160 道标准化选择题(2022–2025 年,每题对应一个命主案例) |
| data/fortune_api_results.json | 预先排好的八字 / 紫微斗数命盘,运行时按case_id与题目关联 |
| data/raw/ | 原始赛题文本(2022.txt~2025.txt) |
评分采用与标准答案精确匹配的选择题形式,可客观复现。
快速上手:三步跑出第一次评测
git clone https://gitcode.com/gh_mirrors/mi/MingLi-Bench cd MingLi-Bench pip install -r requirements.txt配置好 README_zh.md 中说明的 API 密钥(.env文件)后,先用--stats自检数据集,再跑正式评测。官方推荐的"默认姿势"是始终同时开启--cot与--astro:
python -m mingli_bench.cli --model openai/gpt-4o --year 2025 --cot --astro💡 加
--sample 10可先抽 10 题冒烟测试,--max-workers 8提高并发。
--cot 做了什么:让模型"先推理,再作答"
开启--cot后,提示词中的指令从"请直接给出答案"变为"请先分析推理过程,然后给出答案"(见 mingli_bench/benchmark.py 的_prepare_prompt方法):
| 模式 | 提示词指令 |
|---|---|
| 默认 | 结合中国传统命理学进行推算,请直接给出答案,用"答案:X"的格式 |
加--cot | 请先分析推理过程,然后给出答案。最后用"答案:X"的格式给出你的选择 |
命理题目需要逐级展开大运、流年、宫位关系,属于典型的长链推理任务。给模型"留出推理空间",能显著降低跳步作答、凭直觉蒙答案的概率——这也是思维链(Chain-of-Thought)在多步推理任务上的经典收益。参数定义见 mingli_bench/cli.py。
--astro 做了什么:把排好的命盘直接"喂"给模型
开启--astro后,框架会把 data/fortune_api_results.json 中预先排好的命盘注入提示词,例如:
八字命盘信息: 八字:甲寅 戊辰 己亥 壬申 时辰:申时 五行局:金四局 生肖:虎 紫微命盘信息: 十二宫位星曜分布: 命宫:天同 火星 夫妻:天梁 左辅 右弼 天钺 地劫 官禄:天机 天魁 陀罗 ...这一步的价值在于把"排盘"与"推理"解耦:模型不必再自己干万年历换算、节气交界等容易出错的手工排盘,分数反映的是纯粹的命理推理能力,而非日期转四柱的准确性(加载逻辑见 mingli_bench/data/loader.py)。
四种参数组合,各测出什么?
| 组合 | 测出的能力 | 适用场景 |
|---|---|---|
| 均不开启 | 排盘 + 推理的端到端水平 | 想看模型"裸考"真实表现 |
仅--cot | 推理空间充分,但排盘误差仍会进入分数 | 对比"只加强推理"的增益 |
仅--astro | 排除排盘误差,但答案一步给出 | 对比"只补充信息"的增益 |
--cot+--astro✅ | 纯推理能力(官方推荐默认) | 日常评测、模型横评 |
如何抉择:三个场景给出明确答案
- 日常评测 / 横评模型:两个都开。官方文档明确建议"始终传入
--cot和--astro",只有做消融实验时才建议关闭。 - 研究"排盘到底拖了模型多少后腿":对比"仅
--astro"与"均不开启"的得分差,差值即为排盘误差的影响。 - 严谨的消融实验:固定
--year与--shuffle-options(打乱选项防位置偏差),每个模型跑 5 轮独立测试并用多数投票取最终答案,排除采样随机性。
从基准到高级 Agent:为什么官方也强调"先给命盘"
MingLi-Bench 同时是作者 Agentic 命理系统 Tianfu Agent 的评测底座。官方测试显示:提供预计算命盘的通用大模型中,最佳基线截尾准确率约40%;而 Tianfu Agent 通过多智能体协作 + 不确定性量化将分数推到50%,接近人类参赛者 Top-20 的平均水平(53.5%)📊
这也解释了基准的设计理念:命理推理中"计算"与"推理"必须分开测量,--astro正是这条分界线。
读懂评测结果
每次运行在logs/下生成三类产物:
<model>_results.json:每题预测、得分与整体统计;<model>_summary.txt:核心指标摘要(含 CoT/Astro 开关状态);<model>_responses/:每题原始回复,含完整 Prompt,便于人工复核思维链质量。
结果文件里会记录use_cot/use_astro标志(见 mingli_bench/benchmark.py 的_calculate_statistics),方便你回查每次实验的确切配置。
小结
- 拿不准就全开:
--cot --astro是官方推荐默认,测的是纯推理能力; - 想量化排盘误差:用"仅
--astro"和"均不开启"做对照; - 做严谨消融:固定年份、打乱选项、多轮投票,结论才站得住。
跑通一次只需要一条命令,而理解--cot与--astro的分工,你才能真正读懂每一分提升的来源。
【免费下载链接】MingLi-BenchA benchmark for evaluating LLMs on Chinese traditional fortune telling — Bazi (八字) and Ziwei Doushu (紫微斗数).项目地址: https://gitcode.com/gh_mirrors/mi/MingLi-Bench
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考