详细内容或原文请订阅后点击阅览
数据集分解:使用可变序列长度课程加快 LLM 训练
大型语言模型 (LLM) 通常在由固定长度的标记序列组成的数据集上进行训练。这些数据集是通过随机连接不同长度的文档,然后将它们分块为预定目标长度的序列 (concat-and-chunk) 来创建的。最近的注意力实现掩盖了跨文档注意力,减少了标记块的有效长度。此外,由于注意力的二次成本,对长序列的训练在计算上变得难以承受。在本研究中,我们引入了数据集分解,一种新颖的可变序列长度……
来源:Apple机器学习研究大型语言模型 (LLM) 通常在由固定长度的标记序列组成的数据集上进行训练。这些数据集是通过随机连接不同长度的文档,然后将它们分块为预定目标长度的序列 (concat-and-chunk) 创建的。最近的注意力实现掩盖了跨文档注意力,从而减少了标记块的有效长度。此外,由于注意力的二次成本,对长序列进行训练在计算上变得难以承受。在本研究中,我们引入了数据集分解,这是一种新颖的可变序列长度训练技术,以应对这些挑战。我们将数据集分解为存储桶的联合,每个存储桶包含从唯一文档中提取的相同大小的序列。在训练期间,我们使用可变序列长度和批处理大小,同时从具有课程的所有存储桶中采样。与在训练的每一步都产生固定注意力成本的 concat-and-chunk 基线相比,我们提出的方法在每一步都产生与实际文档长度成比例的计算成本,从而大大节省了训练时间。我们训练一个 8k 上下文长度的 1B 模型,其成本与使用基线方法训练的 2k 上下文长度模型相同。在网络规模语料库上进行的实验表明,我们的方法显著提高了标准语言评估和长上下文基准测试的性能,与基线相比,训练速度提高了 6 倍,达到了目标准确率。我们的方法不仅可以对长序列进行有效的预训练,还可以随着数据集大小的有效扩展。最后,我们阐明了训练大型语言模型的一个关键但研究较少的方面:序列长度的分布和课程,这会导致不可忽略的性能差异。