Crawl4LLM 是什么?为 LLM 预训练而生的高效网页爬虫全解析 📅 发布时间:2026/8/21 13:27:36 👁 浏览次数: Crawl4LLM 是什么为 LLM 预训练而生的高效网页爬虫全解析【免费下载链接】Crawl4LLMOfficial repository for Craw4LLM: Efficient Web Crawling for LLM Pretraining项目地址: https://gitcode.com/gh_mirrors/cr/Crawl4LLMCrawl4LLM 是一个为 LLM 预训练设计的开源网页爬虫项目它的目标是用更少的网页、更低的成本为大模型预训练挑选出质量更高的训练语料。本文将从零开始为你讲清楚这个为 LLM 预训练而生的高效网页爬虫是什么、怎么工作、如何快速上手帮助新手在几分钟内掌握它的核心用法。为什么 LLM 预训练需要更聪明的网页爬虫大模型预训练需要海量高质量文本而传统爬虫往往抓到什么算什么。问题在于互联网上大量网页内容重复、低质、噪声多直接灌进模型会拖累训练效果。Crawl4LLM 的核心思路是——在爬取的过程中就实时评估网页质量优先抓取值得训练的高质量文档而不是漫无目的地全量抓取。这也是它与普通爬虫最本质的区别爬取即筛选。Crawl4LLM 的核心原理评分驱动的智能爬取Crawl4LLM 并不是简单的 BFS 广度爬取而是一套**评分—入队—出队—扩展的闭环**从种子文档seed.txt 中存放了 10000 条 ClueWeb22 文档 ID出发对候选文档用多个**质量评分器quality rater**打分按分数存入优先队列每次优先弹出高分文档提取高分文档的出链outlinks重复打分入队直到爬够目标数量。这一主循环在 crawl.py 中实现核心数据结构优先队列、去重集合在 crawler.py 中维护。五种质量评分器各有妙用评分器是 Crawl4LLM 的眼睛定义在 document_rater.py 中评分器打分依据适合场景length文档长度过滤过短的无价值页面fasttext_scoreDCLM fastText 模型判断文本是否像高质量语料inlink_count入链数量网页被引用越多越权威random_score随机分数作为基线对照实验ensemble_score多评分器加权综合多个维度的最终得分每个评分器还可搭配 normalizer.py 中的 Z-Score 或 Min-Max 归一化把不同量纲的分数统一后再比较。快速上手Crawl4LLM 一键运行步骤要跑起来其实很简单核心就三步第 1 步准备环境与数据申请 ClueWeb22 数据集并把数据放在SSD上README 中特别强调否则爬取效率会大打折扣创建 Python ≥ 3.10 的虚拟环境安装依赖numpy、tqdm、fasttext、pyyaml、wandb下载 DCLM fastText 分类模型到fasttext_scorers/目录。第 2 步编写 YAML 配置文件在configs/下新建配置文件指定数据路径、每轮选择文档数、目标总量和评分方式核心配置项如下cw22_root_path: clueweb22数据路径 seed_docs_file: seed.txt output_dir: crawl_results/seed_10k_crawl_20m_dclm_fasttext num_selected_docs_per_iter: 10000 max_num_docs: 20000000 selection_method: dclm_fasttext_score order: desc wandb: true rating_methods: - type: length - type: fasttext_score rater_name: dclm_fasttext_score model_path: fasttext_scorers/openhermes_reddit_eli5_vs_rw_v2_bigram_200k_train.bin第 3 步启动爬取python crawl.py crawl --config 你的配置文件爬取过程中每个迭代选出的文档 ID 会写入output_dir下的iter_N.docids.txt文件。项目还支持通过--resume_from_state断点续爬配合 crawler.py 中的状态保存机制save_state长任务再也不怕中断。三种爬虫策略对比选哪种最合适项目内置了三种可对照的策略配置差异只在rating_methods与selection_methodCrawl4LLM推荐用dclm_fasttext_score做最终排序质量导向Random Crawler纯随机选择作为没有策略的下限基线Indegree Crawler按inlink_count入链数排序近似 PageRank 的简化版。对论文实验感兴趣的朋友可以对比这三种策略的语料质量与预训练效果差异这也是评估高效网页爬虫价值最直观的方式。从爬取到预训练数据流水线全打通爬虫只产出文档 ID真正拿文本还需要两步拉取正文运行python fetch_docs.py --input_dir 文档ID目录 --output_dir 文本目录实现位于 fetch_docs.py预训练与评测把文本交给 DCLM 框架完成后续的 LLM 预训练与评估。此外项目还提供了 access_data.py 小工具输入文档 ID 即可快速查看该网页的正文与出链方便你检查爬取结果是否符合预期。小结Crawl4LLM 值得一试吗如果你正在为 LLM 预训练构建语料或者研究数据质量对模型效果的影响Crawl4LLM 是一个非常值得关注的高效网页爬虫方案。它把数据筛选前置到了爬取环节思路新颖且代码清晰入口在 crawl.py评分逻辑在 document_rater.py数据访问封装在 corpus_interface.py整个项目结构简单非常适合二次开发和研究复现。克隆仓库开始体验git clone https://gitcode.com/gh_mirrors/cr/Crawl4LLM动起手来用它爬出更高质量的预训练语料吧【免费下载链接】Crawl4LLMOfficial repository for Craw4LLM: Efficient Web Crawling for LLM Pretraining项目地址: https://gitcode.com/gh_mirrors/cr/Crawl4LLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考