语言模型束具是组合泛化器

语言模型束具是组合泛化器

💡 原文英文,约4000词,阅读约需15分钟。
📝

内容提要

本文探讨了语言模型“束具”(harness)在组合泛化中的关键作用。通过递归语言模型(RLM)设计,将复杂任务分解为局部分布内的子调用,训练短任务可泛化至8-32倍长任务,并跨领域迁移。相比直接训练Transformer,RLM显著提升泛化能力,表明束具可编码高层归纳偏置,降低数据成本,是提升扩展回报的核心。

🔎

延伸解读

束具的核心作用:局部同分布

文章提出,束具(harness)的主要职责是让每个底层语言模型调用都处于“局部同分布”(LID)状态。这意味着即使整体任务超出训练分布,束具也能将复杂状态分解为多个简单、在分布内的子观察。相比之下,现有束具如Claude Code或Codex依赖不断追加上下文,容易导致“上下文腐烂”,使模型偏离训练分布。这一观点强调了束具设计对泛化能力的重要性。

长度与跨域泛化的实验证据

实验表明,递归语言模型(RLM)仅用短任务训练,就能在长任务上取得显著提升,泛化能力比直接训练Transformer强约10倍。在跨域任务中,RLM也能将不同领域的任务视为同构,而基础Transformer则难以泛化。这些结果支持束具能编码高层归纳偏置,从而降低对长数据和多样数据的需求。

训练成本与权衡

RLM训练在相同规模任务上比直接训练Transformer慢1.5-3倍,因为需要多次子调用和等待。然而,随着任务复杂度增加,这种成本优势显现:训练长上下文或长时域任务时,Transformer的上下文膨胀问题更严重。文章指出,束具设计需要平衡额外开销与泛化收益,并强调监督或提示可能有助于引导模型学习可泛化的策略。

Q&A

什么是语言模型束具(harness)?它在AI系统中扮演什么角色?

语言模型束具是位于外部世界和神经网络之间的程序,负责将环境状态编码为语言模型的输入,并决定下一步动作。它的核心作用是携带高层归纳偏置,将复杂问题分解为简单子问题,使每个语言模型调用都处于局部分布内(LID),从而提升组合泛化能力。

为什么说语言模型束具是组合泛化器?

因为束具通过上下文卸载和程序化子调用,将不同任务抽象为同构的,使模型能够将复杂问题分解为熟悉的子问题。这样,模型在训练短任务时学到的策略可以泛化到更长或跨领域的任务,实现组合泛化。

递归语言模型(RLM)是如何实现长度泛化的?

RLM通过上下文卸载将输入特定信息传递给子调用,使根模型看到的轨迹在长短任务中几乎相同。训练时只使用短任务,但模型学到的分解策略与长任务所需策略一致,因此能泛化到8-32倍长的任务。

RLM在跨领域泛化上的表现如何?

RLM在训练于一个领域后,能显著泛化到其他领域,而基础Transformer则难以提升。这是因为RLM通过抽象领域特定信息,将不同领域但结构相似的任务视为同构,从而迁移策略。

为什么直接训练Transformer在组合泛化上表现不佳?

因为Transformer的归纳偏置主要基于token级别的模式,难以将复杂任务分解为可组合的子任务。即使训练数据增加,模型也无法将学到的知识泛化到新任务,导致扩展回报递减。

束具设计如何降低数据成本并提升扩展回报?

好的束具通过使每个语言模型调用处于局部分布内,减少了对大量长任务数据的需求。RLM在短任务上训练即可泛化到长任务和跨领域,从而降低数据收集和训练成本,同时提升扩展的回报。

RLM训练相比直接训练Transformer有哪些额外成本?

RLM训练在相同规模任务上比直接训练Transformer慢1.5-3倍,因为需要多次子调用和等待。但随着任务复杂度增加,Transformer在长上下文上的训练成本更高,RLM的成本优势显现。

什么是“局部分布内”(LID)?为什么它对束具设计重要?

局部分布内指每个语言模型调用处理的提示都在其训练数据分布内。束具通过分解任务,使每个调用都处理简单、熟悉的子问题,从而避免上下文膨胀导致的分布偏移,提升泛化能力。

🏷️

标签

➡️

继续阅读