为什么 ChatGPT、DeepSeek 排盘会出错?两次答案为何不一样
更新于 2026-09-13
因为 ChatGPT、DeepSeek 这类通用大模型是语言模型,不是历法引擎:它们靠预测下一个字来「回忆」万年历和安星规则,而不是真的查表计算,所以遇到节气交界、夜子时、真太阳时就容易换错,紫微斗数安星步骤多,错得更常见。再加上每次回答都是随机采样,同一生辰在两个窗口排出两张不同的盘是正常现象。解法是把排盘交给确定性引擎,AI 只在算好的盘面上做解读。
语言模型与历法引擎是两种完全不同的东西
大模型的工作方式是根据上文预测下一个最可能出现的字。它读过很多命理文章,所以「知道」1990 年是庚午年、甲子日之后是乙丑日,但这是统计上的联想,不是逐日推算。问它某一天的日柱,它给出的是「看起来最像正确答案的字符串」,而不是从基准日一天天推出来的结果。
历法引擎则相反:它存有节气时刻表与基准干支,任何日期都是从基准点算出来的,输入相同就输出相同。这也是为什么手机万年历从不「换个窗口就变」,而聊天机器人会。
排盘要换算的东西比想像多
- 年柱:以立春为界,不是农历正月初一。立春前几天出生的人,年柱应该是前一年。
- 月柱:以十二节(立春、惊蛰、清明……)为界,节气交接的时刻精确到分钟,同一天早上和下午可能属于不同的月柱。
- 日柱:需要从基准日连续推算,任何一天记错就整段错。这是模型最常「看起来对、其实错」的地方。
- 时柱:先定时辰,再依日干起时干(五鼠遁)。夜子时(二十三点后)算当天还是隔天,各派做法不同,引擎必须明确选一种并说明。
- 真太阳时:按出生地经度修正时刻,离标准时区中央经线越远差得越多,可能差到二三十分钟,正好跨过时辰边界。
- 时区与夏令时间:香港、台湾、中国大陆都曾实施过夏令时间,几十年前的出生时间需要还原。
紫微斗数:规则量更大,错得更常见
八字只要四柱正确就完成了骨架,紫微斗数却是一连串表格查找的接力:由农历生月与生时定命宫,由命宫干支的纳音定五行局,由局数与生日查紫微星落宫,再按固定间隔安十四主星,然后依生年干支、生月、生时安左辅右弼、文昌文曲、禄存、擎羊陀罗等辅星,最后以生年干定四化并排大限。
每一步都依赖前一步,任何一格错了,整张盘都会跟着位移。语言模型对这些表格的记忆是零散的,于是「DeepSeek 紫微斗数排盘错误」「同一生辰两个窗口答案完全不一样」就成了常见的搜索词。
为什么两个窗口会给出两个答案
模型生成文本时会做随机采样,同样的输入每次可能走到不同的字,这在写作上是优点,在计算上是致命伤。两个窗口之间也没有任何共享状态,第二个窗口根本不知道第一个算了什么。更麻烦的是,模型不会告诉你它没把握:两张盘都写得一样流畅、一样自信。
打开「深度思考」之类的推理模式会好一些,因为它会把推算过程写出来,你至少能看到它在哪一步走偏。但那仍然是用文本模拟计算,不是计算。
确定性引擎怎么解决这个问题
解法不是换一个更大的模型,而是把工作分开:计算交给程序,解读交给模型。算(suan.you) 把这称为「引擎起盘、AI 释义」:八字、紫微、大六壬、奇门遁甲、六爻、梅花易数、玄空飞星、西洋占星等十五门技法全部由引擎按古法规则计算,节气以精确时刻为界,同一组出生信息永远得到同一张盘,行家可以逐项覆核。
引擎算完之后,语言模型才登场,而且只能在盘面事实之内写判词:各法同指才下结论,分歧处只能说未定,应期以大六壬三传为锚、全篇只给一个时间窗。模型擅长的部分(把盘面讲成人话)被保留,不擅长的部分(计算)被拿走。
解读层面仍然无法保证的事
盘排对了,只是把地基打稳。解读是传统框架的运用,贴不贴切因人而异,预测是否应验更没有任何工具能保证。命理是文化参考,不是医疗、法律或投资建议,也不能拿来预测彩票。把引擎排出的盘当作看清处境的结构化工具,决定仍然自己做,这才是合理的期待。
延伸问题
AI 算命的原理是什么?
分两层:计算层把出生时间按历法规则换成盘面(四柱、星曜、卦象),解读层把盘面转成文本。通用聊天机器人把两层都交给语言模型,所以计算层不稳;专用平台用程序做计算层、模型只做解读层。
DeepSeek 排的紫微命盘怎么验证对不对?
拿它列出的命宫位置、五行局、紫微星落宫,跟任何一个紫微排盘工具对照,三项都一致才算过关。也可以在另一个窗口重问一次,两次不一样就一定有一次是错的。
是不是用更新、更大的模型就会排对?
会好一些,但本质没变:仍是用文本模拟计算,仍会随机采样。排盘这种必须零错误的工作,应该交给确定性程序。
如果我先把正确的八字贴给 AI,解读就可靠了吗?
排盘层面的问题解决了,解读就回到「贴不贴切」的范畴,这是可以参考的。记得要求它在你给的盘面之内解读、不要自行重排,也不要编造盘上没有的神煞。
相关问题
测算内容为传统文化参考,不构成医疗、法律或投资建议。