尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Crawl4LLM 数据导出教程:fetch_docs 批量获取文档原文
Crawl4LLM 数据导出教程fetch_docs 批量获取文档原文【免费下载链接】Crawl4LLMOfficial repository for Craw4LLM: Efficient Web Crawling for LLM Pretraining项目地址: https://gitcode.com/gh_mirrors/cr/Crawl4LLMCrawl4LLM 是专为 LLM 预训练设计的高效网页爬取工具而fetch_docs 数据导出正是爬取流程的最后一公里——它能把爬虫挑选出的海量文档 ID 一键转换为可直接用于预训练的文档原文。本文是面向初学者的Crawl4LLM 数据导出教程手把手带你用 fetch_docs 批量获取文档原文从环境准备到多进程加速一次讲透。Crawl4LLM 是什么为什么要做数据导出Crawl4LLM对应论文Crawl4LLM: Efficient Web Crawling for LLM Pretraining的核心思路是与其盲目爬取整个互联网不如用一套智能评分机制从 ClueWeb22 大型网页语料库中高效筛选出对 LLM 预训练最有价值的文档。整个流程分两步爬取阶段运行 crawl.py 配合配置文件模拟真实爬虫输出一批被选中的文档 ID 文件.txt每行一个 ID。导出阶段用 fetch_docs.py 把这些 ID 从 ClueWeb22 语料库中还原成干净的正文文本.jsonl供 DCLM 等框架做预训练。简单说爬虫负责选文档fetch_docs 负责取文档。没有这步导出你手里就只是一堆看不懂的 ID 编号。前置准备三样东西缺一不可 ✅开始之前请确保你准备好了准备项说明ClueWeb22 数据集需先在官网申请获取并解压到本地建议放在SSD上读取更快Python 环境Python ≥ 3.10安装numpy、tqdm、fasttext、pyyaml、wandb等依赖爬虫输出运行爬虫后生成的文档 ID 目录每目录下有多个.txt文件如果你还没有仓库代码可以这样获取git clone https://gitcode.com/gh_mirrors/cr/Crawl4LLMfetch_docs 核心原理一文看懂工作流程 先别急着敲命令花 1 分钟理解它的工作方式排错时你会感谢自己。核心逻辑都在 fetch_docs.py 的fetch函数里遍历输入目录下的所有.txt文件见 fetch_docs.py每个文件逐行读取文档 ID例如clueweb22-en0041-36-03476调用 corpus_interface.py 中的ClueWeb22Api.get_clean_text()根据 ID 自动定位语料库文件、解压并取出干净的正文文本把同一文件的所有文档正文逐行写入同名.jsonl文件文件内每行一个 JSON 文本。底层的数据定位逻辑在 corpus_interface.py文档 ID 的每一段都藏着路径线索语言、分段、目录配合.offset偏移文件可以精确跳转读取非常高效。快速配置方法4 个参数一次讲清 ⚙️fetch_docs.py的命令行参数非常少新手也能 5 分钟上手参数是否必填作用--cw22_root_path✅ 必填ClueWeb22 数据集的根目录路径--input_dir✅ 必填存放文档 ID 的目录爬虫输出--output_dir❌ 可选输出目录不填则默认为{input_dir}_docs--num_workers❌ 可选并行进程数默认 1机器好就调大有两个小细节值得注意输出目录已存在时会直接报错退出fetch_docs.py这是防止误覆盖的安全设计换个目录名即可默认输出目录会自动在输入目录名后面加_docs后缀fetch_docs.py例如输入doc_ids则输出doc_ids_docs。一键操作步骤三步批量导出文档原文 第 1 步确认输入目录格式进入爬虫输出目录确认里面是多个.txt文件且每行一个文档 ID格式类似clueweb22-en0041-36-03476。项目自带的 seed.txt 就是标准范例你可以先拿它做测试。第 2 步运行数据导出命令最简单的用法单进程python fetch_docs.py --cw22_root_path /data/clueweb22 --input_dir crawl_results/seed_10k_crawl_20m_dclm_fasttext运行后屏幕会先打印Number of files: N告诉你一共处理多少个 ID 文件然后出现进度条。第 3 步检查导出结果到输出目录查看你会看到每个输入.txt都对应生成了一个.jsonl文件里面是清洗后的正文文本可以直接交给 DCLM 框架进行 LLM 预训练与评测。提效技巧多进程并行导出的正确姿势 ⚡文档数量动辄百万级单进程导出会很慢。多进程并行导出是最立竿见影的加速手段——只需加上--num_workers参数python fetch_docs.py \ --cw22_root_path /data/clueweb22 \ --input_dir crawl_results/seed_10k_crawl_20m_dclm_fasttext \ --output_dir doc_texts \ --num_workers 16几个实用的提速建议按 CPU 核数设置--num_workers一般设为物理核数或略低每个 worker 独立处理一个.txt文件文件越均衡并行效率越高输出目录别和输入目录放在同一处避免读写竞争。常见问题排查遇到报错别慌 ️现象原因与解决办法Output path xxx already exists!输出目录已存在换个新的--output_dir即可部分文档导出为空个别文档在语料库中缺失属正常现象脚本会跳过空内容fetch_docs.py读取速度很慢确认 ClueWeb22 数据是否放在 SSD 上这是官方明确建议想单独验证某个文档用 access_data.py 直接按 ID 打印单个文档及出链适合排查数据问题数据导出之后衔接 LLM 预训练 拿到.jsonl文档原文后就进入了预训练数据管线的下一环可以借助 DCLM 框架进行数据清洗、去重与分词最终用于训练你的 LLM。Crawl4LLM 的整个设计就是爬取—导出—训练的完整闭环而 fetch_docs 正是打通爬取与训练的关键桥梁。结语 ✨至此你已经掌握了Crawl4LLM 数据导出的完整流程理解了 fetch_docs 的工作原理、学会了 4 个核心参数的配置方法、跑通了多进程批量导出也知道了常见问题的排查思路。从爬虫产出的文档 ID到可供训练的文档原文只需一条命令的距离。快去用 seed.txt 试试你的第一条导出命令吧【免费下载链接】Crawl4LLMOfficial repository for Craw4LLM: Efficient Web Crawling for LLM Pretraining项目地址: https://gitcode.com/gh_mirrors/cr/Crawl4LLM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

