
在大模型预训练语料的历史上,C4(Colossal Clean Crawled Corpus,庞大清洗后的爬取语料)是一个绕不开的名字。它是 Google 在 2020 年随 T5 模型一起发布的英文网页语料,也是「过滤后的 Common Crawl」这个品类的开山之作。今天我们熟悉的几乎所有开源网页预训练数据集——mC4、RedPajama、RefinedWeb、FineWeb、Dolma——追根溯源,都能看到 C4 的影子。它既奠定了「从原始网页里洗出干净语料」的方法论,也埋下了一个后来被反复讨论的数据伦理问题。
数据集速览卡
| 项目 | 内容 |
|---|---|
| 数据集名称 | C4(Colossal Clean Crawled Corpus) |
| 发布机构 | Google Research(T5 团队) |
| 发布时间 | 2020 年(论文 arXiv:1910.10683,JMLR 2020) |
| 规模 | 约 1560 亿 token、3.65 亿文档、365 万个域、约 750-806 GB |
| 许可证 | 基于 Common Crawl;AllenAI 于 2021 年提供可再分发副本(allenai/c4) |
| 用途定位 | 英文预训练语料,T5 与 Switch Transformer 的训练数据 |
背景:T5 需要一个「自己可控」的大语料
要理解 C4 为什么被造出来,得回到 T5 这个项目本身。
T5(Text-to-Text Transfer Transformer)是 Google Research 在 2019-2020 年做的一个大型消融研究,目标是把所有 NLP 任务统一成「文本到文本」的格式,然后系统比较预训练目标、模型架构、训练时长、数据配比等因素对迁移学习的影响。要做这样的公平比较,团队需要一个「大、英文、网页规模、且端到端可控」的语料。
但当时市面上的语料,各有各的问题:Wikipedia、BookCorpus 这类「小而精」的语料太小;WebText(GPT-2 用的)是专有的、不开放;而未经处理的 Common Crawl 又太脏——里面塞满了菜单、报错信息、机器生成的样板文字、以及大量非英文内容。C4 就是为了填补这个空白而生的:它用一套「足够便宜、能在万亿 token 规模上跑」的启发式规则,把 Common Crawl 洗成一个「相对干净」的英文语料。
值得一提的是,C4 最初只是一个 Google 内部产物——通过 TensorFlow Datasets 的构建脚本,在 Cloud Dataflow 上直接对 Common Crawl 跑清洗流水线。因为构建成本高昂(大约数千 CPU 小时),而且结果非常庞大,团队一开始只发布「构建配方」而非数据本身。直到 2021 年,艾伦人工智能研究所(AllenAI)才在 Hugging Face Hub 上发布了可再分发的副本 allenai/c4,这成为今天最常用的分发版本。
数据构成与规模
C4 的起点,是 Common Crawl 2019 年 4 月的一份快照。Common Crawl 是一个非营利组织,每月爬取整个互联网,以两种格式提供网页文本:原始 HTML(WARC)和剥离 HTML 后的纯文本(WET)。C4 从 WET 纯文本提取开始。
经过清洗后,最终得到的 C4.en(英文清洗版)规模如下:
| 版本 | 文档数 | token 数 | 大小 |
|---|---|---|---|
| C4.EN.NOCLEAN(未清洗) | 11 亿 | 1.4 万亿 | 2.3 TB |
| C4.EN.NOBLOCKLIST(无黑名单过滤) | 3.95 亿 | 1980 亿 | 380 GB |
| C4.EN(完整清洗版) | 3.65 亿 | 1560 亿 | 305 GB(另说 806 GB 含元数据) |
这几个数字背后有一条重要的信息:从 1.4 万亿 token 的原始快照,到 1560 亿 token 的最终语料,清洗过程「丢」掉了大约 89% 的数据。换句话说,Common Crawl 里真正「有用」的自然英文文本,只占一小部分——这也解释了为什么「数据清洗」在预训练里如此重要。
除了英文主版本,C4 还有几个衍生配置:c4/en.noclean(关闭所有清洗)、c4/realnewslike(只保留 RealNews 数据集所用域名)、c4/webtextlike(只保留 OpenWebText 链接对应的 URL,约 17.93 GiB、449 万文档),以及最重要的 c4/multilingual(即 mC4,覆盖 101 种语言,从 86 份 Common Crawl 快照生成,约 38.49 TiB)。
清洗与构建方法
C4 的清洗流水线,是它最有价值、也最有争议的部分。这套规则的目标很明确:用足够便宜的启发式方法,把明显低质的内容过滤掉,同时让流水线能在万亿 token 的规模上跑得动。
核心的几条启发式过滤规则是:
- 只保留以终结标点结尾的行:丢弃导航菜单、报错信息、列表脚手架(这些行通常不以句号/问号/感叹号结尾)。
- 丢弃句子少于 5 句的页面:过滤掉碎片化的页面。
- 丢弃包含「Lorem ipsum」占位文字的页面。
- 丢弃包含「不良词汇列表」(List of Dirty, Naughty, Obscene, or Otherwise Bad Words)中任意词的页面。
- 用 langdetect 移除不是英文的文档:要求分类为英文的概率至少 0.99。
- 丢弃包含花括号
{的页面(用来排除代码)。
这套流水线的设计哲学很朴素:不求「精确地识别什么是好数据」,只求「便宜地排除明显是坏数据的东西」。它之所以能成为后来者的模板,正是因为它证明了「一个简单的、可扩展的、文档化的过滤流水线」,比「一个复杂的、但没法在万亿规模上跑的清洗器」更有实用价值。
但这份「简单」也埋下了问题。2021 年,Dodge 等人在 EMNLP 上发表了一篇名为《Documenting Large Webtext Corpora》的审计论文,对 C4 做了系统性的「数据集文档化」研究,发现了几件重要的事:C4 里存在大量来自专利、美国军事网站等「意想不到来源」的文本;存在机器翻译系统生成的机器文本;存在来自其他基准测试集的「污染」(contamination)——即训练语料里混入了某些评测集的测试样本。而最引发争议的,是那条「不良词汇黑名单」过滤规则——它不成比例地删除了少数族裔、方言、以及讨论 LGBTQ+ 群体身份相关的网页文本。这个发现,让 C4 成了「数据集文档化」和「过滤规则的隐性偏见」这两个议题的标志性案例。
下载与使用
C4 最常见的获取方式有两个:Hugging Face Hub 上的 allenai/c4(AllenAI 提供的可再分发副本,推荐),以及 TensorFlow Datasets 的 c4 目录(官方文档记录了各配置的大小和切分)。
在 Hugging Face 上加载英文版的典型方式是:
from datasets import load_dataset
# 英文清洗版(c4/en 配置)
dataset = load_dataset("allenai/c4", "en")
# 多语言版(mC4)
dataset_mc4 = load_dataset("allenai/c4", "multilingual", lang="zh")
C4 的记录结构里,每条样本包含几个关键字段:text(正文)、url(来源 URL)、timestamp(抓取时间)、content-type、content-length。其中 url 字段对做「来源溯源」和「污染检测」特别有用——你可以通过它追查某条文本到底来自哪个网站。
需要注意的是,C4 的官方构建脚本(在 T5 仓库里)需要你手动下载 Common Crawl 原始数据、并在 Cloud Dataflow 上重跑清洗流水线,成本不菲。对绝大多数只想「用数据」的人来说,直接用 AllenAI 的副本是更现实的选择。
许可证与商用注意
C4 的许可证情况有点微妙,需要说清楚。C4 本身基于 Common Crawl 的数据,而 Common Crawl 使用自己的使用条款(允许研究和商业使用,但要求遵守来源网站的服务条款)。AllenAI 提供的 allenai/c4 副本,则在 Common Crawl 条款的基础上分发。
对使用者来说,最需要注意的其实不是「许可证」本身,而是「内容合规」:C4 是从公开网页爬取的语料,里面可能包含受版权保护的文本、个人信息、以及有害或不实的内容。Dodge 等人的审计已经证明,C4 里存在专利文本、机器翻译文本、甚至可能混入评测集答案。所以,如果你用 C4 做预训练或研究,需要自行评估数据里可能存在的版权、隐私、偏见风险,并做好必要的过滤和合规审查。
横向对比同类数据集
C4 在「过滤后的 Common Crawl」这个品类里,是所有后来者的「参照系」。把它和几个同赛道的数据集对比,能更清楚地看到它的位置。
和 WebText(GPT-2 用)比,C4 的关键优势是「开放」——WebText 是 OpenAI 的专有数据,从未公开,而 C4 有可再分发的副本,这是它成为「开源语料祖先」的根本原因。和 RefinedWeb(Falcon 用)比,RefinedWeb 主打「只用严格去重、不做过多启发式过滤」的极简路线,规模达到 5000 亿 token 级,远超 C4;但 C4 的「启发式过滤」思路反而成了更早、更教科书式的范式。和 FineWeb(HuggingFace 2024)比,FineWeb 把「质量过滤」这件事做到了极致——用更精细的去重和过滤,在 15 万亿 token 的候选池里炼出高质量子集——但它的方法论,本质上仍是 C4 那套「清洗流水线」的延续和升级。
一个可以提炼的规律是:C4 之后的每一代网页语料,都在回答同一个问题——「怎么在更大的规模上,把网页洗得更干净」。C4 是那个「第一次把答案文档化」的起点。
局限与争议
C4 的局限,主要集中在三个方面。
第一是过滤规则的隐性偏见。Dodge 等人的审计是这份数据最著名的「负面标签」——那条不良词汇黑名单,不成比例地过滤掉了非裔美国人英语(AAVE)方言、以及讨论 LGBTQ+ 身份的文本。这提醒我们:任何「看似中立」的清洗规则,都可能隐性地排斥某些群体,而数据集的创建者往往对此缺乏觉察。
第二是污染(contamination)。审计发现 C4 里混入了其他基准测试集的测试样本。这对预训练语料来说是个实际问题——如果你的训练数据里已经包含了评测集的答案,那这个评测集就「失效」了,模型的高分可能来自「见过答案」而非「真实能力」。
第三是来源混杂。C4 里有意想不到的来源(专利、军事网站、机器翻译文本),这说明「网页爬取」这个动作本身,并不能保证数据是「自然的、高质量的」。2023 年《华盛顿邮报》的一项调查,基于 AllenAI 的 C4 副本,绘制了语料里 1500 万个网站的地图,进一步印证了来源的混杂。
C4 为什么是「开源语料的祖先」:一条清晰的影响链
C4 的历史地位,用「祖先」来形容毫不夸张,因为它开创了一个方法论模板,而几乎所有后来的开源网页语料都在沿用和迭代这个模板。
这条影响链可以梳理得很清楚。C4 确立的模板是:「选一个 Common Crawl 快照 → 用一套启发式规则过滤 → 得到干净语料 → 文档化 + 开放分发」。后来的数据集,几乎都在这个模板上做文章。
直接的血缘关系是这样的:mC4(多语言 C4)是 C4 的「多语言版」,从 86 份 Common Crawl 快照里生成 101 种语言的语料,规模达 38.49 TiB,是 T5 的多语言变体 mT5 的训练数据。RedPajama(Together AI 的 Llama 复刻项目)用了「C4 风格」的清洗,试图复现 LLaMA 的训练数据。RefinedWeb(Falcon 的训练语料)则是「反 C4 路线」——它批评 C4 的「过度启发式过滤」会丢掉有用数据,主张「只做严格去重、不做过多过滤」,最终做到 5000 亿 token。FineWeb(HuggingFace 2024)则是「升级版 C4」——用更精细的去重和过滤,在 15 万亿 token 的候选池里炼出更高质量的子集。
从这个影响链里,能看到一个清晰的演进逻辑:每一代都在回答「怎么在更大规模上,把网页洗得更干净」。C4 是那个「第一次把答案文档化、并开放出来」的起点——它证明了「过滤后的 Common Crawl」是一条走得通的路,后来的所有人,都是在它铺好的路上往前走。
还有一个被低估的贡献:C4 是「数据集文档化」这个议题的催化剂。Dodge 等人 2021 年对 C4 的审计(那篇 EMNLP 论文),是整个 AI 领域最早、也最有影响力的「数据集审计」之一。它证明了「数据集不是中立的、过滤规则有隐性偏见、语料里可能有污染」,这些问题今天已经成为数据集研究的核心议题。从这个意义上说,C4 不仅是「语料模板」,也是「数据集研究」这个学科的起点之一。
一个实操视角:如果你今天要造网页语料,能从 C4 学到什么
C4 的清洗流水线,放到今天依然有很强的参考价值,尤其是对「要自建预训练语料」的团队来说。它留下的几条经验,可以提炼成可直接套用的原则。
第一,清洗规则要「便宜」。C4 的所有过滤规则——终结标点、句子数、黑名单词、langdetect——都是 O(1) 级别的启发式操作,可以在万亿 token 规模上线性跑完。这是它能落地的根本原因。很多团队一开始想设计「复杂的、精确的」清洗器,结果卡在了「跑不动」上。C4 的教训是:先要「能跑」,再谈「精确」。
第二,「去掉明显坏的数据」比「找到完美好数据」更现实。C4 的哲学不是「识别什么是好数据」,而是「便宜地排除明显是坏数据的东西」——菜单、报错、Lorem ipsum、代码、非英文。这个「负向过滤」的思路,比「正向筛选」在规模上可行得多,也是后来 FineWeb 等数据集沿用至今的核心逻辑。
第三,过滤规则不是中立的,要主动审计。Dodge 的审计给了一个深刻的教训:一条「看似中立」的黑名单词规则,可能不成比例地伤害少数群体。这提醒所有做数据的人:清洗规则本身就是一种「立场」,必须主动审计它「排除了谁」。C4 的「黑名单词」争议,是后来所有数据集「数据公平性」讨论的起点。
第四,保留来源元数据。C4 的 url、timestamp 字段,让它后来的审计、污染检测、来源溯源成为可能。如果当初 C4 把这些元数据丢掉了,Dodge 的审计就无从谈起,2023 年《华盛顿邮报》的网站地图也画不出来。这提醒做数据的人:把「来源」留住,是给未来的自己(和整个社区)留一条后路。
参考来源
- Raffel et al.《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》(arXiv:1910.10683,JMLR 2020)
- Dodge et al.《Documenting Large Webtext Corpora: A Case Study on the Colossal Clean Crawled Corpus》(arXiv:2104.08758,EMNLP 2021)
- Hugging Face:allenai/c4
- TensorFlow Datasets:c4 目录
- AI Wiki《C4 (Colossal Clean Crawled Corpus)》

