A4 (Data: Filtering Language Modeling Data)

A4(Data: Filtering Language Modeling Data)**

从 Common Crawl(WARC/WET)构建一个可训练的高质量 LM 语料,通过一整套 抽取 → 过滤 → 去重 → 并行处理 → tokenize → 训练验证 的数据管线,最后用固定模型/训练 recipe 在验证集上比拼 perplexity。

A4 总览:三大实现 + 两大运行

要实现(Implement)

  1. HTML → text 抽取(从原始网页内容提取可训练文本)
  2. 多种过滤(语言、PII、NSFW/毒性、质量规则、质量分类器等)
  3. 去重(精确行去重 + 文档级近似去重 MinHash/LSH)

要运行(Run)

1) Filtering Common Crawl:看数据 → 抽取文本 → 语言识别 → PII → 有害内容 → 质量过滤/分类

1.1 look_at_cc:先“看见”原始 CC 文本长啥样(4 分)

能力点:建立“数据直觉”,知道你在过滤什么。

1.2 extract_text:实现 HTML bytes → text 抽取函数(3 分)

能力点:网页文本抽取的工程坑(编码、模板噪声、主内容识别)。

1.3 language_identification:fastText 语言识别(6 分)

能力点:过滤阈值选择、误判风险与产品化缓解策略。

1.4 mask_pii:PII(邮箱/电话/IP)掩码(3 分)

  1. phone → |||PHONE_NUMBER|||(强调“美国常见格式”,容错)
  2. IPv4 → |||IP_ADDRESS|||

能力点:隐私合规与数据清洗副作用(分布偏移、格式污染)。

1.5 harmful_content:NSFW + toxic/hate fastText 分类(6 分)

能力点:安全过滤的阈值、误杀/漏检对模型行为的影响。

1.6 gopher_quality_filters:规则质量过滤(3 分)

能力点:可解释的 heuristic filter 与误判分析。

1.7 quality_classifier:训练“质量分类器”(15 分)

能力点:从“规则过滤”升级到“学习型质量过滤”,并做阈值 trade-off。

2) Deduplication:精确去重 + 近似去重(MinHash/LSH)

2.1 exact_deduplication:跨文件“精确行去重”(3 分)

能力点:消除模板/页眉页脚等“完全重复”的噪声,工程上非常常用。

2.2 minhash_deduplication:MinHash + LSH 文档级“模糊去重”(8 分)

能力点:大规模网页语料“模板化相似”去除的核心算法工具箱。

3) Leaderboard 主线:把管线跑在 5000 WET 上 → tokenize → 训练 → 以 ppl 评比

“综合工程”与“最终评估”。

3.1 filter_data:并行过滤 5000 个 WET 文件(6 分)

能力点:真实数据工程:并行、统计、管线可观测性、避免验证泄漏。

3.2 inspect_filtered_data:抽样检查“保留/丢弃/修改”的例子(4 分)

能力点:数据工程的“人工 sanity check + 迭代闭环”。

3.3 tokenize_data:用 GPT-2 tokenizer 把过滤数据序列化为 uint16(2 分)

能力点:训练数据格式与性能(memmap 友好、可快速加载)。

3.4 train_model:用固定训练脚本训练 GPT-2 small-shaped 200K steps(2 分)

能力点:用固定训练 recipe 做数据消融,公平比较过滤策略。

一句话总结:A4 的任务谱系