Crawl4LLM:专为LLM预训练准备的网络爬虫工具
Crawl4LLM是什么?
Crawl4LLM是清华大学和卡内基梅隆大学一起开发的,专门给大型语言模型(LLM)预训练用的网络爬虫工具。它能智能判断网页对LLM预训练的作用,先抓那些有价值的网页,少抓没用的,仅抓取了21%的网络数据,就与之前全部抓取的数据性能相同,这样数据质量就提高了,爬取速度也快了不少。
项目情况:
来源:清华和卡内基梅隆大学合作开源的。
目标:解决传统爬虫抓取效率低、数据质量差的问题,让LLM预训练更高效。
Crawl4LLM的主要功能:
智能选网页
智能评估:能自动看网页对LLM预训练有没有用,先抓有用的。
效率高:比传统爬虫抓的网页少多了,效果却差不多甚至更好,效率差不多能提高5倍。
多种爬取办法
智能模式:主要的模式,自动挑有价值的网页抓。
随机爬取模式:网页内容不用太精确选的时候能用。
按链接数量爬取模式:要抓大量数据的时候可以用。
状态管理和恢复
定期保存:能定期存爬虫的状态,要是中途停了,能接着上次的地方抓,不会丢数据。
数据可视化工具
直观查看:有数据浏览工具,能看抓的数据,随时了解进度和效果。
兼容性和集成
和DCLM框架对接:能提取文档ID、拿文档内容,还能和深度学习模型(DCLM)预训练框架无缝连接,直接给模型训练用。
Crawl4LLM的技术细节:
模块架构:有爬虫调度器、网页解析器、数据存储器这些模块。
错误处理:有很强的纠错和自动重试能力,保证数据采集稳定。
数据质量管理:能去重和清洗数据,让数据质量好又一致。
Crawl4LLM的应用场景:
LLM预训练:给大规模LLM预训练提供好数据。
数据集构建:自己做数据集。
搜索引擎优化:分析改进SEO策略。
网络监测与分析:实时看网络情况。
写在网络监测与分析:做情感分析和其他数据分析。
Crawl4LLM的使用方法:
1. 准备工作:
获取ClueWeb22数据集。
创建Python虚拟环境并安装必要的库(numpy, tqdm, fasttext, pyyaml, wandb)。
下载DCLM FastText分类器并放置在指定目录。
2. 创建配置文件:在configs/目录下创建一个YAML配置文件,指定数据集路径、种子文档列表、输出目录、每次迭代选择的文档数量、工作线程数、爬取状态保存频率、最大爬取文档数量、文档选择方法、排序方式、是否启用wandb日志记录等参数。
3. 启动爬虫:在命令行中运行python crawl.py crawl --config
Crawl4LLM作为一个专业性强的爬虫系统,很适合用来给大语言模型做预训练。它先进的算法和技术方面的特点,能让抓取数据的效率和质量都有明显提升,这样就能让大语言模型的发展更快一些。
GitHub仓库:https://github.com/cxcscmu/crawl4llm
论文地址:https://arxiv.org/pdf/2502.13347