LongAlign: A Recipe for Long Context Alignment of Large Language Models

📄 arXiv: 2401.18058v1 📥 PDF

作者: Yushi Bai, Xin Lv, Jiajie Zhang, Yuze He, Ji Qi, Lei Hou, Jie Tang, Yuxiao Dong, Juanzi Li

分类: cs.CL, cs.LG

发布日期: 2024-01-31

🔗 代码/项目: GITHUB


💡 一句话要点

提出LongAlign以解决长上下文对齐问题

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 长上下文对齐 指令微调 长文本理解 损失加权 自然语言处理

📋 核心要点

  1. 现有方法在处理长上下文时,往往无法有效利用指令微调,导致性能不足。
  2. 论文提出LongAlign,通过构建多样化的长指令数据集和优化训练策略,提升长上下文处理能力。
  3. 实验结果显示,LongAlign在长上下文任务上性能提升高达30%,同时保持短任务的处理能力。

📝 摘要(中文)

扩展大型语言模型以有效处理长上下文需要在相似长度的输入序列上进行指令微调。为此,我们提出了LongAlign——一个关于长上下文对齐的指令数据、训练和评估的方案。首先,我们使用Self-Instruct构建了一个长指令跟随数据集,以确保数据的多样性,涵盖来自各种长上下文源的广泛任务。其次,我们采用打包和排序批处理策略,加速在长度分布不同的数据上的监督微调。此外,我们开发了一种损失加权方法,以平衡在打包训练期间不同序列对损失的贡献。最后,我们引入了LongBench-Chat基准,用于评估在长度为10k-100k的查询上的指令跟随能力。实验表明,LongAlign在长上下文任务上比现有的LLM方案提高了多达30%的性能,同时保持了处理短任务的能力。

🔬 方法详解

问题定义:本论文旨在解决大型语言模型在处理长上下文时的对齐问题。现有方法在指令微调时,往往无法有效处理不同长度的输入序列,导致性能下降。

核心思路:LongAlign的核心思路是通过构建多样化的长指令数据集,并采用优化的训练策略,来提升模型在长上下文任务中的表现。通过这种方式,模型能够更好地理解和生成长文本。

技术框架:LongAlign的整体架构包括三个主要模块:首先是长指令数据集的构建,其次是采用打包和排序批处理策略进行监督微调,最后是通过LongBench-Chat基准进行评估。

关键创新:本研究的关键创新在于引入了损失加权方法,以平衡不同长度序列对损失的贡献。这一设计使得模型在训练过程中能够更有效地学习长上下文的特征。

关键设计:在训练过程中,采用了打包和排序的批处理策略,以加速训练。同时,损失加权方法的设计确保了不同长度序列的贡献得到合理平衡,从而提升了模型的整体性能。具体的参数设置和网络结构细节在论文中有详细描述。

🖼️ 关键图片

img_0

📊 实验亮点

实验结果表明,LongAlign在长上下文任务上相比现有方案性能提升高达30%。此外,该方法在处理短任务时也保持了良好的能力,展示了其在多种任务上的适应性和有效性。

🎯 应用场景

该研究的潜在应用领域包括自然语言处理中的长文本理解、对话系统以及信息检索等。LongAlign的设计不仅提升了长上下文的处理能力,还为未来的语言模型研究提供了新的思路,具有重要的实际价值和影响。

📄 摘要(原文)

Extending large language models to effectively handle long contexts requires instruction fine-tuning on input sequences of similar length. To address this, we present LongAlign -- a recipe of the instruction data, training, and evaluation for long context alignment. First, we construct a long instruction-following dataset using Self-Instruct. To ensure the data diversity, it covers a broad range of tasks from various long context sources. Second, we adopt the packing and sorted batching strategies to speed up supervised fine-tuning on data with varied length distributions. Additionally, we develop a loss weighting method to balance the contribution to the loss across different sequences during packing training. Third, we introduce the LongBench-Chat benchmark for evaluating instruction-following capabilities on queries of 10k-100k in length. Experiments show that LongAlign outperforms existing recipes for LLMs in long context tasks by up to 30\%, while also maintaining their proficiency in handling short, generic tasks. The code, data, and long-aligned models are open-sourced at https://github.com/THUDM/LongAlign.