大模型训练数据:采集、清洗、去重、配比与合规
「数据决定模型能力的上限,算法与算力只决定你多快、多省地逼近这个上限。」这句话在大模型时代被广泛引用,却常被误读成「数据越多越好」。真实情况是:规模与质量共同作用,而质量往往被低估。本文按训练数据的完整生命周期展开——先回答为什么数据如此关键,再依次讲采集来源、清洗、去重、配比、规模化定律,最后落到合规与版权。每个环节都附一个可运行示例或工具思路,方便你把它接到自己的数据管线里。
为什么数据决定模型上限
模型的能力并非凭空产生,而是从训练数据中「压缩」出来的统计规律。给定固定的架构与算力,模型最终能学到什么,由它见过的语料分布决定:没在数据中充分出现的知识,模型不可能稳定掌握;数据里反复出现的偏见、错误与重复模板,也会被一并学进去。
可以从两个维度理解「数据决定上限」:
第一是规模维度。在质量稳定可控的前提下,更多、更多样的 token 通常带来更平滑的能力曲线。这也是为什么主流开源与闭源模型都倾向于用万亿级 token 做预训练。规模带来的是「覆盖面」——让模型在更多领域、更多语言、更多任务格式上见过样本。
第二是质量维度。规模有边际递减,而质量低下会直接「污染」模型。噪声文本、机器翻译腔、模板化广告、重复段落,这些样本不增加有效信息量,却挤占训练预算,甚至让模型学会复述垃圾。Google 的去重研究(见参考 1)指出,未去重的语料里,超过 1% 的无提示生成内容是从训练集逐字抄来的——这正是低质量重复带来的记忆副作用。
一句话:规模决定「广度」,质量决定「纯度」。两者都做对,才能逼近数据所允许的能力上限。
数据来源:去哪里采
预训练语料通常是多源混合,常见来源可分为四类。
公开学术与百科语料。Wikipedia、Wikimedia 姊妹项目、arXiv、PubMed、开源代码(GitHub 经许可镜像、The Stack 一类)等。这类数据干净、可信度高,但体量相对有限,单靠它们无法支撑万亿 token 的预训练。
Web 爬取语料。Common Crawl 是最常被使用的大规模网页快照仓库,免费开放、体量极大。但直接用原始快照噪声很高,需要重度清洗。常见的「净化版」Web 语料包括 C4(基于 Common Crawl 过滤而来)、RefinedWeb(Falcon 团队从 Common Crawl 精细过滤得到)、FineWeb(Hugging Face 开源的大规模 Web 语料)等。具体规模数字随版本迭代变化,请以各项目最新发布页为准(待核实)。
书籍与长文。Books、Books3(已被下架)、Project Gutenberg 公版书,以及经授权的出版内容。书籍提供了长程连贯、语法规范的叙事文本,对模型的长上下文与推理能力有帮助,但版权风险也最高(见合规一节)。
合成数据。由更强的模型生成问答、代码、推理链等,用于补足稀缺能力(如数学、指令遵循)。合成数据能定向「制造」训练信号,但过度依赖会带来模型崩溃(mode collapse)与分布偏移风险——用自身生成物反复训练,可能让能力退化。合成数据的比例与质量控制是活跃研究方向,具体最佳实践随模型代际变化(待核实)。
实践中,公开语料打底、Web 爬取提供规模、书籍与代码补结构、合成数据补能力,是较主流的组合方式。
清洗:把噪声挡在训练之前
清洗的目标是提升「信噪比」。典型流水线包含以下步骤。
去毒(de-toxification)。过滤仇恨、暴力、色情等有害内容,常用关键词黑名单加分类器(如基于毒性评分模型)。这一步既是质量需要,也是合规与安全的底线。
去隐私。识别并移除邮箱、手机号、身份证号、住址等个人 identifiable 信息(PII)。可用正则加命名实体识别(NER)模型,配合人工抽检。隐私泄漏是训练数据最敏感的合规雷区之一。
去模板与去 boilerplate。网页里大量重复的导航栏、 Cookie 提示、页脚、广告位不携带语义,应基于规则的启发式(如行长度方差、符号密度、重复 n-gram 比例)剔除。
质量过滤。这是清洗的核心。常见做法有两种:一是规则法(如语言识别、文档长度下限、符号比例阈值、perplexity 阈值),二是分类器法——用高质量参照语料(如 Wikipedia、书籍)训练一个二分类器,给待过滤文档打分,只保留高分样本。CCNet、Gopher 规则集都采用这类思路。具体阈值与参照集选择对最终质量影响很大,需针对目标语言与领域调参(阈值数值待核实)。
下面是一段简化的质量过滤占位示例,演示用规则筛掉低质量文档:
def is_high_quality(text: str) -> bool:
# 行首不留 # 注释,这里用行内注释说明阈值思路
chars = len(text)
if chars < 200 or chars > 100000: # 过短或异常过长都可疑
return False
symbol_ratio = sum(not c.isalnum() for c in text) / max(chars, 1)
if symbol_ratio > 0.25: # 符号占比过高,可能是模板页
return False
repeated_lines = len(set(text.splitlines())) / max(len(text.splitlines()), 1)
if repeated_lines < 0.5: # 大量重复行,疑似 boilerplate
return False
return True
docs = ["这是一段正常的中文正文……", "页脚 页脚 页脚 广告 广告"]
kept = [d for d in docs if is_high_quality(d)]
print("保留文档数:", len(kept))
去重:精确去重与语义近邻去重
重复数据是训练语料最隐蔽的浪费。它既浪费算力,又加剧记忆(模型对反复出现的片段过拟合),还会污染评测——测试集里的段落可能早已出现在训练集。
去重分两层。
精确去重。对文档做哈希(如 SHA-256),完全相同的文档只保留一份。实现简单、零误杀,但只能处理「逐字相同」的情况。可进一步对文档按句号或换行切片,做子串级精确去重,移除跨文档的长重复片段。
语义/近邻去重。网页快照里大量文档是「近重复」——同一条新闻被数百个站点转载,只改了站名与广告。这类需要近似去重。Google 的去重论文(参考 1)是这一方向的代表:它结合「精确子串去重」(用后缀数组找长重复片段)与「基于 MinHash 的近似去重」(用局部敏感哈希 LSH 找语义相近文档)。论文里一个典型例子是,C4 中有一句 61 个单词的英文句子被重复了 6 万次以上,去重后可显著削减。该论文结论:去重让模型逐字复述训练内容的频率降低到约十分之一,且用更少训练步数达到同等或更优效果,同时把训练集与测试集的重叠(影响标准评测集超过 4% 的验证样本)大幅降低。具体算法阈值与缩放数字随复现实验不同而变化(待核实)。
下面是一段基于 datasketch 的 MinHash 近邻去重占位示例,演示如何找出近似重复文档:
from datasketch import MinHash, MinHashLSH # 需先执行 pip install datasketch
def make_minhash(text: str, num_perm: int = 128) -> MinHash:
mh = MinHash(num_perm=num_perm)
for shingle in set(text[i:i+5] for i in range(len(text) - 4)): # 5-gram 切分
mh.update(shingle.encode("utf-8"))
return mh
lsh = MinHashLSH(threshold=0.9) # Jaccard 相似度阈值 0.9
docs = {"a": "今天天气真好我们去公园散步", "b": "今天天气真好我们去公园散步了"}
for key, text in docs.items():
lsh.insert(key, make_minhash(text))
print("文档 a 的近邻:", lsh.query(make_minhash(docs["a"]))) # 预期命中 b
注意:上面的 5-gram 与阈值 0.9 仅为占位示例,真实中文语料常用分词或字符级 n-gram,阈值需按语料重复程度调参(具体取值待核实)。
数据配比:各域比例与训练调度
把多源数据简单拼在一起往往不够,因为不同域的「单位 token 信息量」差异巨大。配比要回答两个问题:各域占多少,以及什么时候喂什么。
各域比例。代码、数学、书籍、网页、对话,每类对模型能力的贡献不同。经验上,适量提高高质量域(代码、书籍、学术)的比例有助于推理与连贯性,但过高会损害通用性与低资源语言。LLaMA、DeepSeek 等公开配方都给出了明确的域权重,但具体数值随模型目标不同,请以官方技术报告为准(具体比例待核实)。
课程式与退火式调度。训练早期用「更广、更脏」的数据打底,后期用「更精、更窄」的数据收尾,这种思路称为课程学习(curriculum)。另一种常见做法是「退火」(annealing):在训练最后阶段提高高质量数据(如数学、代码、指令数据)的采样权重,并降低学习率,让模型在收尾时吸收更干净的信号。很多开源模型的「annealing」阶段会混入指令数据与难例,以直接拉升下游表现。
配比不是一次性的,需要 ablation:固定预算下,对不同域权重做小规模实验,用验证集与下游基准挑出最优组合,再放大到全量训练。
规模化定律与数据效率
「要喂多少数据才够」有理论框架,最著名的是 Chinchilla 定律(参考 2)。
DeepMind 的 Chinchilla 论文在固定算力预算下,训练了 400 多个规模从 7000 万到 160 多亿参数的模型,得出核心结论:此前的很多大模型「训练严重不足」——模型做大但数据没跟上。其主张是,在算力最优配置下,模型参数量与训练 token 数应当等比缩放:模型规模翻倍,训练 token 也应翻倍。论文据此训练了 Chinchilla:在和 Gopher 相同算力预算下,用 70B 参数(远少于 Gopher 的 280B)配上约 4 倍于 Gopher 的数据量,在大量下游任务上一致且显著超越 Gopher、GPT-3、Jurassic-1、MT-NLG,并在 MMLU 上达到 67.5% 的平均准确率。
可操作的启示有两点:一是「参数:数据」要匹配,不要盲目堆参数而饿着数据;二是数据效率有上限,当数据量相对算力已经充足时,继续加数据收益递减。这里的「最优比例」与「边际收益拐点」高度依赖架构、分词与数据质量,具体数值请以原论文与最新复现研究为准(结论方向已核验;精确缩放系数待核实)。
需要强调的是,Chinchilla 定律描述的是「给定算力下的训练最优」,而真实工程还需权衡推理成本:更大模型推理更贵,因此很多团队会有意「过训练」(用远超最优的数据量训练较小模型)以换更便宜的部署,这就是「data-constrained」与「over-trained」两种策略的取舍。
合规与版权:训练数据合法性
数据合规是大模型训练最不可回避、也最不确定的环节。要点如下。
许可证与授权。开源语料要注意许可证:CC BY-SA 类(如 Wikipedia)通常要求署名与相同方式共享;代码数据要注意各自的开源协议(GPL、MIT、Apache 等)是否允许训练用途,商业训练尤其需要法务审查。书籍、新闻、受版权保护的图文,原则上需明确授权,否则可能构成侵权。
robots.txt 与退出信号。许多站点通过 robots.txt 表达爬取意愿,训练方常据此决定是否爬取。近年来还出现了「请勿用于训练」的退出信号(如 Spawning 的「Have I Been Trained」登记、C2PA 内容凭证等)。是否尊重这些信号,既是法律判断也是企业声誉问题(具体机制与法律效力待核实)。
过滤与红队。即便来源合法,也需在管线里做去毒、去隐私、去个人数据,并对成品模型做红队测试,排查是否复述受保护内容或泄露训练集中个人信息。监管层面,欧盟《AI 法案》等对训练数据透明度、版权方退出机制、风险分层提出了要求,各法域规则仍在演进(具体条文与生效时间待核实)。
诉讼现状。围绕「未经授权用受版权内容训练」已有多起诉讼(如新闻出版机构与作者对模型厂商的案件),判决结果将直接影响未来数据合规边界。撰写本文时相关案件仍在审理或上诉中,结论不宜作为定论引用(待核实)。
务实建议:建立数据来源台账(来源、许可证、采集时间、处理方式),对高风险来源做法律审查与剔除,对 PII 做脱敏,保留「可退出」机制,并在模型发布时披露数据构成概况。把合规前置到采集环节,远比事后补救成本低。
小结
训练数据决定模型能力的上限,而「规模」与「质量」是两个必须同时抓好的维度:规模决定覆盖面,质量决定纯度,低质量重复反而会污染模型。一条完整的预训练数据管线通常包含采集(公开语料、Web 爬取、书籍代码、合成数据)、清洗(去毒去隐私去模板质量过滤)、去重(精确哈希加 MinHash/LSH 近邻去重)、配比(各域比例加课程式或退火式调度)四步,每一步都在影响最终能力。
在训练规模上,Chinchilla 定律提醒我们参数与数据要匹配、切忌「训练不足」;但工程落地还需在训练成本与推理成本之间权衡,出现过训练等务实变体。最后,合规不是可选项:许可证审查、退出信号尊重、PII 脱敏与红队测试应前置到采集阶段,并建立可审计的数据台账。数据工作没有一劳永逸的配方,唯有持续做 ablation、盯住下游指标、跟上法规演进。
参考与延伸阅读
-
Lee 等人「Deduplicating Training Data Makes Language Models Better」(arXiv:2107.06499,ACL 2022):论文结合了精确子串去重与基于 MinHash/LSH 的近似去重,给出「61 词句子重复 6 万次」「生成逐字复述降至约十分之一」「训练测试重叠影响超 4% 验证样本」等结论,并开源代码 github.com/google-research/deduplicate-text-datasets。核心结论已核验;具体算法阈值与缩放数字待核实。链接:https://arxiv.org/abs/2107.06499 (已核验,访问于 2026-08-18)
-
Hoffmann 等人「Training Compute-Optimal Large Language Models」(Chinchilla,arXiv:2203.15556,DeepMind 2022):提出算力最优下参数与训练 token 等比缩放,Chinchilla 以 70B 参数、约 4 倍于 Gopher 的数据在相同算力下显著超越多个更大模型,MMLU 平均 67.5%。结论方向已核验;精确缩放系数与最优比例待核实。链接:https://arxiv.org/abs/2203.15556 (已核验,访问于 2026-08-18)
-
Raffel 等人「Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer」(T5,arXiv:1910.10683,JMLR 2020):提出 C4(Colossal Clean Crawled Corpus),即基于 Common Crawl 过滤得到的清洗语料,是 Web 语料净化的早期代表,可了解清洗规则设计。链接:https://arxiv.org/abs/1910.10683 (已核验,访问于 2026-08-18)
-
公开数据配方与技术报告(供配比参考,具体域比例与退火策略随版本变化,标注待核实):LLaMA 系列技术报告(Meta)、DeepSeek 系列技术报告(深度求索)、RefinedWeb / FineWeb 项目主页(Web 语料)。各报告中的具体数字请以官方最新版本为准。(待核实)
-
合规与版权参考(法律条文与诉讼结论随法域与时间变化,标注待核实):欧盟《AI 法案》官方文本、Spawning「Have I Been Trained」退出登记页面、各内容方对模型厂商训练数据诉讼的公开报道。具体条文效力与案件结果请以官方与司法公告为准。(待核实)