为什么模型会有知识截止
模型的知识停在某个日期,是因为它的知识在训练时就被冻结了。本文讲清楚这为何发生,以及工具如何绕过它。
问一个模型某件非常近期的事,你可能会得到一句礼貌的"我不知道",或者更糟,一个过时的自信答案。这就是知识截止:一个时间点,越过它,模型内置的知识便戛然而止。它让人意外,因为我们习惯了会更新的软件、会反映此刻世界的搜索引擎。语言模型在一个根本性的层面上是不同的,这关乎它的运作方式,而不是某人忘了修复的临时局限。理解截止为何存在,既解释了它的恼人之处,也解释了绕过它的标准方法。
知识在训练时就被烘焙进去了
关键事实是,模型的知识不是实时查询的——它在训练时被一次性吸收,然后冻结。回想一下模型是如何建造的:它被展示海量的文本,并调整其内部的数字以很好地预测那些文本。在这个过程中,它吸收了那些文本里包含的模式和事实。它训练所用数据里的世界是什么样子,模型"知道"的就是那个世界。
关键在于,那些数据是采集到某个时间点为止、再无更多的。训练拍下了那个时刻可用文本的快照。一旦训练结束,模型的参数就定下来了;它们不会随着世界向前推移而继续吸收新信息。模型并不连接到一个实时的事件流。它更像一个博览群书的人,他刻苦研读直到某个日期,然后就彻底停止了阅读——那个日期之后的一切,对他而言都是一片空白。
所以截止不是某人施加的一个过滤器。它是那张快照天然的边缘。模型无法知道训练数据结束之后的事件,原因和一本印刷的百科全书无法描述它付印之后发生的事情是一样的。
为什么它不能自己更新
一个合理的问题:模型为什么不干脆在新信息出现时就学过来?答案是,更新一个模型实际的知识,意味着改变它的参数,而那意味着训练——一个沉重、刻意的过程,而不是在一次对话中即时发生的事。
当你和一个模型对话时,你用的是一套固定的参数。你说的任何话都不会永久改变模型所知道的东西;下一个人拿到的是同一个未更新的模型。要真正把新知识加进模型的权重,你必须运行一个训练过程,这既昂贵,又是分成一个个独立的轮次来做、而非连续进行的。这就是为什么新知识是以离散的跳跃到来的——一个有着更晚截止的、更新版本的模型——而不是作为一个逐渐自我更新的系统。你正在用的模型是一个固定的造物,而固定的造物有一个终止日期。
截止是模糊的,而非一条干净的线
人们很容易把截止想象成一堵锐利的墙:之前的一切已知,之后的一切未知。现实更加模糊,而这种模糊本身造成了困惑。
越接近截止,覆盖就越稀薄。靠近训练数据边缘的近期事件,通常不如更老、记录更充分的事件那样得到充分呈现——在快照被拍下之前,世界还没来得及写多少关于它们的内容。所以一个模型对其截止前不久的事情可能含糊不清,尽管它们在技术上落在训练时段之内。
不同的主题也有不同的有效新鲜度。被大量讨论的话题被又快又密地吸收;冷门话题即便在截止之前很久也可能很稀疏。结果是,"模型知道什么"并不是直到某个日期之前都均匀、之后一片空白。它在边缘附近不均匀地淡出。把所声明的截止当作一个近似的边界,而非对它之前知识完整的保证。
危险的失效方式
如果模型对截止之后的一切总是说"我不知道",那么截止就是无害的。真正的隐患在于,它们有时不这么说。因为模型的核心技能是生成貌似合理的文本,它可能用过时的信息自信地回答一个关于近期事件的问题——或者用某种仅仅听起来对的东西去填补空白。
这就是要提防的失效方式。一个模型可能并不可靠地知道自己不知道什么,而且它没有内置的"今天"的感知。问它一个近期的进展,它可能告诉你截至其训练数据时的状态,听起来却完全紧跟时事,或者它可能直接捏造。无论哪种,危险都在于那个答案看起来权威。截止最危险之处,恰恰在于模型并不标明自己已经撞上了它。
工具如何绕过它
标准的解法是,对任何时间敏感的事情,都不再依赖模型冻结的记忆,而是在你提问的那一刻给它新鲜的信息。两种相关的方法占据主导。
第一种是检索:在模型作答之前,一个系统取来相关的、最新的文档——从一个搜索索引、一个数据库、一组文件——并把那些文本连同你的问题一起放进模型的上下文。然后模型基于眼前的材料作答,而非它的内部记忆。这就是检索增强生成背后的思想,也是让一个模型反映当前信息的最常见方式。
第二种是工具使用:允许模型调用外部工具,比如一次实时搜索,并把结果纳入它的回应。这里,模型在需要时实际地伸手去取新鲜数据,而不是凭记忆猜测。
共同的主线是,这两种方法都不改变模型知道什么。它们改变的是模型在作答时能看到什么。冻结的知识仍然冻结;这个变通之法是从外部提供那些流动的信息,好让模型在当前的文本之上推理,而非依赖一张过时的快照。
与截止共处
由此引出几个实用的习惯。对于任何近期或快速变化的事情——时事、最新版本、价格、任何人当下的状况——都不要信任模型未经辅助的记忆;假定它内置的知识可能过时,并加以核实或提供新鲜来源。留意一个答案何时本应依赖近期信息,因为那恰恰是截止咬人的地方。当关于当前事务的准确性很重要时,宁可采用一个检索实时数据或使用工具的方案,而不是要求模型去回忆。并且记住,一个更晚的截止更好,但绝不是当前:即便一个刚训练好的模型,也落后于此刻,落后的时长就是它的数据被采集到现在的那段时间。
总结
知识截止之所以存在,是因为模型的知识在训练时被一次性吸收,然后冻结进它的参数里,而这些参数不会随世界向前推移而更新。模型是它所学文本的一张固定快照,而那张快照在某个日期终结——模糊地,覆盖随着接近边缘而变稀薄。真正的隐患不是那道空白本身,而是模型可能带着虚假的自信回答其截止之后的事,对当下没有真实的感知。可靠的应对不是等模型更新,而是在你提问时给它喂入新鲜信息,通过检索或工具,好让它在当前文本之上推理,而非依赖过时的记忆。知识是冻结的;对当下的访问,必须从外部添加。
