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