大模型数据建设:工程化视角与策略实践
引言
在当前大模型技术快速发展的背景下,数据对模型效果的影响力日益增强。对于希望从零开始训练一个具有千亿参数规模的大型模型的团队来说,整个任务流程的规划和执行成为了一个重要议题。本文从工程化视角详细探讨数据建设过程,包括数据准备、预训练配比、后训练筛选以及数据版本的动态调整。
一、从工程化视角看数据建设
理想情况下,大模型的训练流程可以分为三个阶段:数据准备、预训练与后训练。然而,实际情况远比这一理想化的模型复杂。实际操作中,这一过程的复杂性主要体现在两个方面:
1. 数据准备与训练流程
预训练周期长:预训练阶段不仅时间跨度长,而且涉及大量的数据和资源协调。一个模型从开始训练到结束,可能会经历季节的更迭。这意味着数据管理不能是一次性的,而必须是持续的过程。
数据版本动态调整:伴随模型训练进展,数据版本需要持续动态调整。初始的数据准备可能无法完全满足模型训练的需求,因此在整个训练过程中需要不断地进行微调。此外,在后训练阶段,还需要对数据进行筛选,以适应模型训练的前进方向。这种动态性要求建立自动化或半自动化的数据处理流水线。
2. 影响数据版本更新的因素
影响数据版本更新的主要因素包括:
- 数据来源变更:数据来源的变化直接影响数据的构成与质量。随着互联网内容的更新,旧数据可能过时,新数据可能引入噪声。
- 新数据引入:随着数据市场的不断发展,引入新数据成为一种可能。通过分析不同数据来源和通用语料长度,可以得出实际的需求量与市场库存量之间的差异。这一差异表明,尽管数据市场在繁荣发展,但要通过采购方式获取足量的训练数据仍具有挑战性。
- 数据配比差异:在训练过程中,数据的自然配比与理想的配比可能存在差异,需要根据训练情况适时调整。例如,某些领域数据可能在初期占比过高,导致模型过拟合,后期需降低权重。
3. 先导模型在工程实践中的应用
在工程实践中,常用的方法是训练一个先导模型来监控数据变化并及时作出调整。先导模型的规模通常较小,如 1B 参数级别。当需要调整数据时,可通过先导模型进行一系列实验,包括数据去重、清洗及配比调整等,并对效果进行评估。一旦确定可行方案,即可同步应用于主模型。
在某些情况下,一级先导模型可能无法完全满足数据调整的需求,这时可能需要二级甚至多级先导模型来进行更细致的追随训练。在多级先导模型的设置中,可能需要进行二次甚至多次的先导实验,以确保决策的准确性。这种多级实验虽然增加了时间和算力成本,但在减少 token 消耗的同时,提高了实验结果的可靠性。
4. 评测指标与数据版本更新
在训练过程中,通过对先导模型进行评测,可以发现特定领域的不足之处(如数学或编程能力)。基于评测结果,可以针对性地调整数据配置,从而改善模型性能。例如,如果评测显示数学能力不足,则应增加高质量数学题目的比例。
5. 数据处理流程
不同的数据版本更新方式会触发不同的数据处理流程。如果数据更新是由数据变化触发的,则可能需要从头到尾进行数据处理的各个步骤;如果是通过评测引导的方法来触发,则只需调整数据配比和领域选择。这有助于平衡计算资源与模型迭代速度。
二、预训练数据配比策略
在大模型的预训练过程中,数据配比对于模型性能有着至关重要的影响。通过采用 DoReMi 方法、双层优化算法以及在线领域采样权重调整等策略,可以有效提高模型的训练效率与性能。在实际应用中,还需考虑特定领域数据的重要性以及数据处理与解析的技术挑战。
1. 数据配比策略概述
我们平常提到的'数据配比',是指在预训练阶段对不同来源的数据配置不同权重,以期达到最优训练效果的过程。论文中通常采用的对应术语是'数据混合'(Data Mixing)。
(1)DoReMi:一种经典的配比方法
DoReMi 方法是一种不依赖于特定任务的、在小模型上寻找最优数据混合比例的方法。该方法的基本流程如下:
- 训练参考模型:在数据的不同领域(domains)中设定一个归一化的初始权重,在上述权重下训练一个小的参考模型。
- 训练代理模型:利用 Group DRO(Group Distributionally Robust Optimization)算法训练一个代理模型。在此过程中,代理模型与参考模型之间的损失(loss)在不同领域上存在差异。使用 Mini Max Optimization 算法来优化在代理模型与参考模型间差异最大的领域的权重。代理模型持续训练,而参考模型保持不变。通过代理模型与参考模型的交互过程,不断调整不同领域的权重。
- 大模型训练:获得优化后的权重后,用于训练最终的大模型。


