第 100 章 附录

附录

主要数据集一览、工具速查表、质量评估 Checklist 与代码索引

附录 数据集 工具

附录 A:主要开源预训练数据集一览表

A.1 英文通用语料

数据集规模许可发布时间特点链接
FineWeb15T tokensODC-BY2024.05HuggingFace 出品,源自 96 个 CC 快照,多级过滤HuggingFace
FineWeb-Edu1.3T tokensODC-BY2024.05FineWeb 的教育价值子集,分类器过滤HuggingFace
FineWeb-215T tokensODC-BY2025.02多语言版 FineWeb,覆盖 1000+ 语言HuggingFace
DCLM-Baseline3.8T tokensCC-BY-4.02024.06DataComp-LM 竞赛基线,模型过滤GitHub
RedPajama-V230T tokensApache-2.02023.10Together AI 出品,含质量信号HuggingFace
Dolma3T tokensAI2 ImpACT2024.01Allen AI OLMo 训练数据,完全可复现HuggingFace
Dolma v1.74.3T tokensAI2 ImpACT2024.10OLMo 2 训练数据,含 DCLM 过滤HuggingFace
The Pile825 GBMIT2020.12EleutherAI 经典数据集,22 个子集GitHub
C4305 GBODC-BY2019.10Google T5 训练数据,历史意义TensorFlow
RefinedWeb5T tokensODC-BY2023.06Falcon 训练数据,CC 精细清洗HuggingFace
SlimPajama627B tokensApache-2.02023.06RedPajama 去重精简版HuggingFace
CulturaX6.3T tokensCC-BY-4.02023.09多语言清洗数据,167 语言HuggingFace

A.2 中文语料

数据集规模许可特点
WanJuan 1.0600B tokensApache-2.0智源出品,中英双语
ChineseWebText 2.06TB研究用CC 中文子集,质量评分
SkyPile150B tokensApache-2.0天工 MiniMax 中文数据
MNBVC数 TB多种社区众包中文语料,覆盖广泛
WuDaoCorpus200GB研究用智源悟道中文语料
CLUECorpus2020100GBApache-2.0CLUE 中文语言理解评估语料

A.3 代码数据

数据集规模许可特点
The Stack v267.5 TB混合HuggingFace + SWH,619 语言
StarCoder Data35B tokens混合StarCoder 系列训练数据
CodeParrot180 GBApache-2.0GitHub Python 代码
MBPP / HumanEval题库MIT代码评测基准(非训练用)

A.4 数学数据

数据集规模许可特点
OpenWebMath14.7B tokensODC-BYCC 中的数学内容,LaTeX 解析
Proof-Pile-255B tokens混合数学证明语料
MathPile9.5B tokensCC-BY-SA数学综合语料
AutoMathText200 GBApache-2.0自动标注的数学文本

A.5 学术论文

数据集规模许可特点
S2ORC81M 篇ODC-BYSemantic Scholar 论文全文
PeS2o40M 篇ODC-BYS2ORC 精选子集,Dolma 使用
arXiv bulk~2.5M 篇CC 混合arXiv 论文 LaTeX 源码
PubMed36M 篇公共领域生物医学文献

附录 B:主要 SFT 与偏好数据集一览表

B.1 SFT 指令数据

数据集规模许可特点
OpenAssistant Conversations (OASST)161K 条Apache-2.0人工标注多轮对话,35 语言
ShareGPT~90K 条非商用用户分享的 GPT 对话
Alpaca52K 条CC-BY-NC斯坦福,Self-Instruct 合成
WizardLM-Evol250K 条非商用Evol-Instruct 进化方法
UltraChat1.5M 条MIT大规模多轮对话合成
SlimOrca518K 条MIT去噪后的 OpenOrca 子集
LIMA1K 条CC-BY-NC精选高质量样本
Magpie1M+ 条Apache-2.0从 Llama 3 自然生成
Tulu Mix混合Apache-2.0Allen AI Tulu 系列训练数据
Open-Hermes-2.51M 条Apache-2.0多源混合 SFT 数据

B.2 偏好/对齐数据

