Q901训练与微调真题解析LLM 训练AgentAlpha 社区真题库约 7 分钟更新 2026-09-29

预训练(Pre-training)的数据来源有哪些?如何构建高质量预训练语料

预训练(Pre-training)的数据来源有哪些?如何构建高质量预训练语料

1️⃣ 考察意图

面试官想看你能否从"数据来源 → 质量控制 → 配比设计"整条链路理解预训练数据工程。刁钻点在于:很多人只列举数据来源(Common Crawl、Wikipedia),但说不出质量控制的具体方法(去重、过滤、脱敏)和配比设计的工程逻辑。答好了能展示你对"数据决定模型上限"这一核心原则的深刻理解。

2️⃣ 标准答

预训练数据工程是"收集 → 清洗 → 去重 → 配比"的四步流水线,每步都直接影响模型最终能力。

1. 数据来源(按规模排序)

来源占比(典型)内容质量
Common Crawl60-70%网页爬虫数据低-中,需大量清洗
GitHub/代码10-20%开源代码高,结构化
Books5-10%书籍全文高,长文本
Wikipedia3-5%百科条目高,事实准确
ArXiv/论文2-5%学术论文高,专业知识
社交媒体2-5%Reddit/Twitter低-中,口语化
多语言5-15%非英文网页中,需语言检测

2. 数据清洗流水线

  • 格式提取:从 HTML 中提取正文(用 trafilatura/trafilatura),移除导航栏、广告、页脚。PDF 用 PyMuPDF/MinerU 做版面分析
  • 语言过滤:用 fastText 语言检测器,保留目标语言(如中文+英文),过滤混合语言噪声
  • 质量过滤:困惑度过滤:用小模型(如 KenLM)给文本打分,过滤 perplexity 过高(乱码)或过低(重复模板)的内容
  • 规则过滤:移除长度<50字、特殊字符占比>30%、重复行占比>50%的文档
  • 安全过滤:用分类器(如 Perspective API)检测毒性内容,过滤 score>0.8 的文档 PII 脱敏:用正则+NER 检测个人信息(邮箱、电话、身份证号),替换为 [EMAIL]、[PHONE] 占位符版权过滤:移除明确有版权限制的内容(如纽约时报文章),用 URL 黑名单或内容指纹匹配

3. 数据配比设计

配比直接影响模型能力分布。典型配比(以 LLaMA-3 为参考):

  • 网页 50% → 通用语言能力
  • 代码 20% → 推理、结构化输出
  • 书籍 10% → 长文本理解
  • 百科 5% → 事实知识
  • 学术 5% → 专业领域
  • 对话 5% → 对话能力
  • 多语言 5% → 跨语言

配比调整的工程逻辑:

  • 代码比例↑ → 数学和推理能力提升(实验:代码从 10% 提到 30%,GSM8K +5分)
  • 多语言比例↑ → 英文能力略降(资源争夺效应)
  • 网页比例↑ → 通用对话能力提升,但事实准确性可能下降(网页噪声多)

4. DoReMi 自动配比优化

  • 传统方法靠人工调参,DoReMi 用小型代理模型(如 280M)评估各数据源的价值,自动优化配比
  • 流程:(1) 用初始配比训练代理模型;(2) 用代理模型的 loss 估计各数据源的价值;(3) 调整配比,高价值数据源增加权重;(4) 用新配比训练目标模型
  • 效果:DoReMi 在 GLaM 模型上比人工配比提升 6.6% 的下游任务平均分

3️⃣ 答题模板(30 秒电梯版)

"预训练数据工程是四步流水线:收集(Common Crawl 60%+代码 15%+书籍百科 15%)、清洗(格式提取→语言过滤→困惑度过滤→PII脱敏→版权过滤)、去重(MinHash/LSH 去重率通常 30-50%)、配比(代码↑推理好、百科↑事实准)。配比设计靠人工经验或 DoReMi 自动优化。核心原则:数据质量决定模型上限,10T高质量数据 > 100T 低质量数据。"

4️⃣ 高频追问 & 应对

追问 1:Common Crawl 数据质量这么低,为什么还占 60%+?

因为规模。Common Crawl 有超过 250B 网页、PB 级数据,是唯一能提供"互联网规模"训练数据的来源。质量虽低但经过清洗后仍有大量有用信息(博客、新闻、论坛讨论)。替代方案:用高质量数据(书籍、论文)但数据量不够——所有书籍加起来约 100B tokens,论文约 50B tokens,而 LLaMA-3 训练用了 15T tokens。没有 Common Crawl 的规模,模型无法达到"涌现能力"的阈值。

追问 2:困惑度过滤会不会把高质量但"难"的文本过滤掉?

会。困惑度过滤的假设是"好文本的困惑度适中"——太高是乱码,太低是重复模板。但学术论文、专业内容可能困惑度偏高(因为用词特殊),被误过滤。解法:(1) 分领域过滤——对不同领域用不同的困惑度阈值;(2) 分层过滤——先用宽松阈值过滤明显垃圾,再用严格阈值精细过滤;(3) 白名单保护——对已知高质量来源(如 ArXiv、Wikipedia)跳过困惑度过滤。

追问 3:数据配比在训练过程中是固定的吗?还是动态调整?

可以动态调整,叫"数据课程"(Data Curriculum)。策略:(1) 前期多用通用网页数据训练语言能力,后期增加代码和学术数据比例提升推理能力;(2) 用困惑度作为难度指标,先训练低困惑度(简单)数据,再训练高困惑度(复杂)数据;(3) DoReMi 的动态版——每隔 N 步用代理模型评估各数据源价值,动态调整采样概率。效果:在代码和数学任务上比固定配比提升 5-10%。但实现复杂,大部分模型仍用固定配比。

5️⃣ 避坑 · 常见错误答法

  • ❌ "数据越多越好,把互联网上所有数据都喂给模型" → ✅ "数据质量比数量重要。CC 数据虽多但 30-50% 是重复或低质量的,需要大量清洗和去重。研究表明用 1T 高质量数据训练效果优于 10T 低质量数据。"
  • ❌ "Common Crawl 直接用就行" → ✅ "CC 数据包含大量噪声:广告、导航栏、乱码、重复内容、有害内容。必须经过格式提取、语言过滤、困惑度过滤、PII 脱敏、去重等多步清洗才能使用。"
  • ❌ "配比随便设,模型自己会学" → ✅ "配比直接影响模型能力分布。代码太少→推理差,百科太少→事实错误多。需要根据目标任务(通用 vs 专业)精心设计配比,或用 DoReMi 自动优化。"

6️⃣ 简历呼应

  • 如果你有预训练项目:从"数据工程整条链路"切入,描述你构建的预训练数据流水线(收集→清洗→去重→配比),给出数据规模(如 2T tokens)和质量指标(去重率、过滤率)
  • 如果你只做过微调:用"微调数据质量控制的思路可以迁移到预训练"切入,说明你理解数据清洗和质量评估的原则
  • 如果你是校招:用 Common Crawl 的一个小子集(100GB)实现清洗流水线,对比清洗前后的数据质量,写博客分析
  • "LLaMA: Open and Efficient Foundation Language Models" (Touvron et al., 2023)
  • "DoReMi: Optimizing Data Mixtures by Pretraining Language Models" (Xie et al., 2023)
  • "The RefinedWeb Dataset for Falcon LLM" (Penedo et al., 2023)

—— 本场面试完 ——