MingLi-Bench参数完全清单:从--cot、--astro到--shuffle-options逐项拆解
【免费下载链接】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 是一个面向大语言模型(LLM)的中国传统命理评测基准,涵盖八字与紫微斗数,内置 160 道选择题。它通过--cot、--astro、--shuffle-options等命令行参数精细控制评测变量,帮你看清一个模型到底是在"排盘"上出错,还是在"推理"上翻车。本文逐项拆解这些参数,让你第一次运行也能用对配置。
为什么需要这些参数:一次命理评测到底在测什么 🎯
MingLi-Bench 的题目来源于全球算命师大赛 2022–2025 年度赛题,全部整理为选择题,按与标准答案完全一致来评分,并划分进事业、健康、婚姻、财运等十二大类。原始数据见 data/raw/,整理后的数据集为 data/data.json。
命理问答包含两个环节:排盘(根据生辰推出八字 / 紫微斗数命盘)与推理(基于命盘推算事件)。如果让模型全程自己来,分数高低就无法区分是"排盘排错了"还是"推理推错了"。这正是各参数存在的意义:
--cot控制是否要求模型先分析推理、再给答案;--astro控制是否注入预先排好的命盘,把排盘环节从模型手里拿走;--shuffle-options控制是否打乱选项顺序,消除位置偏差。
理解了这个"控制变量"的思路,下面每个参数的作用就一目了然了。
快速上手:一条命令跑通 MingLi-Bench 评测 ⚡
克隆仓库后安装依赖,配置好.env中的 API 密钥(详见 README_zh.md 的配置章节):
pip install -r requirements.txt python -m mingli_bench.cli --model openai/gpt-4o --year 2025 --cot --astro官方推荐的默认配置是始终开启--cot与--astro:这样评测分数反映的是模型的推理能力,而不是它的排盘准确度。仅当你想做消融实验时才关闭它们。
核心参数逐项拆解 🔍
参数定义集中在 cli.py,运行逻辑在 benchmark.py。以下按"影响结果的深度"从高到低逐个讲解。
1.--model/-m:指定要评测的大模型(必填)
模型名有两套写法,路由规则见 factory.py:
- 含
/的写法:视为 OpenRouter 的provider/model形式(如openai/gpt-4o、anthropic/claude-sonnet-4-6),一个 OpenRouter 密钥即可调用大多数模型; - 无
/的写法:按前缀自动推断服务商——gpt-*、o1-*、o3-*→ OpenAI,claude-*→ Anthropic,gemini-*→ Google,deepseek-*→ DeepSeek,doubao-*→ 豆包。
不确定自己配了哪些密钥时,先用--list-models查看支持的模型列表。
2.--platform:强制指定调用平台
默认按模型名自动推断路由,但遇到自动识别不了的情况(比如带版本号的豆包 endpoint id),可以显式指定:
python -m mingli_bench.cli --platform doubao --model doubao-seed-2-0-pro-260215 --cot --astro可选值:openai、openrouter、anthropic、google、deepseek、doubao(定义于 cli.py)。
3.--cot:开启思维链(CoT)推理
开关参数,默认关闭。开启后,发给模型的指令从"请直接给出答案"变为"请先分析推理过程,然后给出答案"。两种提示词的差异可以在 benchmark.py 中直接看到。
命理题目往往需要逐柱、逐宫位推演,思维链给模型留出了足够的思考空间,因此官方建议默认开启;关闭--cot只适合测"直答能力"的消融实验。
4.--astro:注入预先排好的八字 / 紫微斗数命盘
开关参数,默认关闭。开启后,程序会从 data/fortune_api_results.json 中按case_id取出预先排定的命盘,注入到提示词的"命主信息"与"问题"之间,包括:
- 八字四柱、时辰、五行局、生肖;
- 紫微斗数十二宫位(命宫、夫妻、财帛、官禄……)的主星与辅星分布。
注入逻辑见 loader.py 与 benchmark.py。这一步把排盘与推理两个环节解耦:模型拿到的是"标准答案级"的命盘,考卷上只剩推理题,评测结果对不同排盘能力的模型才公平。
5.--shuffle-options:随机打乱选项,杜绝位置偏差
部分模型存在"偏爱选 A"之类的答题倾向,若选项顺序固定,分数可能被高估。开启此参数后,每道选择题的 A–D 顺序会被打乱(实现见 loader.py),且有两个贴心设计:
- 确定性打乱:以题目 ID 的哈希作为随机种子,同一道题每次运行打乱结果一致,便于复现对比;
- 无不动点约束:保证打乱后没有任何一个选项留在原位,位置偏差被真正消除。
每道题的原始答案、新答案及选项映射(如A→C, B→A)都会记录在结果文件的【选项打乱信息】中,方便人工核对。
6.--year/--categories/--sample:筛选题目范围 📊
| 参数 | 作用 |
|---|---|
--year, -y | 只评测某一赛年的题目(2022–2025,每年 40 题),年份按题号自动推断 |
--categories, -c | 按类别筛选,可选:事业、健康、外貌、婚姻、子女、学业、官非、家庭、性格、灾劫、财运、运势 |
--sample, -s N | 只评测前 N 题,适合快速冒烟自测 |
三者可以叠加使用,例如--year 2025 --categories 财运 运势。运行--stats可先查看数据集的年份与类别分布再决定筛选条件。
7.--max-workers/--output-dir/--no-save:并发与结果输出
--max-workers:并发调用 API 的线程数,默认5;速率限制允许时可提高到 8–16,触发限流则调低;--output-dir, -o:结果输出目录,默认logs/。每次运行生成<model>_<时间戳>/,内含results.json(逐题预测与打分)、summary.txt(核心指标摘要)和responses/(每题完整提示词与模型原始回复,逐题存为独立文件);--no-save:只在终端打印摘要,不写文件。
8.--data-path/--env-file:数据与密钥切换
--data-path:指定自定义题库文件,默认自动定位 data/data.json;--env-file:指定另一套.env文件,方便切换不同的密钥组合。所有可配置的环境变量(TIMEOUT、MAX_TOKENS、TEMPERATURE等)见 config.py。
参数速查表 ✅
| 参数 | 默认值 | 一句话说明 |
|---|---|---|
--model, -m | 必填 | 模型名,含/走 OpenRouter,否则按前缀推断服务商 |
--platform | 自动推断 | 强制指定调用平台,覆盖前缀推断 |
--cot | 关闭 | 提示词中加入思维链指令,建议常开 |
--astro | 关闭 | 注入预排八字/紫微命盘,解耦排盘与推理,建议常开 |
--shuffle-options | 关闭 | 每题确定性打乱选项顺序,消除位置偏差 |
--year, -y | 全部 | 仅评测指定年份(2022–2025)的题目 |
--categories, -c | 全部 | 按十二大类筛选,如事业 婚姻 |
--sample, -s N | 全部 | 仅评测前 N 题,快速自测 |
--max-workers | 5 | 并发 API 请求数 |
--output-dir, -o | logs | 结果文件输出目录 |
--no-save | 关闭 | 仅输出到终端,不写文件 |
--data-path | 自动 | 自定义题库文件路径 |
--env-file | .env | 指定其他 env 文件 |
--list-models | — | 列出受支持模型后退出 |
--stats | — | 打印数据集统计信息后退出(可搭配--year) |
完整帮助:python -m mingli_bench.cli --help。
3 种常见场景的推荐组合 🧪
① 冒烟自测(第一次跑通流程)
python -m mingli_bench.cli --model openai/gpt-4o --sample 10 --no-save用 10 道题快速验证密钥、路由、打分链路是否正常。
② 标准评测(官方推荐配置)
python -m mingli_bench.cli --model openai/gpt-4o --year 2025 --cot --astro --shuffle-options开启思维链 + 预排命盘 + 选项打乱,分数最能反映模型的真实命理推理水平。
③ 消融实验(定位短板)
分别关闭--cot或--astro各跑一遍,对比分数变化:掉分多说明模型缺"推理空间"或"排盘能力",从而精准定位短板。
小结
MingLi-Bench 的参数设计围绕"控制变量"展开:--cot管推理深度,--astro管排盘解耦,--shuffle-options管选项公平,--year/--categories/--sample管题目范围,其余参数管并发、输出与密钥配置。按"标准评测"组合起步,再针对自己的研究问题做消融,就能充分发挥这套八字 / 紫微斗数 LLM 评测基准的价值。
【免费下载链接】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),仅供参考