数据集规模格式特点
UltraFeedback64K 条DPO pairsGPT-4 评判生成的偏好数据
HH-RLHF170K 条Chosen/RejectedAnthropic 人工标注偏好
OpenAssistant-291K 条Ranking人工排序偏好
Nectar182K 条Ranking (1-7)多模型多维度排序
Argilla DPO Mix混合DPO多数据集混合 DPO 格式
PRM800K800K 步Step-levelOpenAI 过程奖励数据
Math-Shepherd-Step-level自动步骤级标注

B.3 安全/红队数据

数据集规模用途
SafeRLHF30K 条安全偏好标注
CValues145K 条中文安全与价值观
BeaverTails330K 条安全分类标注
HarmBench评测集安全评测基准

附录 C:数据处理工具速查表

C.1 数据处理框架

工具开发者语言特点适用场景
datatroveHuggingFacePythonFineWeb 同款,模块化管线中大规模通用处理
NeMo-CuratorNVIDIAPythonGPU 加速,企业级大规模高性能处理
dolmaAllen AIRust+PythonOLMo 同款,高性能大规模去重和过滤
RedPajama toolkitTogether AIPythonRedPajama 同款中等规模处理
text-dedupChenghaoMouPython专注去重去重任务
CCNetMetaPythonCC 数据处理Common Crawl 处理

C.2 文本提取

工具语言速度质量推荐场景
trafilaturaPython中高通用网页提取(首选)
ResiliparseC++/Python快中高大规模处理
jusTextPython中中段落级提取
readabilityJS/Python中中高文章类页面
beautifulsoupPython慢可控自定义提取规则

C.3 语言识别

工具模型语言数速度推荐
fastText lidlid.176.bin176极快首选
CLD3Neural107快备选
lingua统计+规则75中短文本
langdetect统计55快轻量场景

C.4 质量评估

工具/方法类型速度用途
KenLMPPL 过滤极快困惑度过滤
fastText 分类器二分类极快质量二分类
FineWeb-Edu 分类器回归中教育价值评分
DCLM 过滤器LLM 打分慢高质量过滤
GPT-4/Claude 评分LLM-as-Judge很慢精细评估(采样)

C.5 去重工具

工具方法规模适用特点
datasketchMinHash+LSHTB 级Python 库,灵活
datatrove dedupMinHashPB 级分布式,与 datatrove 集成
text-dedupMinHash/SimHash/SuffixTB 级多方法集成
dolma dedupBloom filter + MinHashPB 级Rust 实现,高性能
Google deduplicate-textSuffix arrayTB 级子串级精确去重

C.6 数据版本管理

工具类型特点适用
DVCGit 扩展类 Git 操作,简单中小规模
lakeFSGit-like 对象存储S3 兼容,分支/合并大规模
Delta Lake表格式版本事务性,时间旅行结构化数据
Hugging Face Hub托管平台社区生态,易分享开源数据集
Manifest 文件自定义灵活,无依赖任何场景

附录 D:数据质量评估 Checklist

D.1 预训练数据 Checklist

□ 数据来源
  □ 数据来源是否明确记录?
  □ 是否有适当的使用许可?
  □ 是否遵守了 robots.txt 和 ToS?
  □ 是否有数据溯源机制?

□ 文本提取
  □ 提取器的选择是否经过对比测试?
  □ 是否验证了提取质量(抽样检查)?
  □ 非 HTML 格式(PDF、Word)是否正确处理?
  □ 表格和列表是否合理保留?

□ 语言识别
  □ 语言识别模型是否适合目标语言?
  □ 置信度阈值是否经过调优?
  □ 混合语言文本的处理策略是否合理?

□ 清洗与过滤
  □ 过滤规则是否有文档记录?
  □ 每条规则的过滤量是否统计?
  □ 是否检查了过滤规则的误杀率?
  □ 是否经过"过度过滤"测试?

□ 去重
  □ 精确去重是否完成?
  □ 模糊去重的阈值是否合理?
  □ 去重的粒度(文档/段落/行)是否合适?
  □ 是否做了跨数据源去重?

□ 质量评估
  □ 是否使用了质量分类器?
  □ 质量阈值的选择是否有消融实验支持?
  □ 是否人工抽样检查了过滤后的数据?
  □ 质量评分的分布是否合理?

□ PII 与安全
  □ PII 检测覆盖了哪些类型?
  □ PII 处理方式(替换/删除/掩码)是否合理?
  □ 敏感内容过滤是否到位?
  □ 是否有安全审计日志?

