ReScraper: Unified Scraping and Cleaning of Web Data for Effective LLM Pretraining
Zichun Yu, Jiarui Yan, Shlok Sanghvi, Nihar Atri, Chenyan Xiong
cs.CL, cs.AI, cs.LG
2026-09-28
用 0.6B 模型一次完成网页抽正文与四种清洗操作,替代启发式抓取加规则过滤。同一批爬取数据上,400M 到 2.8B 预训练的 DCLM Core 相对最强基线提升 3.8% 到 4.7%。
网页爬取几乎撑起 LLM 预训练语料。从 HTML 变成能训的文本,工业界仍靠启发式抓取器加一串规则过滤器:长度、符号比、重复度。resiliparse、trafilatura 按 DOM 和链接密度抽正文,后面的规则大多对整页做保留或丢弃。一页里夹一段广告,要么有用正文一起扔,要么噪声一起留下。
规则本身也不准。论文用独立 LLM 当评委抽查 5000 页,各条规则丢掉的页面里有 31%–65% 被判成值得留下。「重复太多」误杀最高,达 65%;「页面太短」也有 31%。近两年有小模型做抽正文、质量打分、编辑程序或整页改写,但每家只接管一段,吃的是上游抓取器的输出。抓取器把表格单元格粘在一起、把侧栏当成正文,后面的清洗模型改不回来。
问题很具体:能不能用一个小模型,从原始页面一次产出预训练可用的文本。
ReScraper 把 Qwen3-0.6B 微调成统一清洗模型。输入不是 DOM,是把 HTML 渲成纯文本、去掉残留标记、每块一行并打上 <lid:n>。导航、页脚、侧栏都还在输入里。模型只写出要删哪些行、要选哪一步,再由按行号执行的程序去改原文。
每页固定先做抽正文 <extract>,再选四个操作之一:
除改写外,模型只列出删除清单,输出长度跟删除次数走,不跟页面长度走。绝大多数页不会被改写,原文用词得以保留。
监督来自三个教师串起来的标签。抽正文教师是 Dripper,一个专标 HTML 主内容的小模型,不判断值不值得训。语义清洗教师是 Qwen3.8-27B,按固定规则决定保留、编辑或删除。被删的页再用 FineWeb-Edu(网页教育价值 0–5 分的分类器)打分,≥1.0 的交给 1B 的 RePro 改写,标签改成 rewrite,把有料但脏的页救回来。
训练分两段。第一段约 138 万条,rewrite 只占 0.1%,先学选操作和列删除清单;第二段 13.1 万条,rewrite 拉到 30%,专门补整页生成。操作标签的损失加权 5 倍,避免一步决策被后面的长输出淹没。
同一池子:1800 万条英文 Common Crawl,17.69B token,来自 DCLM。各流水线输出都用 Bloom filter 去重。ReScraper 留下 7.44B 独特 token。下游是 DCLM Core,22 个任务的中心化准确率,随机猜映射为 0、满分映射为 1。
| 规模 | 最强规则 | 最强模型基线 | ReScraper | 相对最强基线 |
| 400M / 8.2B token | FineWeb-rule 0.1465 | DataOrchestra 0.1461 | 0.1535 | +4.7% |
| 1.4B / 28.8B | RefinedWeb-rule 0.2534 | UltraX 0.2615 | 0.2735 | +4.6% |
| 2.8B / 55.9B | RefinedWeb-rule 0.3006 | DataOrchestra 0.3068 | 0.3184 | +3.8% |
规则集的最强者随规模换人,没有一套手写规则稳赢。0.6B 清洗模型给 1.4B 和 2.8B 供数,相对最强基线仍高 4.6% 和 3.8%。对多代理流水线 DataOrchestra(1.7B 调度加 0.6B 删行加 4B 改写),三个规模相对高 5.1%、6.6%、3.8%。2.8B 那档每个独特 token 大约重复 7.5 次,模型基线大约 4.1–5.2 次,质量在补重复。
1.4B 上拿掉 extract,Core 相对掉 16.6%;拿掉 delete 掉 8.8%;拿掉 rewrite 掉 7.8%;拿掉 edit 只掉 2.4%。把抽正文换成 Dripper 再接清洗,Core 掉 3.6%。Dripper 再接 UltraX 的级联,400M 落后 6.6%,1.4B 落后 3.2%。四个抓取器加 RefinedWeb 规则也全输给 ReScraper,400M 相对差 5.8%,1.4B 相对差 8.3%。
留出 5000 页上,删除页的质量分远低于留下的;编辑略抬 DataMan;改写把两个质量分都抬上去。最差那档页,ReScraper 把 DataMan 抬了 1.28,其他流水线最多 0.44。FineWeb-Edu ≥1.0 的页它留了 95%,RefinedWeb 规则会扔掉 30%。改写页相对抽正文的 BERTScore-F1 均值 0.89。学生相对教师输出的 token F1 是 89.3。整池推理 494 个 H200 GPU 小时,大约是单独跑 Dripper 的三分之一。
对做预训练数据的人,这是把抓取、整页过滤、行级编辑、必要时改写收成一次前向的证据。启发式规则栈不是上限。级联里抓取器一旦抽错,后面的编辑模型改不回来;统一模型读带行号的全页渲染,表格行和列表项能保住。
这是可落地的渐进改进,不是新的预训练算法。教师标注要先付,换新域得重打标签。产出 7.44B 独特 token,比 UltraX 的 10.78B 和 DataOrchestra 的 13.60B 都少,大预算下靠质量对冲重复。已开源代码、模型和数据,适合洗 Common Crawl 类网页;代码仓、论文 PDF、多语言站没有验证。
论文没有单独的 Limitations 节。预训练只做到 DCLM 的 400M / 1B / 3B-1x,最大 2.8B、55.9B token,没有 7B 以上或万亿 token 验证。「弱到强」目前是 0.6B 供数给 2.8B,跨度有限。种子方差只在 400M 上测了五次,均值 0.1539±0.0039,更大模型稳不稳不知道。
语料只有英文 Common Crawl。超长页和渲染失败的页直接丢掉。rewrite 是唯一会写新词的操作,忠实度靠 BERTScore,没有人工抽查幻觉。FineWeb-Edu ≥1.0 的救援门槛很低,夹杂广告的基本信息也会被改写进语料;阈值收到 1.5,1.4B 的 Core 最多 0.2577,低于最终的 0.2735。
教师错误会被蒸进去。Qwen 清洗提示词里混了 UltraX 的改写示例,和「严格字符子集、不许改写」的规则是拧着的;约 0.43% 的第一段标签确实改了或加了词。第二段把 rewrite 提到 30%,学生会改写一些教师本该删除、分数刚低于 1.0 的页。这是用训练配比在改决策边界,不是纯模仿教师。