Structured Packing in LLM Training Improves Long Context Utilization

📄 arXiv: 2312.17296v9 📥 PDF

作者: Konrad Staniszewski, Szymon Tworkowski, Sebastian Jaszczur, Yu Zhao, Henryk Michalewski, Łukasz Kuciński, Piotr Miłoś

分类: cs.CL

发布日期: 2023-12-28 (更新: 2025-02-27)

备注: AAAI'25


💡 一句话要点

提出SPLiCe结构化数据填充方法,提升LLM长文本上下文利用率

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

关键词: 长文本理解 上下文利用 结构化训练 信息检索 大型语言模型 数据增强 迁移学习

📋 核心要点

  1. 现有长文本LLM在实际应用中存在上下文利用率不足的问题,难以有效处理长距离依赖。
  2. SPLiCe方法通过检索相关文档,构建具有语义关联的长文本训练样本,提升模型对上下文的理解。
  3. 实验表明,SPLiCe在多种模型和任务上均有提升,并能缓解“中间丢失”现象,且具有迁移学习能力。

📝 摘要(中文)

本文研究了如何通过构造训练数据来增强语义相关性,从而提高大型语言模型(LLM)对长文本上下文的利用率。为此,作者提出了长文本结构化填充(SPLiCe)方法,该方法利用检索技术将相互关联的文档整理成连贯的长文本训练样本。通过在3B、7B和13B等不同规模的模型上进行验证,SPLiCe在Qasper和HotpotQA等长文本任务中表现出性能提升。值得注意的是,即使使用SPLiCe进行短暂的微调也足以实现这些优势。此外,SPLiCe还能有效缓解大型模型中常见的“中间丢失”现象。本文还对SPLiCe的设计选择进行了全面分析,并揭示了有趣的迁移效应;例如,在编程代码上进行训练可以提高自然语言任务的性能。

🔬 方法详解

问题定义:现有的大型语言模型在处理长文本时,往往无法充分利用上下文信息,导致性能下降。尤其是在需要理解长距离依赖关系的任务中,模型容易忽略中间部分的信息,出现“中间丢失”现象。现有的训练方法难以有效地让模型学习到长文本中各个部分之间的关联性,从而限制了模型在长文本任务中的应用。

核心思路:本文的核心思路是通过结构化训练数据,增强模型对长文本上下文的理解。具体而言,作者认为将语义相关的文档组合成一个长文本训练样本,可以帮助模型更好地学习到文档之间的依赖关系,从而提高上下文利用率。SPLiCe方法通过检索与给定文档相关的其他文档,并将它们拼接在一起,形成一个连贯的长文本序列。

技术框架:SPLiCe方法主要包含以下几个阶段:1) 文档检索:使用检索模型(如BM25或基于Transformer的检索模型)从文档库中检索与目标文档相关的文档。2) 文档排序:根据检索模型给出的相关性得分对检索到的文档进行排序。3) 文档拼接:将目标文档和检索到的相关文档按照一定的顺序拼接成一个长文本序列。4) 模型训练:使用拼接后的长文本序列对LLM进行微调或训练。

关键创新:SPLiCe方法的关键创新在于其结构化数据填充的思想。与传统的随机采样或简单拼接方法不同,SPLiCe通过检索语义相关的文档来构建训练样本,从而增强了模型对上下文的理解能力。这种方法能够有效地缓解“中间丢失”现象,并提高模型在长文本任务中的性能。

关键设计:SPLiCe方法的关键设计包括:1) 检索模型的选择:可以使用不同的检索模型,如BM25、ColBERT等。2) 相关文档的数量:需要确定每个目标文档检索多少个相关文档。3) 拼接顺序:可以按照相关性得分从高到低的顺序拼接文档,也可以采用其他策略。4) 训练策略:可以使用不同的训练策略,如微调或从头开始训练。作者发现,即使使用较短的微调时间,SPLiCe也能带来显著的性能提升。

📊 实验亮点

实验结果表明,SPLiCe方法在Qasper和HotpotQA等长文本任务中取得了显著的性能提升。例如,在某些任务上,使用SPLiCe微调后的模型性能提升了几个百分点。此外,实验还表明,SPLiCe能够有效缓解“中间丢失”现象,并且具有一定的迁移学习能力,例如在编程代码上训练的模型在自然语言任务上也能取得更好的性能。

🎯 应用场景

SPLiCe方法可应用于各种需要处理长文本的任务,如问答系统、文档摘要、信息检索等。通过提高模型对长文本上下文的利用率,可以提升这些应用在处理复杂文档时的性能。此外,该方法还可以用于训练具有更强长文本处理能力的LLM,从而推动LLM在更多领域的应用。

📄 摘要(原文)

Recent advancements in long-context large language models have attracted significant attention, yet their practical applications often suffer from suboptimal context utilization. This study investigates structuring training data to enhance semantic interdependence, demonstrating that this approach effectively improves context utilization. To this end, we introduce the Structured Packing for Long Context (SPLiCe) method, which utilizes retrieval to collate mutually relevant documents into long and coherent training examples. We validate SPLiCe empirically across models of varying sizes -- 3B, 7B, and 13B -- achieving improved performance in long-context tasks, such as Qasper and HotpotQA. Remarkably, even brief fine-tuning with SPLiCe is sufficient to realize these benefits. Additionally, SPLiCe effectively mitigates the lost-in-middle phenomenon often observed in large models. Our comprehensive analysis of SPLiCe explores its design choices and reveals intriguing transfer effects; for instance, training on programming code enhances performance on natural language tasks.