大语言模型数据清洗 · 论文笔记(五)

Essential-Web v1.0 24T tokens of organized web data

[TOC]

Essential-Web v1.0 24T tokens of organized web data

Preview

构建了多维度的分类体系,适合通过SQL等方式进行数据筛选出新的数据集

  • 使用开源模型进行数据标签的标注,得到了EAI-Distill-0.5b
  • 推理清洗了23.6B的数据,花费了90000 AMD MI300x GPU-hours

The inference job ran on 512 AMD MI300x for about 1 week.

分类体系:

  • 一个有限的类别集合 $T=\left { C_1, C_2, …, C_k \right } $。
  • 每个类别$C_i$都有一个非空、有限的标签集$L_i$。

标注形式为$T(d) = \left { (\lambda_1, \mu_1), …\right}$

  • 其中,$λ_i\in L_i$ 是类别$C_i$的主要标签
  • $\mu_i \in (L_i \setminus {\lambda_i}) \cup {\bot}$ 是一个可选的次要标签,必须与$\lambda_i$不同
    • 当文档适合两个标签时非常有用
    • $\bot$表示弃权(abstention)。
  • 所有类别和标签集都是预先固定的,这允许训练一个单一的静态分类器

PipeLine

实验设置

Chinchilla最优计算比例

Chinchilla缩放定律发现了一个最优比例:大约每个参数需要20个训练token Epoch AIAnalytics Vidhya。这个比例是DeepMind通过训练400多个语言模型得出的计算最优配置。

具体来说:

Train

所有数据集在训练前均使用了 13-gram Bloom Filter

选用了两个2.3B模型对数据进行评估

  • 预训练(3200亿Token):该阶段帮助模型学到广泛的语言知识

    • General-base:仅使用网络数据(DCLM-baseline)做预训练

    • Code-base:使用网络数据(DCLM-baseline)+代码数据(Stack v2 Dedup中的Python),各占50%做预训练

  • 退火(800亿token):为了评估特定领域数据集的性能,采用需要评估的新数据集

    • 学习率接近零的目的是在新的领域数据上进行“微调”,而不是进行大规模的“重新训练”

每个模型总计处理 4000 亿 token 数据量,是Chinchilla的10倍数据

蒸馏

蒸馏方案

数据来源与规模

  • 标注数据:使用Qwen2.5-32B-Instruct对104.6M文档共82Btoken进行两轮标注,生成合成标签用于蒸馏训练。
    • 第一轮:标注8个分类类别(如FDC、Document Type V1/V2等)。
    • 第二轮:扩展至12个类别(新增Bloom、Technical Correctness等)。

数据预处理

  • 子采样:对超过30,000字符的文档,截取开头、随机中间段和结尾(Algorithm 12),避免长文本影响推理速度。
  • 质量过滤:通过统计和模型信号(如DCLM分类器)过滤低质量文档(Algorithm 1)。

模型架构

  • 基础模型:Qwen2.5-0.5b-Instruct(5亿参数),基于Gemma 3架构,使用QK-norm稳定注意力。
  • 序列长度:16,384 tokens,支持长上下文。

训练参数

  • 优化器:AdamW(β1=0.9, β2=0.95),权重衰减0.1。
  • 学习率:峰值1e-4,线性预热2B tokens,余弦衰减至1e-5,最后线性退火至0。
  • 批量大小:全局2M tokens,梯度累积实现大批次训练。
  • 训练量:82B tokens(合成标签数据)。
  • 损失计算:仅对教师模型生成的标签token计算损失,输入文档和系统提示被掩码。

教师模型选择

  • 教师:Qwen2.5-32B-Instruct,因其标注一致性(κ=0.74)与推理速度平衡(1.4 RPS/GPU)。

蒸馏步骤

  1. 标签生成
    • 教师模型生成多分类标签(如FDC层级、Document Type等),格式为主标签,次标签(Algorithm 13)。
    • 压缩输出:从平均791 tokens缩短至51 tokens,提升推理速度50倍(Table 12)。
  2. 上下文蒸馏
    • 移除教师模型的提示模板(Prompt 1/2),直接训练学生模型生成压缩格式标签。

评估方案

Metrics

  • 正确性:多人分类的结果应该类似,验证模型打标签是否标准一致
    • 使用GPT-4o和Claude Sonnet-3.5作为专家模型
    • 使用kappa系数作为指标
    • 取对4o的系数和对claude的系数的均值作为结果

检测方式是验证模型与专家模型的标准是否一致,对于指标paper中进行了变种

对于某个模型的分类结果$S\in \left { \phi, (\text{label}), (\text{label1, label2}) \right }$​

最少是一个标签(主标签),有时可以加一个次标签

  • 标注结果一致的判定:两模型的$S$​有交集

然后套公式

Qwen2.5-32B-Instruct ≈ 0.74

EAI-Distill-0.5b ≈ 0.71~0.73

  • 正交性:不同分类体系之间的标签应该是独立的
    • 例如在某分类A下打了a,分类B始终是b,发生了绑定
    • 需计算互信息、香农熵
$$ >\text{NMI}(X, Y) = \frac{2 I(X; Y)}{H(X) + H(Y)} >$$

其中:

  • $p(x)$按$x$出现的频率,$p(x,y)$按$x,y$同时出现的频率计算
  • $I(X; Y)$:互信息
$$ > I(X; Y) = \sum_{x, y} p(x, y) \cdot \log \frac{p(x, y)}{p(x)p(y)} > $$
  • $H(X)$:X 的香农熵
$$ > H(X) = -\sum_{x} p(x) \cdot \log p(x) > $$

Qwen2.5-32B 平均 NMI ≈ 0.079

EAI-Distill-0.5b 平均 NMI ≈ 0.092

  • Domain Recall
    • 定了Golden URL(认为arxiv和……30 个 base URL的都是高质量数据)
    • 统计有多少能被模型召回

Dataset

  • Random Set:随机采样(需要避免撞车训练数据)
  • STEM Set:从特定领域集合(科学领域)随机采样
  • 通过Golden URL采样
使用 Hugo 构建
主题 StackJimmy 设计