https://arxiv.org/pdf/2311.04879v1.pdf
https://github.com/yangjianxin1/LongQLoRA
介绍了一种名为LongQLoRA的方法,用于有效地扩展大型语言模型(如LLaMA2)的上下文长度。LongQLoRA结合了位置插值(Position Interpolation)、QLoRA和LongLoRA中的Shift Short Attention等技术的优势。
扩展大型语言模型的上下文长度对于处理长文本任务非常重要。然而,直接使用更长的文本进行预训练需要大量的计算资源。LongQLoRA通过组合现有技术,实现了在单个32GB V100 GPU上将LLaMA2的上下文长度从4096扩展到8192甚至12000的目标。
算法原理:
- 位置插值(Position Interpolation):将模型的预定义上下文长度扩展到目标长度。
- QLoRA:将预训练模型的权重量化为4位,以减少内存占用,并添加可学习的低秩适配器(LoRA)权重来恢复因量化造成的性能损失。
- Shift Short Attention:在微调过程中使用分组局部注意力机制,降低计算复杂度,节省GPU内存。
结论:LongQLoRA在PG19和Proof-pile数据集上取得了与其他方法相竞争的性能。对于LLaMA2 7B模型,LongQLoRA在上下文长度从1024到8192的范围内优于LongLoRA,并接近MPT-7B-8K。此外,作者还构建了一个长指令数据集,并使用该数据集将Vicuna-13B模型的上下文长度从4096扩展到8192,取得了良好的性能。
总之,LongQLoRA是一种内存高效且有效的方法,可以在有限的计算资源下扩展大型语言模型的上下文长度,并在各种任务上表现出色。