1. 预训练数据筛选方法论与实践指南
在构建大规模语言模型时,数据筛选是决定模型性能上限的关键环节。根据Chinchilla论文揭示的Hoffman缩放定律,每个模型参数需要约20个文本token进行有效训练。对于参数量达100亿的模型(其中50亿参数参与实际训练),这意味着需要2000亿token的训练数据(约300GB中文文本或1.2TB原始数据)。面对Nemotron-CC数据集包含的6.3万亿token(31,279个文件),我们需要科学地筛选出3.17%的高质量样本(约991个文件),这相当于从整个互联网图书馆中精准挑选出最相关的几个书架。
关键提示:数据筛选不是简单的随机抽样,而是基于质量、多样性和领域覆盖度的多维优化过程。实际操作中我们最终选择了1,935个高质量文件,这比理论计算值多出近一倍,主要是为了应对数据清洗过程中的损耗。
1.1 数据规模计算原理拆解
让我们深入解析这个数据规模计算公式:
code复制所需token量 = 模型参数量 × 20
= 100亿 × 20
= 2000亿token
中文转换系数 = 1.5 (基于平均中文字符与token的映射关系)
原始数据量 = 2000亿 ÷ 1.5 ≈ 1.2TB
这个计算背后有两个重要假设:
- 模型参数有效利用率约为50%(100亿参数中实际参与训练的约50亿)
- 中文字符与token的转换率基于BERT等模型的Tokenizer统计得出
实际操作中我们还需要考虑:
- 数据清洗后的留存率(通常只有60-70%原始数据可用)
- 训练过程中的动态采样策略
- 不同数据源的权重分配
1.2 Nemotron-CC数据集版本演进
英伟达的Nemotron-CC数据集经历了三个主要版本迭代:
- 初始版本:基础网络爬取数据,包含31279个文件
- v2(2023年9月):
- 新增高质量学术论文数据
- 增强去重算法(最小哈希+LSH)
- 改进语言识别系统
- v2.1(2023年12月):
- 引入多模态数据关联
- 优化毒性内容过滤
- 添加数据质量评分标签
版本升级带来的直接影响是高质量数据的比例从v1