□ 数据配比
  □ 各域数据的配比是否有实验依据?
  □ 是否做了配比消融实验?
  □ 语言配比是否符合目标?

□ 评估与验证
  □ 是否做了 Benchmark 污染检测?
  □ 是否有小模型代理验证?
  □ 数据统计 dashboard 是否建立?

□ 版本管理
  □ 数据是否有版本号?
  □ 版本间的差异是否有记录?
  □ 数据是否可以回溯到任意版本?

D.2 SFT 数据 Checklist

□ 数据构造
  □ 种子数据是否经过精心设计和审核?
  □ 合成方法是否有质量保证机制?
  □ 是否使用了拒绝采样或类似方法?
  □ 数据是否覆盖了所有目标能力?

□ 质量控制
  □ 每条样本是否检查了格式正确性?
  □ 代码样本是否可执行/可编译?
  □ 数学样本的答案是否经过验证?
  □ 事实性内容是否准确?
  □ 是否做了重复检测?

□ 多样性
  □ 任务类型分布是否合理?
  □ 难度分布是否覆盖了各级别?
  □ 长度分布是否避免了偏向?
  □ 是否使用 embedding 做了多样性分析?

□ 一致性
  □ 回复风格是否统一?
  □ 多轮对话的上下文是否一致?
  □ 安全策略是否一致?

□ 安全
  □ 是否包含安全拒答样本?
  □ 有害内容是否被过滤?
  □ 是否做了红队测试?

D.3 RL/偏好数据 Checklist

□ 偏好数据
  □ Chosen 和 Rejected 的质量差异是否真实?
  □ Margin 分布是否合理?
  □ 是否消除了长度偏好和格式偏好?
  □ LLM-as-Judge 的偏差是否校正?

□ 可验证奖励数据
  □ 数学题答案是否经过符号计算验证?
  □ 代码题测试用例是否充分?
  □ 难度分布是否在最佳学习区(20-50% solve rate)?
  □ 是否做了 Benchmark 去污染?

□ 安全对齐
  □ 安全相关的偏好标注是否准确?
  □ 边界案例(helpful vs harmless 冲突)是否有清晰的处理策略?
  □ 是否考虑了 Reward Hacking 的风险?

附录 E:各章代码索引与运行环境

E.1 运行环境

# 推荐环境
Python >= 3.10
PyTorch >= 2.1 (如需 GPU 加速)

# 核心依赖
pip install \
    trafilatura \      # 文本提取 (第 3 章)
    fasttext \         # 语言识别与分类 (第 3, 5 章)
    datasketch \       # MinHash 去重 (第 4, 21 章)
    transformers \     # 模型推理 (第 5, 7, 13 章)
    datasets \         # 数据加载 (通用)
    numpy pandas \     # 数据分析 (通用)
    scikit-learn \     # 聚类和分析 (第 13 章)
    sympy \            # 数学验证 (第 9, 16 章)
    kenlm \            # 困惑度过滤 (第 5 章)
    
# 可选依赖
pip install \
    datatrove \        # 数据处理框架 (第 20 章)
    nemo-curator \     # NVIDIA 数据处理 (第 20 章)
    dvc \              # 数据版本管理 (第 20 章)

E.2 代码索引

