@oneill_c: https://x.com/oneill_c/status/2077453217609453784

X AI KOLs Timeline 新闻

摘要

一位研究人员讨论了LLMs中的持续学习挑战,将其比作健忘的实习生,并探索了扩展上下文窗口、构建有状态记忆以及将上下文压缩为潜在表示等方法,引用了他们在Still上的工作。

https://t.co/6kMcrBzypS
查看原文
查看缓存全文

缓存时间: 2026/07/16 00:01

尝试真正定义持续学习

今天的每个AI智能体都是一个失忆的实习生。你可以在一个上下文窗口内教会它令人惊讶的大量内容。然后上下文窗口结束,一个新的实习生到来,它只有前一个实习生留下的笔记。笔记可以越来越好,但实习生本身不会进步。

这就是为什么持续学习感觉像是AI研究的圣杯。我们有创造智能机器的配方,但我们实际上没有一种方法让这些机器中的某一台能够在长时间跨度内持续从经验中学习。

明确来说,我指的问题比大型实验室通常关心的要窄。他们想要拿一个非常通用的模型,用过去六个月的互联网数据进行更新,而不破坏太多东西。从某种意义上说,那个问题本质上就是难解的:你试图持续更新一个巨大且定义不清的分布,同时保留旧分布中所有有用的东西。

我更关心的是LLM实习生——也就是一个为某个公司、团队或用户执行特定任务的模型,即使这个任务具有很强的自主性。我们如何让这个模型持续学习它需要知道的一切,以便更好地完成工作?

人类至少是这个版本问题的存在性证明。

缺失的内存层

当信息在上下文窗口内时,语言模型在样本效率上令人惊讶地高(可以说比人类样本效率更高)。但一旦超出上下文窗口——通常在几十万到大约一百万个token之间——你就得做一堆权宜之计才能继续利用这个上下文学习机制。

LLM目前有两种原生的内存形式。第一种是完全无损但非常昂贵:上下文及其KV缓存。模型可以直接关注到发生的一切,但缓存增长得非常快。对较长序列进行全注意力在预填充时很昂贵,KV缓存内存随序列长度线性增长,且很难无限扩展。

第二种是极其压缩且稳定的:权重本身。海量的信息和能力被封装在其中,推理时检索这些信息非常廉价。但更新权重而不破坏模型非常困难。两者之间几乎没有中间状态。

因此,我们这个领域推动了几个不同的方向。

  • 第一个是扩展上下文窗口。人们尝试了线性注意力及其变体,其中我们维护一个固定大小的隐藏状态,信息可以写入其中,同时还有许多其他技巧来降低注意力和KV缓存的成本。但我们尚未真正实现将上下文长度提升几个数量级(超过大约一百万个token)而不牺牲某些东西。这感觉很难扩展。

  • 第二个是构建带有状态化内存的框架:内存Markdown文件、技能文件、自然语言压缩、对旧对话的向量搜索,以及越来越复杂的规则来决定将哪些内容加载到上下文中。这很 hacky,但也是迄今为止效果最好的方法。

  • 第三个是将上下文窗口本身压缩成某种学到的潜在表示。

第三个是我最兴奋的方向。人类并没有一个完美的无损工作记忆来记录发生在我们身上的一切。我们的工作记忆很小且有损耗,但我们似乎能够将经验持续压缩成几层更长期的内存。

这就是我们关于 Still 的工作所涉及的。它受到 Cartridges 以及更分析性的压缩方法(如快速KV缓存压缩)的启发。我认为现在有足够的证据表明这在某种形式上是有效的。我们最终将能够对神经/潜在空间中的压缩进行精细控制,而不受限于通过自然语言摘要进行的token空间压缩。

假设现在我们可以将一个非常长的上下文压缩成一个更小的潜在缓存,而不会丢失太多重要信息。那么问题就变成了:

我们应该使用这些缓存中的信息来更新权重,还是应该专注于在推理时加载正确的缓存?

知识应该被检索还是被内化?

我最初的直觉是,如果有办法将某些东西内化到你的大脑中,那么不断查找它似乎很愚蠢。

@justinskycak(数学学院的那位,写了很多关于学习科学的好内容)从自动化的角度讨论了这一点。通过重复的、有意的练习,尤其是检索练习,基础知识和低层程序会深深嵌入长期记忆。它们变得即时且毫不费力地可用。你不再需要每次都有意识地推导它们、重构它们或使用稀缺的工作记忆槽。

例如,篮球运动员在跑战术时不需要思考如何运球。运球是自动的,从而释放认知资源用于更高层次的决策。没有基础知识上的自动化,一切都会感觉费力且碎片化。

你可以看到语言模型有同样的问题。前沿智能体经常感觉它们花费95%的时间在搜索信息、重构之前发生的事情以及重新推导它们已经执行过多次的程序。如果我们反正要走为特定工作定制模型的道路,那么感觉自然而然地,反复有用的知识和技能最终应该被内化到权重中。

但也许它们不需要。有些人认为,如果一个系统(模型加上框架、内存文件、技能文件和工具,其中除了模型之外的一切都在演化)在功能上等同于一个持续学习者,那么我们就不必费心进行梯度更新。我们可以信任上下文学习来使用上下文中放置的任何内容。我们唯一的工作就是弄清楚存储什么和加载什么。

我认为这可能是次优的,原因有三。

第一个是无聊的:成本。如果最终有一种方法可以用95%更少的token完成相同的任务(我确实认为前沿模型花费95%的token只是在搜索),那么利润率压力将使使用它的动机难以忽视。如果针对特定模型进行权重持续学习是可能的,人们将有强烈的动力去追求它,直到它生效。

