本文是LLM系列文章,针对《TEST-TIME TRAINING ON NEAREST NEIGHBORS FOR LARGE LANGUAGE MODELS》的翻译。
大型语言模型的最近邻的测试时训练
摘要
最近的许多工作通过将检索到的数据添加到输入上下文来增强语言模型的检索功能。要使此方法成功,必须在训练和测试时添加检索到的数据。此外,随着输入长度随检索数据的大小线性增长,现代 Transformer 的计算和内存成本呈二次方增长。为了避免这些复杂性,我们只需在测试时使用其标准训练设置,根据检索到的数据对模型进行微调。我们基于 Pile 数据集的文本嵌入构建了一个大规模分布式索引。对于每个测试输入,我们的系统会检索其邻居并根据其文本微调模型。令人惊讶的是,在少至 20 个相邻函数上检索和训练,每个相邻函数只进行一次梯度迭代,大大提高了 Pile 中 20 多个语言建模任务的性能。例如,与最近邻进行测试时训练显着缩小了小型 GPT-2 和大 10 倍以上的 GPT-Neo 模型之间的性能差距。但是,足够的索引质量和大小是必需的。我们的工作为语言建模建立了测试时训练的第一个基线。
1 引言
机器学习传统上将训练和测试分开。训练后,模型在评估期间保持冻结状态。但是,在测试时使用与每个单独测试实例相关的数据更新模型的有趣想法几乎与机器学习一样古老。这个想法的变体已经存在了近 50 年,包括局部加权回归,局部学习和SVM-KNN。最近,随着深度学习的兴起,测试时训练再次流行起来,暴露了一大片可能的启发式方法。
我们在这个领域研究了一种简单但强大的启发式方法,称为最近邻测试时训练 (TTT-NN),用于语言建模任务。对于每个测试实例,我们从一个巨大的数据库中检索其最近的邻居,并在将这些邻居上微调模型,然后再将其应用于测试实例。
微调语言模型是一种众所周知的做法,可以提高其在特定域或任务上的性能。然而,对于究竟是什么定义领

订阅专栏 解锁全文
3664

被折叠的 条评论
为什么被折叠?



