为什么不建议用知识时间和模型 ID 测幻觉
有些用户会问“你的知识截止到什么时候?”或“你是什么模型 ID?”来判断模型有没有幻觉。这个方法可以当作随手观察,但不适合作为准确测试。
结论先说
- 问知识截止时间,模型回答不一定可靠,因为它未必能读取真实部署时的系统信息。
- 问模型 ID,模型回答也不一定可靠,因为客户端、中转层、供应商和上游模型可能都有自己的命名。
- 想判断模型质量,应该测真实任务完成质量,而不是只看模型自报的知识时间或身份。
为什么知识时间自报不准
“你的知识截止到什么时候?”看起来很直接,但它测到的经常不是实际能力。
常见原因:
- 模型不一定知道当前服务给它设置的真实知识截止时间。
- 客户端或系统提示词可能写了一个通用时间,但这不等于模型能回答所有该时间前的问题。
- 不同上游、不同版本、不同路由的知识范围可能不同。
- 有些模型会根据训练记忆、提示词或上下文猜一个看起来合理的日期。
- 即使知识截止时间较新,也不代表它对每个小众事件、冷门库、具体版本都知道。
所以,模型把知识时间说错,不一定等于这个模型所有回答都不可靠;模型把知识时间说对,也不代表它不会幻觉。
为什么模型 ID 自报不准
“你是什么模型?”这种问题也不适合做严格判断。
常见原因:
- 模型未必能读取真实运行时的模型 ID。
- 中转服务可能使用别名、分组或路由策略。
- 客户端显示名、配置名和上游真实模型名可能不是同一个东西。
- 一些模型会根据训练记忆或上下文猜一个看起来合理的名字。
因此,模型自报身份只能当参考,不能当最终凭据。
更推荐怎么测
更可靠的方式是用固定任务对比结果:
| 测试目标 | 推荐做法 | 看什么 |
|---|---|---|
| 知识可靠性 | 准备 5 到 10 个有明确答案的问题,并附上标准答案 | 是否能回答准确,是否会承认不确定 |
| 时效性 | 选几个明确发生在某个时间点前后的事实 | 是否混淆时间线,是否把旧信息当新信息 |
| 代码能力 | 给一个小 bug 或小功能 | 是否能读懂上下文、改对文件、通过测试 |
| 长上下文能力 | 给一段较长需求和约束 | 是否遵守关键约束,是否前后矛盾 |
| 稳定性 | 同一个任务重复测几次 | 答案质量是否大幅波动 |
| 配置是否生效 | 看客户端配置和服务端日志/用量记录 | 请求是否走目标线路和目标模型 |
判断幻觉时看这几点
更有价值的判断标准:
- 是否在不知道时明确说“不确定”。
- 是否能说明答案依据,而不是只给一个肯定结论。
- 是否把不确定的内容说得像事实。
- 是否编造不存在的配置项、命令、路径或版本号。
- 是否在被提醒“只根据已知信息回答”后仍然自由发挥。
给用户的建议
不要用单个“知识截止时间”或“模型 ID 自报”来下结论。更好的做法是准备一组固定测试题,每次只改一个变量:同一组问题、同一个模型、同一条线路,然后对比答案是否稳定、是否有依据、是否能承认不知道。
不要把测试题设计成猜谜
如果问题本身含糊,或者没有明确标准答案,模型答错不一定是幻觉。先把问题和评分标准写清楚,再判断模型质量。