第二个是技能习得。当被记住的内容可以干净地写下来时,外部内存效果最好,比如一个事实或数据库的位置。但许多行为很难明确指定。你不会仅仅通过加载一个更长的指令文件就学会出色的工具使用、软件工程或谈判。这就是为什么RL在预训练后灌输技能以及后训练专业化方面变得如此流行。

第三个,我认为是最重要的,就是手工构建一个框架感觉不太符合苦涩的教训。如果模型持续重写自己的框架、内存系统和检索策略,这或许仍算作苦涩的教训。我更愿意接受这一点。但即便如此,它也必须花费大量的token来弄清楚如何减少花费在搜索上的token数量。它从未绕过这样一个事实:底层模型仍然是一个失忆的实习生。

Dwarkesh 这里有一个很好的类比。想象你试图教一个人吹小号。每隔15分钟,学生就消失了,一个新学生来了。新学生从未碰过小号。他们只有前一个学生留下的笔记。

你可以让笔记变得极其出色。但在某个时候,你大概希望学生真正学会如何吹小号。

问题在于写入权重会煮糊模型

不幸的是,我们的工作越来越让我得出一个令人不安的结论:显而易见的替代方案(持续更新权重)效果也并不好。

这里有一个重要的区别:知识获取与技能获取。乍一看,知识获取似乎更容易。教会一个模型客户续签了合同,当然比教会它一个复杂的新行为容易。在一次性设置中,可能确实如此。但在迭代情境中——这才是对持续学习真正重要的情境——我越来越认为知识获取可能比技能获取更难。

如果你有足够好的环境和合适的RL奖励,技能获取基本上是可以奏效的。定义环境和奖励很难,但至少我们有配方。模型采取行动,接收反馈,逐渐在行为上变得更好。随着LLM变得更好,自动评估将从模型在生产环境中运行的轨迹中动态构建。

知识则更奇怪。我们没有可靠的方法反复将新事实写入模型权重而不最终覆盖旧事实、降低其能力或削弱其学习后续信息的能力。

一个能随时间成功获取知识的系统需要经过三个测试:

  • 它不会覆盖基础模型中的有用信息。
  • 它不会忘记之前更新中添加的信息。
  • 它不会损害模型的一般能力,如指令遵循、推理或学习新事物的能力。

当你审视我们可能写入权重的各种方法——从SFT到离线蒸馏、在线蒸馏、RL——我不认为任何普通方法能通过全部三个测试。

SFT大概是最明显的例子。在迭代设置中,它可能灾难性地忘记基础模型中的信息,覆盖之前更新中引入的信息,并损害模型的一般能力。它在三个方面都失败了。

离线蒸馏和在线蒸馏似乎好一些,RL也是如此。但没有一种在重复更新情境中表现稳健。而重复更新正是关键。我们讨论的是持续学习,而非一次性的微调。

RL也不一定能很好地获取明确的知识。模型可以学习一个在环境中成功的策略,但不一定干净地内化底层事实。因此,它可能因为更基本的原因在知识获取上失败。我们很快会发布一些研究,证实这些说法中的许多观点。

当然,也有一些有希望的变体。

ECHO 可能允许RL在持续学习能力的同时获取明确事实。教学式RL,以及在线自蒸馏的变体,可能缓解部分退化,尽管这些方法在持续情境中尚未稳定。

老实说,也许目标本身就被错误定义了。@b_geist 对我说了一个很好的观点:如果你同时奖励正确性和效率,也许模型最终会学会记住关于环境的重复事实,因为反复搜索它们会消耗token。它可以通过优化发现自动化。

但目前还没有任何现成的方法,能让一个为特定任务训练的模型在数千次更新中持续获取知识而不破坏某些重要东西。

也许上下文学习不是一个变通办法

我当前的工作假设是,预训练和RL花费大量计算来优化模型的上下文学习机制,而随后的权重修改会对它产生破坏性干扰。

模型学会了如何快速适应上下文中的信息。然后我们试图通过改变实现该适应机制本身的基质来使这种适应永久化。可塑性研究也指向同一方向。最近的研究表明,当模型在新任务上反复微调时,它可能失去可塑性,并逐渐变得更难学习后续任务。

一个可能的结论是,我们应该完全拥抱ICL,而不是与之对抗。这看起来什么样?仅注意力的Transformer + 一个动态加载的大型MLP数据库?一个压缩KV缓存的数据库,通过向量搜索/HNSW加载?无论如何,这些可能都比纯框架和内存Markdown文件效果更好,因为潜在空间中的搜索比token空间中的搜索更合理。

你可以想象像这样的东西:

  • 一个无损的上下文,包含直接相关的内容。
  • 一个压缩的潜在情景记忆,包含最近的经历。
  • 权重包含高度固化的知识和能力。

真正的问题可能是学习哪些信息属于每个层级、何时应在层级之间移动以及它能承受多少压缩。人类似乎不将所有记忆以相同格式存储——例如,有些东西保持情景化,而有些技能变成自动化。因此,持续学习者可能需要同样的层级结构!

持续学习不是一个问题

我想我在这里的要点是,为了应对持续学习,你首先必须能够定义问题。持续学习不是一个单一的模糊问题;相反,它根据你如何定义(例如知识vs技能获取,狭窄vs通用)而有巨大差异,只有真正思考你需要它做什么的特性,你才能在确定方法上取得进展。目前感觉就像是盲人摸象(一个在研究灾难性遗忘,一个在研究记忆层级,等等)。我们可能只需要在我们真正想用持续学习系统做什么上获得足够的共识,然后才能就最佳构建方式达成一致。

相似文章

持续学习何时需要学习

arXiv cs.LG

本文提出了一个统一的LLM持续学习框架,将变化沿空间(新领域)和时间(数据漂移)两个维度进行解耦。它评估了多种方法,包括提示、监督学习、强化学习和上下文压缩,在现实的顺序设置下。