大语言模型预训练数据——数据采样方法介绍以GPT3为例
- 一、数据采样核心逻辑
- 二、各列数据含义
一、数据采样核心逻辑
这是 GPT - 3 训练时的数据集配置,核心是非等比例采样——不按数据集原始大小分配训练占比,而是人工设定不同数据集在训练中被抽取的概率(Weight in training mix ),让小数据集也能被多次学习,大数据集适当降低重复度,平衡模型学习广度与深度。
二、各列数据含义
- Dataset:训练 GPT - 3 用到的数据集,像 Common Crawl 是网页抓取数据,Wikipedia 是维基百科内容,Books1/2 是书籍文本等,覆盖不同来源、不同类型的语料。
- Quantity (tokens):每个数据集的token总量 ,比如 Common Crawl (filtered) 有 4100 亿 token,代表该数据集文本转成模型可处理的 token 后,总数量是这么多。
- Weight in training mix:训练时,从该数据集抽取样本的概率占比 。比如 Common Crawl 占 60%,意味着每一轮训练选样本,60%的概率从它这里选,和数据集本身大小无严格比例关系,是人为调的“采样权重”。
- Epochs elapsed when training for 300B tokens:当整体训练到 3000 亿 token 时,该数据集被“完整过几遍(Epoch )”。计算逻辑是:
- 先算训练 3000 亿 token 时,从该数据集实际用了多少 token:
3000 亿 × 该数据集权重
- 再用“实际用的 token 量 ÷ 该数据集总 token 量”,得到被训练的轮次(Epoch )。
- 举个例子,以 Wikipedia 为例:
- 按权重,训练 3000 亿 token 时,用了
3000 亿×3% = 90 亿 token
- Wikipedia 总 token 是 30 亿,所以
Epoch = 90 亿÷30 亿 = 3.4
,即被完整学习约 3.4 遍;同理,Common Crawl 是3000 亿×60% = 1800 亿 token
,除以 4100 亿总 token,得到约 0.44 轮。
- 按权重,训练 3000 亿 token 时,用了
- 先算训练 3000 亿 token 时,从该数据集实际用了多少 token:
简单说,就是通过“自定义采样权重”打破数据集大小限制,让不同数据按需被模型学习多轮,最终“Epochs”体现的是:在 3000 亿总训练量下,单个数据集被重复学习的次数 ,背后是“权重×总训练量÷数据集自身大小”的计算逻辑。