Beyond Fixed Length: Bucket Pre-training is All You Need
创建于 更新于
摘要
本文针对大型语言模型预训练中固定长度数据组成方法存在的填充率高、截断率大和拼接率高等问题,提出了三项数据质量量化指标,并基于此设计了多桶自适应数据组成策略BucketLLM。该方法通过灵活组织不同长度的训练序列,实现了较低的截断率和拼接率,同时保持较高的计算效率。实验表明,BucketLLM在保持训练效率的同时,提升了模型在多项标准NLP基准上的表现,特别是在长上下文处理和模型规模扩展方面取得了显著提升[page::0][page::1][page::4][page::5][page::6]。
速读内容
研究背景与问题定义 [page::0][page::1]

- 现有固定长度预训练数据组织方法导致文档截断、拼接过多,影响模型对长距离依赖的捕捉和语义连贯性。
- 不同预训练数据集中文档长度分布差异显著,固定长度模式难以灵活适应多样文本结构。
- 提出三大量化指标评估数据组成质量:填充率、截断率、拼接率。
多桶数据组成算法设计 [page::2][page::3]
- 设计多桶方法,将文本按长度划分至不同桶(1024、2048、4096、8192、16384 tokens),避免了单一固定长度的弊端。
- 优化算法采用启发式策略,平衡填充、截断和桶空间利用率,支持适应更灵活的数据切分和拼接。
- 新算法通过文档池管理、多级排序分配,实现不同长度桶的高效利用,减少不必要填充和截断。
数据组成指标与方法对比 [page::5]
| 方法 | 填充率(%) | 截断率(%) | 拼接率 |
|---------------|----------|----------|-------|
| Fixed-1024 | 0.01 | 61.26 | 1.03 |
| Fixed-2048 | 0.01 | 38.39 | 2.05 |
| Fixed-4096 | 0.02 | 21.45 | 4.11 |
| Fixed-8192 | 0.04 | 11.51 | 8.20 |
| Fixed-16384 | 0.08 | 5.96 | 16.40 |
| DD | 0.0 | 99.9 | 1.0 |
| BucketLLM-v0 | 0.37 | 0.19 | 3.78 |
| BucketLLM | 0.12 | 0.28 | 2.81 |
- BucketLLM在三项指标中达到较优平衡,低截断率及适中拼接率,有效保留文档完整性,保持批次计算效率。
不同桶配置比例与训练效率对比 [page::4][page::5]

- BucketLLM相比初版,显著提高短序列桶(1024-4096 tokens)分布比例,减少长序列桶负担,提升训练速率。
- 快速序列处理(1024-4096)占比55.44%;训练吞吐量较8192长度提升约13%-22%。
| 桶大小 | 数据比例(%) | 训练速度(tokens/s) | 速度提升(相较8192) |
|---------|-------------|-------------------|--------------------|
| 1024 | 6.52 | 16,793 | +22.62% |
| 2048 | 16.58 | 16,263 | +18.74% |
| 4096 | 32.34 | 15,505 | +13.21% |
| 8192 | 27.17 | 13,696 | 基线 |
| 16384 | 17.39 | 11,129 | -18.74% |
下游任务性能提升 [page::5]
| 任务 | DD | Fixed-2048 | Fixed-4096 | Fixed-8192 | BucketLLM |
|----------------|--------|------------|------------|------------|------------------|
| Arc-challenge | 29.20% | 30.00% | 29.20% | 27.60% | 31.40% (+4.67%) |
| Arc-easy | 65.70% | 65.90% | 64.80% | 64.20% | 66.40% (+0.76%) |
| Commonsense-qa | 37.90% | 36.10% | 35.30% | 37.30% | 38.70% (+2.11%) |
| Hellaswag | 38.60% | 40.30% | 39.60% | 38.10% | 40.60% (+0.74%) |
| Mmlu-average | 31.18% | 30.98% | 30.77% | 29.93% | 31.65% (+1.51%) |
| Openbookqa | 24.20% | 24.20% | 25.80% | 24.80% | 26.20% (+1.55%) |
| Piqa | 68.80% | 69.70% | 68.80% | 66.80% | 70.20% (+0.72%) |
| 平均 | 42.23% | 42.45% | 42.04% | 41.25% | 43.59% (+2.69%) |
- BucketLLM在多项任务中超越固定长度基线和DD,改善长距离依赖建模能力,有效减少训练过程中的语义干扰。
长上下文建模与模型规模扩展分析 [page::6]

- BucketLLM在1k–16k上下文长度内均保持较低困惑度,优于固定长度配置模型,尤其在长文本场景表现突出。

- 在模型大小扩展(350M、1B、3B参数)中,BucketLLM保证训练稳定收敛,较大模型展现更优性能提升。