章节代码标题功能
第 3 章文本提取对比trafilatura/resiliparse/jusText 效果对比
第 3 章语言识别管线fastText lid + 置信度过滤
第 3 章启发式过滤器多维度规则过滤框架
第 3 章PII 检测器中英文 PII 正则检测
第 3 章敏感内容过滤多级安全过滤管线
第 4 章MinHash 去重完整的 MinHash+LSH 去重实现
第 4 章Bloom Filter精确去重的 Bloom Filter 方案
第 4 章去污染检测N-gram 重叠检测 Benchmark 污染
第 5 章质量分类器fastText 质量二分类训练
第 5 章PPL 过滤KenLM 困惑度过滤管线
第 5 章多维度评分综合质量评分框架
第 6 章配比优化数据配比实验设计和可视化
第 6 章DoReMi 简化版参考模型引导配比优化
第 6 章课程学习调度基于能力评估的数据排课
第 7 章代理验证400M 小模型快速验证数据质量
第 7 章数据 Dashboard数据统计和可视化监控
第 7 章污染检测器13-gram 重叠 Benchmark 检测
第 9 章长上下文构造渐进式长文档数据管线
第 9 章代码质量分层四级代码质量评分系统
第 9 章数学数据处理LaTeX 处理 + 难度评估
第 9 章领域配比中训练数据配比框架
第 10 章回放策略遗忘防控的数据回放方案
第 10 章权重平均模型平均 + Alpha 搜索
第 10 章遗忘监控ForgettingMetrics 实时监控
第 12 章种子数据框架SFT 种子数据设计模板
第 12 章Evol-Instruct指令进化合成方法
第 12 章拒绝采样Best-of-N 采样实现
第 13 章质量检查管线SFT 样本多维度质量检查
第 13 章IFD 计算Instruction-Following Difficulty
第 13 章多样性分析Embedding 聚类 + 覆盖度分析
第 14 章LLM-as-Judge偏好数据自动评分(含消偏)
第 15 章PRM 构造Monte Carlo 步骤级标注
第 16 章GRPO 数据流简化版 GRPO 算法数据处理
第 16 章动态难度基于 solve rate 的难度调整
第 19 章PII 检测器PIIDetector 类完整实现
第 19 章偏见检测数据集偏见分析工具
第 20 章分布式去重MinHash 分布式方案
第 21 章完整管线端到端预训练数据处理管线
第 21 章Token 预算各阶段 token 预算估算
第 21 章配比实验代理实验框架和配比方案
第 21 章SFT 工厂SFT 数据合成与过滤管线
第 21 章偏好构造DPO 偏好数据构造管线

E.3 数据处理性能参考

以下是各处理阶段在典型硬件上的性能参考值:

处理阶段硬件吞吐量内存需求
HTML 提取 (trafilatura)8 核 CPU~1,000 页/秒4 GB
语言识别 (fastText)8 核 CPU~50,000 文档/秒2 GB
启发式过滤8 核 CPU~30,000 文档/秒2 GB
MinHash 计算 (128 perm)8 核 CPU~5,000 文档/秒依数据量
MinHash LSH 查询8 核 CPU~2,000 查询/秒依索引量
质量分类器 (fastText)8 核 CPU~20,000 文档/秒2 GB
质量分类器 (BERT-based)1 × A100~3,000 文档/秒8 GB
LLM 评分 (7B)1 × A100~100 文档/秒40 GB
PII 检测 (正则)8 核 CPU~30,000 文档/秒1 GB

估算提示:处理 1TB 原始文本(约 5 亿个文档)的完整管线,使用 32 核 CPU 服务器约需 3-5 天。加入 GPU 质量分类器约需额外 1-2 天(取决于 GPU 数量)。

E.4 推荐阅读

核心论文:

  1. Penedo et al. “The FineWeb Datasets: Decanting the Web for the Finest Text Data at Scale” (2024)
  2. Li et al. “DataComp-LM: In Search of the Next Generation of Training Sets for Language Models” (2024)
  3. Soldaini et al. “Dolma: an Open Corpus of Three Trillion Tokens” (2024)
  4. Longpre et al. “A Pretrainer’s Guide to Training Data” (2023)
  5. Zhou et al. “LIMA: Less Is More for Alignment” (2023)
  6. Shumailov et al. “AI models collapse when trained on recursively generated data” (Nature, 2024)
  7. Liu et al. “Best Practices and Lessons Learned on Synthetic Data for Language Models” (2024)
  8. Ye et al. “Data Mixing Laws: Optimizing Data Mixtures by Predicting Language Modeling Performance” (2024)
  9. DeepSeek Team. “DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning” (2025)
  10. Wang et al. “Towards Next-Generation LLM Training: From the Data Perspective” (arXiv 2603.14712, 2026)

技术博客:

  1. HuggingFace FineWeb Blog: https://huggingface.co/spaces/HuggingFaceFW/blogpost-fineweb-v1
  2. Allen AI Dolma Blog: https://blog.allenai.org/dolma-3-trillion-tokens-open-llm-corpus
  3. Microsoft SynthLLM: https://www.microsoft.com/en-us/research/articles/synthllm/
  4. Together AI RedPajama: https://www.together.ai/blog/redpajama-data-v2

书籍(按推荐顺序):

  1. 本书 :)
  2. Jurafsky & Martin, “Speech and Language Processing” (3rd ed., draft)
  3. Lilian Weng’s Blog 系列 (lilianweng.github.io) — 严格来说是博客,但质量堪比书籍