OpenAI 宣布高效的填充中间(Fill-in-the-Middle)语言模型训练方法
TL;DR
OpenAI 引入了一种数据增强技术,使标准自回归语言模型能够学习填充缺失的跨度(填充中间,FIM),同时保持其原有的从左到右生成性能,使 FIM 成为一种实用的默认训练目标。
为什么 FIM 很重要
对模型进行填充中间训练可以扩展其在编辑、代码补全和交互式写作中的实用性,因为用户常常需要插入或替换文本,而不是从头生成。通过在预训练阶段整合 FIM,OpenAI 表明模型可以在无需额外微调或架构修改的情况下获得此能力。
核心技术:跨度移动(Span‑Shift)转换
该方法通过从文档中部选取一个连续的跨度并将其移动到同一文档的末尾来修改训练语料。模型随后将移动后的文本视为在给定周围上下文的情况下需要预测的目标。此简单的转换在为未移动部分保持原始从左到右顺序的同时,创建了一个填充任务。
实证发现
- 生成能力无下降:在多个模型规模上,经过大量 FIM 训练后,标准从左到右语言建模基准的困惑度保持不变。
- 强大的填充性能:使用高比例转换示例进行训练的模型在 OpenAI 发布的专用填充基准上取得了竞争性的结果。
- 可扩展性:该方法在从小模型到大模型均表现一致,表明该转换不会干扰模型的尺度定律。
消融研究与最佳实践设置
OpenAI 对三个关键超参数进行了系统的消融实验:
- 转换频率 – 进行跨度移动的训练示例所占比例。结果表明使用适中的频率(例如 30‑50%)可以平衡填充技能和生成保真度。
- 跨度结构 – 改变跨度的长度和位置的实验显示,随机化两者能够获得最稳健的性能。
- 跨度选择方法 – 随机选择优于启发式或长度偏向的策略,简化了实现。
基于这些实验,OpenAI 推荐以下默认设置:
- 将转换应用于大约一半的训练数据。
- 在预定义范围内(例如 10‑50 个 token)均匀随机选择跨度长度。
- 在文档中随机定位跨度,避免位于极端的开头或结尾位置。
已发布资源
- 最佳 FIM 模型:OpenAI 已通过其 API 部署了性能最优的填充模型,开发者可以直接查询模型以获取填充中间的预测。
- 填充基准:一套评估数据集和脚本已开源,以促进对 FIM 能力的可重复研究。
对未来语言模型发展的影响
- 默认训练目标:鉴于对从左到右性能的影响微乎其微,OpenAI 建议未来的自回归模型将 FIM 训练作为标准实践。
- 效率提升:该转换带来的计算开销极小,使其在大规模预训练流水线中具有吸引力。
- 更广泛的适用性:该技术与模型无关,可应用于任何自回归架构,可能加速填充功能在整个领域的普及。
“虽然这种数据增强近年来受到广泛关注,但我们提供了大量证据表明,以这种方式转换的大比例数据进行训练并不会损害原始的从左到右生成能力……” – OpenAI 作者
结论
OpenAI 的高效 FIM 训练方法表明,简单的数据集转换即可赋予自回归语言模型强大的填充能力,而不会削弱其核心生成优势。已发布的模型、基准以及推荐的超参数为社区将填充中间功能集成到未来语言模型中提供了清晰的路径。