本文提出 LongLoRA,一种高效的微调方法,用于在有限计算成本下扩展预训练大语言模型(LLMs)的上下文长度。由于长上下文的训练通常需要大量 GPU 资源和训练时间,例如,在 8192 上下文长度上的训练,自注意力层的计算成本是 2048 长度时的 16 倍,本文从两个方面加速 LLM 的上下文扩展:
稀疏局部注意力:尽管推理时需要密集的全局注意力,但微调可以通过稀疏局部注意力高效完成。提出的 shift short attention 机制有效支持上下文扩展,在计算上显著节省开销,同时保持与使用原始注意力微调相当的性能。该机制在训练时仅需两行代码实现,推理时可选择是否使用。
参数高效微调:文章重新审视了参数高效微调(PEFT)在上下文扩展中的应用,发现 LoRA 在可训练的嵌入层和归一化层设置下能有效支持长上下文扩展。
LongLoRA 在 LLaMA2 系列模型(7B/13B 至 70B)上展示了强大的实证结果,例如:
- 在单台 8×A100 机器上将 LLaMA2 7B 的上下文从 4k 扩展至 100k;
- 将 LLaMA2 70B 扩展至 32k 上下文。
LongLoRA 扩展模型上下文时保留原始架构不变,且与大多数现有技术(如 FlashAttention-2)兼容。
此外,为促进 LongLoRA 的实际应用,作者收集了 LongQA 数据集用于监督微调,包含超过 3,000 个长上下文问答对。