做产品 PMaker
空格的键盘空格的键盘
大模型

知识截止日期

知识截止日期 | 大模型 | 做产品

知识截止日期

训练语料收集到某一天就停了,那一天之后的世界,模型完全没见过。它不会因此沉默,它会推一个。

你会遇到的现象

  • 它给的代码用的是某个库两年前的写法,新版本早就改了

  • 问它某个模型的最新版本,它笃定地说出一个已经过时的型号

  • 你让它算「距离下周三还有几天」,它算错了,因为它不知道今天是几号

截止日是什么

训练要先把语料收齐,收齐这个动作有个截止时间。之后还要训练几个月、做安全评估、内部测试,才对外发布。所以你用到的模型,知识总是比今天旧一大截,而且比它的发布日还要旧几个月。

还有两条容易被忽略的细节。

**截止日附近的知识是稀薄的。**一件事发生之后,网上要过一段时间才会积累起足够多的讨论。所以临近截止日的那几个月,语料密度明显偏低,模型对这段时间的了解比对更早时期还浅。别把截止日当成一条「之前全懂、之后全不懂」的干净分界线。

**模型自己报的截止日未必准。**你问它「你的知识截止到什么时候」,它给的答案也是生成出来的,可能来自系统提示,也可能是编的。要准确的日期,去看官方文档。

为什么它讲错还很自信

因为「不知道」在它那里不是一个状态。截止日之后的事,它没有对应的记忆,但它有大量关于这类事情长什么样的规律。于是它按规律外推:版本号往上加一位、路线图照着惯例往下写、人事任命按行业常态猜一个。推出来的东西非常合理,只是恰好不是真的。

最危险的是变化快、格式固定的领域,因为这两个特征凑在一起,编得最像:

这类内容典型翻车方式 软件库的 API给出上一个大版本的写法,参数名对不上 模型和产品的版本号说出一个不存在的型号,说得很笃定 价格、额度、限制报一个早就调过的数字 政策、法规、合规要求引用已经废止的条款 「最新」「目前」「现在」类问题它理解的「现在」是截止日那一刻 任何相对时间计算不知道今天几号,全盘错

最后两行最常被忽略。凡是提示里出现「最新」「目前」「今年」这类词,你都得先问一句:它知道今天是哪天吗?

截止日不是一条「之前全懂、之后全不懂」的干净分界线

完全没见过 但它照样会推一个

知识截止日

今天

语料 密度

更早的时期,讨论积累充分 临近截止的几个月 了解比更早时期还浅

成本几乎为零、收益最大:把今天的日期写进系统提示 模型自己报的截止日也是生成出来的,要准数看官方文档

那块红色区域里,它不会沉默——它会按规律外推:版本号往上加一位、路线图照惯例往下写。**推出来的东西非常合理,只是恰好不是真的。**凡是提示里出现「最新」「目前」「今年」,都先问一句:它知道今天是哪天吗。

怎么把今天塞给它

解决办法不在模型侧,在你这边。核心就一句话:凡是会过时的信息,都要由你在这一次请求里提供,不能指望它记得。

  • **把今天的日期写进系统提示。**成本几乎为零,收益出奇地大。一行「今天是 2026 年 8 月 17 日」就能修好所有相对时间计算,也能让它在回答「最新」类问题时意识到自己有多旧。

  • **需要事实就先检索。**把真实原文取出来贴进上下文,再让它基于原文回答。这是把「回忆题」换成「阅读理解题」,它的正确率会有质变。但要记得同时限定:只能用这些材料。

  • **明确声明优先级。**在提示里写清楚「以下资料与你已有的认知冲突时,以资料为准」。不写这一句,它可能会把你给的新信息和旧记忆和稀泥,混出一个都不对的版本。

  • **实时数据要走工具。**库存、价格、订单状态这类每分钟都在变的东西,检索也不够,得让它去调接口现查。这类信息永远不该来自模型的记忆。

还有两件产品层面的事。一是把版本钉死。让它写某个库的代码时,直接告诉它用哪个版本,最好连关键 API 的签名一起给。二是在界面上标出信息的时间——如果答案来自模型记忆,就说清楚这是截止到某个时间的认知;如果来自实时检索,就把来源和抓取时间露出来。用户能看见时间,误判的代价就小很多。

接着看

大模型与搜索引擎的区别 有截止日的根本原因:它是凭一份固定的权重在答,不是在查。

幻觉产生的原因 「没见过也照样往下推」的机制,以及防住它的四个动作。

上下文是怎么回事 「把今天塞给它」,塞的就是上下文。这块地方有多大、怎么分配。