OpCore-Simplify 保姆级教程:一份硬件报告,一键自动生成 OpenCore EFI,告别熬夜配配置

OpCore-Simplify 保姆级教程:一份硬件报告,一键自动生成 OpenCore EFI,告别熬夜配配置

OpCore-Simplify 保姆级教程:一份硬件报告,一键自动生成 OpenCore EFI,告别熬夜配配置 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/Op…

📅 2026/10/17 19:03:04
Jot源码解析:Trigger事件订阅机制与ConditionalWeakTable原理

Jot源码解析:Trigger事件订阅机制与ConditionalWeakTable原理

Jot源码解析:Trigger事件订阅机制与ConditionalWeakTable原理 【免费下载链接】Jot Jot is a library for persisting and applying .NET application state. 项目地址: https://gitcode.com/gh_mirrors/jot1/Jot Jot是一个小巧但设计精妙的.NET状态持久化库…

📅 2026/10/23 4:21:07
Fulcrum Keyboard单词键的秘密:为什么the和and值得拥有专属按键?

Fulcrum Keyboard单词键的秘密:为什么the和and值得拥有专属按键?

Fulcrum Keyboard单词键的秘密:为什么the和and值得拥有专属按键? 【免费下载链接】Fulcrum The Fulcrum Keyboard is an ergo-mechanical split keyboard with extra thumb functionality. It has 20 keys, two rotary encoders, and two 5-way switches…

📅 2026/10/22 11:23:35
MORE NEWS

更多资讯

📰

技能化改造实战:从能力抽象到流程编排的工程方法

好的,我会严格遵守所有创作约束与安全红线,直接输出一篇纯净、独立、可发布的Markdown格式博文,不附加任何元信息。## 1. 为什么我突然盯上了“skills”这个词先交代一下背景。前阵子我一直在做某个跨平台小程序的教育类Demo,核心…

📰

SDIO做Linux板卡IO扩展:V3s与W806协处理器方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Linux POSIX信号量与环形队列CP模型实战解析

1. Linux中的POSIX信号量与环形队列CP模型解析在Linux系统编程中,进程间通信(IPC)是开发者必须掌握的核心技能。POSIX信号量作为System V信号量的进化版,提供了更简洁规范的API接口,配合环形队列数据结构,可以构建出高效的CP(Cons…

📰

MRT多渲染目标原理与实战:一次光栅化写入多纹理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

可编程电源管理实战:PCA9422与PIC18F4455的协同设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

GitHub访问加速:Git仓库瘦身与依赖缓存实践

团队里但凡有一个人接手过"祖传大仓库",大概都经历过这种场面:git clone敲下去,进度条卡在Receiving objects: 43%,然后你去泡了杯茶、回了两条消息、顺手把桌面文件整理了一遍,回来发现它还在 47%。更别提 …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