- 随着训练数据量增加,1B及3B模型表现明显提升,表明多桶训练策略支持大规模数据和模型的协同扩展。
深度阅读
深度分析报告:《Beyond Fixed Length: Bucket Pre-training is All You Need》
---
1. 元数据与概览
报告标题:Beyond Fixed Length: Bucket Pre-training is All You Need
作者:Qing Yang 等(哈尔滨工业大学,度小满金融科技,天津大学)
发布日期:2024年(具体日期未标明)
主题:针对大型语言模型(LLMs)预训练领域,提出一种突破传统固定长度数据组织策略的多桶(multi-bucket)数据组织方法,提升预训练数据质量与模型性能。
核心论点及推广的信息:
- 现有LLM预训练普遍采用固定长度(如4096或8192 tokens)数据切分策略,但这一方法存在严重的截断、填充及文档拼接噪声问题,影响模型捕捉长距离依赖的能力和训练效率。
- 为系统评估和优化预训练数据的组成质量,报告定义了三个关键指标:填充率(padding ratio)、截断率(truncation ratio)和拼接率(concatenation ratio)。
- 报告提出了基于多桶长度自适应组织数据的全新方法——BucketLLM,突破固定长度瓶颈,优化上述指标,提升训练效率和预训练质量。
- 大量实验证明BucketLLM在数据组成质量、训练速度及模型任务表现上均优于固定长度方法及部分SOTA策略,并成功应用在度小满金融旗下的XuanYuan系列金融大语言模型中。
---
2. 逐节深度解读
2.1 引言与相关工作
关键信息:
- LLMs得益于大规模预训练数据和强大模型架构,在NLP、编程、数学推理等领域表现卓越。
- 数据预处理阶段显著影响模型效果,固定长度数据段的拼接和切分策略在计算效率方面有优势,但破坏了文档边界和语义连续性。
- 文档长度分布极度不均,根据WikiPedia、GitHub、CommonCrawl和StackExchange数据,短文档占大多数,令固定长度预训练方法难以兼顾截断率和拼接率的问题(见图1,文档长度呈长尾分布,主要集中在2K token以下)。
- 先前研究(如Ding等2024的Best-fit Packing与Pouransari等2024的长度基桶法)虽尝试解决截断不足问题,但缺乏系统衡量数据质量的指标和灵活高效的组合策略。
作者推理:
自然文档不应被简单拼接或盲截,需平衡信息保存(减少截断)、语义连贯(减少拼接)与计算效率(减少填充)。理想策略可自适应多种文档长度,避免传统单一固定长度的弊端。
---
2.2 数据质量度量指标设计(Preliminary)
作者提出三项关键度量体系量化数据组成质量:
- 填充率(\(r{\text{pad}}\)):占整体训练数据中填充[PAD]标记的比例,填充越少计算资源使用效率越高。公式详见第2页,填充率为 \(\frac{\sum \text{pad数}}{\sum \text{数据长度}}\)。
- 截断率(\(r{\text{tru}}\)):被切割的原始文档占总文档数的比例,截断率越低意味着信息和文档完整性保留越好。
- 拼接率(\(r{\text{cat}}\)):计算训练样本中平均拼接的原始文档数量,拼接越少语义越连续,提示噪声越低。
三者彼此存在权衡,填充减少往往意味着拼接增加或截断率提升,反之亦然。该框架为后续的数据组织优化提供了量化目标。
---
2.3 Bucketing 算法设计
2.3.1 基础‘Naive Bucketing’方法
- 将文档按长度划分至4个固定容量桶(2048,4096,8192,16384 tokens),同桶内文档拼接并切割成固定长度样本。
- 缺陷是截断率较高,很多文档信息丢失;且该方法无法灵活利用不同文档长度的特性。
2.3.2 BucketLLM-v0算法
- 引入“文档池”对文档批量处理,先按文档长度降序排序。
- 对每个文档分配最小能容纳其完整长度的桶,超过最大桶的长文档进行切分返回池中。
- 针对桶剩余空间有一定填充阈值,超过阈值则从最短文档截取部分填充,否则用PAD填满。
- 优点在于大幅降低截断率,维持合理的拼接率,填充率可由阈值调控。
- 缺点是贪婪选择最大文档导致空间利用不均,偏向更大桶容量,影响训练效率和多样性。
2.3.3 BucketLLM(最终算法)
- 在BucketLLM-v0基础上引入启发式策略:当剩余空间介于最短文档长度与填充阈值之间时,尝试搜索两个较短文档组合填满剩余空间,减少单独填充,进一步降低填充率。
- 详细伪代码描述了该贪心+启发式桶生成流程,支持灵活多桶容量设置和池大小调整。
- 达到截断率、填充率和拼接率之间最优平衡。
- 该算法充分利用不同长度文档,保证数据多样性和训练效率,促进模型对不同长度上下文的泛化能力。
---
2.4 实验设计与结果分析
2.4.1 实验设置
- 预训练数据选用FineWebEdu数据集子集,约1000亿tokens,9800万文档,保持高质量和多样性。
- 对比基线:多档位固定长度(1024、2048、4096、8192、16384)和DD方法(Pouransari等2024提出的基于长度桶与课程学习策略)。
- 自定义5桶容量(1K、2K、4K、8K、16K)用于多桶方法。
2.4.2 研究问题1(RQ1)数据组成质量指标对比
- 表1数据显示:
| 方法 | 填充率(\(r{\text{pad}}\)) | 截断率(\(r{\text{tru}}\)) | 拼接率(\(r{\text{cat}}\)) |
|---------------|-------------------------------|-------------------------------|------------------------------|
| Fixed-1024 | 0.01% | 61.26% | 1.03 |
| Fixed-2048 | 0.01% | 38.39% | 2.05 |
| Fixed-4096 | 0.02% | 21.45% | 4.11 |
| Fixed-8192 | 0.04% | 11.51% | 8.20 |
| Fixed-16384 | 0.08% | 5.96% | 16.40 |
| DD | 0.00% | 99.9% | 1.00 |
| BucketLLM-v0 | 0.37% | 0.19% | 3.78 |
| BucketLLM | 0.12% | 0.28% | 2.81 |
- 观察结论:固定长度方法在多指标上呈明显权衡——短长度低填充高截断,高长度低截断高拼接;DD截断率极高(99.9%),严重破坏文档完整性;BucketLLM在填充率小幅上升的情况下,极大降低了截断率,并控制拼接率在合理范围内,达到三者优良平衡。
- 图2展示了BucketLLM-v0与BucketLLM的桶分布对比,BucketLLM倾向于更多短序列,训练效率更佳且拼接率更低(2.81 vs 3.78)。
2.4.3 研究问题2(RQ2)模型预训练表现
- 实验采用基于Llama3.1架构的1B参数模型,数据分布比例按照桶容量动态采样,训练在64张NVIDIA A800 GPU上完成,保持训练配置一致。
- 表2列出多种方法在七大NLP基准上的准确率对比,BucketLLM在所有任务均领先,平均提升2.69%,难度较大的Arc-challenge和Commonsense-qa上分别提升4.67%和2.11%。
- 表3体现了BucketLLM不同桶容量的训练数据占比及训练速度,较短序列的训练速度提升明显,如1024和2048长度的token/s分别比8192高22.62%和18.74%。长长度占比相对较少,整体提升了训练效率。
- 图3中BucketLLM在不同上下文长度的困惑度(PPL)均低于其他方法,尤其在超过2048长度时表现尤为明显,说明其具备良好长上下文建模能力。
- 图4和图5的扩展实验显示,BucketLLM算法在不同规模模型(350M,1B,3B)和不同数据规模均保持稳定训练动力学和良好的数据-模型协同扩展能力。
---
3. 图表深度解读
图1:数据长度分布(第1页)
- 展示WikiPedia、Github、CommonCrawl和StackExchange四个语料库中文档长度(Token数)分布,均呈现典型的长尾右偏分布,短文档占比远超长文档。
- 此分布验证了固定长度方法难以满足多样文档长度的现实情况,支持多桶自适应策略的必要性。
---
图2:BucketLLM-v0 vs BucketLLM的桶分布(第4页)
- x轴为桶容量(1024,2048,4096,8192,16384 Token),y轴为桶中数据占比百分比。
- BucketLLM相较v0版本,增加了1024-4096桶中数据比例(如2048桶增加22.69%),减少了8192及以上的桶占比(8192桶减少14.67%,16384桶减少25.58%)。
- 更均衡且倾向较短序列的桶分布,提高训练速度和减少不必要的拼接。
---
表1:数据组成指标对比(第5页)
- 详见第2.4.2节,指标间权衡直观体现,作者最终方法实现三指标优良平衡。
---
表2:基准任务准确率比较(第5页)
- 包含Arc-challenge、Arc-easy、Commonsense-qa等七个标准NLP任务,BucketLLM各项均优于最佳固定长度基线。
- 说明更优的数据组成策略具有显著的下游提升价值。
---
表3:不同桶大小的数据比例及训练速度(第5页)
- 训练速度显著随序列长度递减,显示短序列的训练效率优势。
- BucketLLM分布策略平衡了效率与多样性。
---
图3:不同上下文长度困惑度(第6页)
- BucketLLM和DD方法在所有上下文长度区间保持最低困惑度,尤其在超过2048 token的长文本推理中表现突出。
- 固定长度2048虽短文本表现较好,但长文本困惑度剧增,验证了多桶训练的泛化优势。
---
图4、图5:模型规模和数据规模扩展分析(第6页)
- 不同规模BucketLLM模型均显示稳定收敛趋势(图4),更大的模型和数据规模带来显著性能提升(图5)。
- 显示算法适应大规模模型和数据的训练要求。
---
4. 估值分析
本报告为技术研究文献,无直接财务估值,故无传统DCF、市盈率等分析。其“估值”体现在三个提出指标的数学定义与算法设计中的平衡优化,旨在提升预训练效率和模型效果,实质上是一种“性能估值”的框架。其方法论建立了评价指标,设计了糅合启发式和贪心法的桶分配策略,实现了算法对指标的优化假设验证。
---
5. 风险因素评估
论文未明确列出潜在风险,但从内容可推断以下几点可能存在风险:
- 算法复杂度及实现难度:多桶算法及启发式策略提高了实现复杂度,需要高质量的管控,否则可能影响预训练流程的稳定性。
- 硬件依赖与效率权衡:尽管该方法试图提高效率,实际应用中对GPU内存和并行策略存在一定依赖,特别是在大规模分布式环境下。
- 数据分布依赖:算法基于现有数据长度分布的假设,若应用于不同分布(如极端长文档居多),可能效能下降。
- 泛化能力风险:虽然实验证明改善了性能,但模型对新领域文本、极端文本长度的处理依然需谨慎观察实际表现。
报告中并无详尽风险缓解措施讨论,这些部分留待实际部署中进一步验证。
---
6. 批判性视角与细微差别
- 该报告强调多桶方法的优越性,但数据量巨大时的算法运行效率和复杂度没有充分量化展示。
- BucketLLM-v0和最终BucketLLM的比较更多聚焦于指标与分布的提升,实际训练资源消耗(如时间、内存峰值)描述较少,尚不明确多桶策略的计算负担整体影响。
- DD方法尽管截断率极大,可能因其设计目标偏向序列内学习,报告未完全讨论为何DD因截断而影响性能的机理。
- 算法中的“启发式”步骤虽有效,但依赖一定的经验阈值和策略,未来可能存在改进空间或适应性不足的情况。
- 报告在贡献强调“超越固定长度”,但并未深入探讨如动态长度注意力机制等其它解决方向的结合可能性。
---
7. 结论性综合
本文系统剖析了传统固定长度LLM预训练数据组织存在的严重截断、填充和拼接质量问题,提出多维度数据组成质量评价指标,并基于此设计了创新性的多桶(multi-bucket)数据组织算法——BucketLLM。该方法通过合理划分不同长度的训练桶,灵活分配文档,实现信息最大保存、语义连贯性维护及计算效率提升的良好平衡。
实证结果显示:
- BucketLLM在填充率、截断率、拼接率三项指标上均优于固定长度和现有SOTA方法,尤其大幅减少截断率,保证文档信息完整性。
- 模型训练效率明显提升,短序列训练吞吐量高,整体训练更快。
- 于多项NLP标准基准测试中,BucketLLM模型均获得显著优于固定长度基线的性能提升,平均准确率提升2.69%,在更具挑战性的任务中表现尤为突出。
- 长上下文建模能力显著增强,跨多尺度序列长度的困惑度低,说明预训练策略有效提升了模型对长依赖的捕获能力。
- 多模型多数据规模扩展验证了方法的稳定性和适应性,适用于大规模LLM训练。
综上,BucketLLM有效突破了固定长度预训练的瓶颈,是优化LLM预训练数据组织的有力方案。该研究不仅在理论上提出了系统性评价指标并设计了优化算法,更通过充分实验证明其方法的实用价值,对未来LLM预训练范式及产业中大规模预训练实践具有重要指导意义。
---
参考文献
详细文献综述见报告第7页,涵盖了Brown et al. 2020《GPT-3》、Pouransari et al. 2024、Ding et al. 2024等领域标杆论文。
---
附录:关键公式与算法说明
- 填充率计算公式:
\[
r{pad} = \frac{\sum{i=1}^N count(\text{[PAD] in } i)}{\sum{i=1}^N len(i)}
\]
- 截断率计算公式:
\[
r{tru} = \frac{\sum{i=1}^M J(i)}{M}
\]
其中\(J(i) = 1\)表示第\(i\)个文档被拆分。
- 拼接率计算公式:
\[
r{cat} = \frac{M}{C}
\]
其中\(M\)为原始文档总数,\(C\)为训练样本数。
- 优化算法:详细的贪心桶分配加启发式文档选择逻辑见第3页算法1、算法2部分。
---
以上即本报告的详尽解读与深度剖析。如需进一步细节,欢迎随时反馈。