❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦
🧠 「数据采集进入智能时代:首个为LLM定制的爬虫系统开源了!」
大家好,我是蚝油菜花。如果说传统爬虫是「蝗虫过境」,那Crawl4LLM就是「米其林摘星」——
这个由清华&CMU打造的智能系统,实现了三大突破:
- ✅ 价值预判:用fastText模型给网页打分,优先抓取高营养内容
- ✅ 动态策略:智能/随机/链接量三种模式适配不同训练阶段
- ✅ 无缝衔接:直接对接DCLM框架,数据采集到训练一键完成
这个会「挑食」的智能爬虫,能像营养师一样筛选高价值内容,让模型训练效率提升5倍。已有团队用它构建出更「健壮」的行业大模型——准备好给你的AI模型来顿营养大餐了吗?
🚀 快速阅读
Crawl4LLM 是一个智能化爬虫系统,专为 LLM 数据预训练优化设计。
- 智能化爬取:基于网页价值评分,优先抓取高价值内容,减少无效数据采集。
- 多种模式支持:支持智能、随机和基于链接数量的爬取模式,适应不同场景需求。
Crawl4LLM 是什么
Crawl4LLM 是清华大学和卡内基梅隆大学联合开源的智能爬虫系统,旨在提升大语言模型(LLM)预训练数据采集的效率和质量。相比传统爬虫,Crawl4LLM 引入了智能化的网页价值评估机制,能够优先抓取对模型训练更有价值的数据,使数据采集效率提升了近 5 倍。
Crawl4LLM 不仅适用于 LLM 预训练数据的获取,还具备良好的扩展性,可以无缝对接 DCLM 框架,直接用于模型训练流程。此外,系统提供了数据可视化功能,方便用户实时监控爬取进度和效果。
Crawl4LLM 的主要功能
- 智能化网页选择:基于预训练影响力评分器评估网页内容的价值,优先抓取高价值网页,减少无效数据的采集。
- 多种爬取模式:
- 智能模式:根据网页价值评分动态调整爬取策略。
- 随机模式:适用于非精准需求场景,随机抓取网页。
- 基于链接数量模式:根据网页链接数量进行抓取,适合大规模数据采集。
- 爬虫状态定期保存:支持中断后从中断点继续抓取,避免数据丢失。
- 数据浏览与可视化:提供直观的数据浏览工具和可视化界面,便于监控爬取进度。
- 与 DCLM 框架无缝对接:直接将爬取的数据应用于 LLM 预训练,提高数据流效率。
Crawl4LLM 的技术原理
- 预训练影响力评分:使用 DCLM fastText 模型对网页内容进行评分,综合考虑内容质量、相关性等指标。
- 优先级队列调度:基于评分结果动态调整爬取优先级,确保高价值网页优先被处理。
- 多维度数据评估:结合网页内容长度、链接数量等多个维度进行综合评分,全面评估网页价值。
- 模拟与优化:通过大规模模拟实验验证算法的有效性,并优化参数以实现最佳爬取效果。
- 减少网站负担:智能筛选目标网页,降低对网站服务器的压力,提升爬取行为的合规性。
如何运行 Crawl4LLM
1. 准备环境
首先需要满足以下条件:
Python >= 3.10
安装必要的依赖库:
pip install numpy tqdm fasttext pyyaml wandb
AI 代码解读下载 ClueWeb22 数据集并将其放置在 SSD 上以确保高效读取。
- 下载 DCLM fastText 分类器模型到
fasttext_scorers/
目录下。
2. 创建配置文件
在 configs/
目录下创建 YAML 格式的配置文件,示例如下:
cw22_root_path: <path_to_clueweb22_a>
seed_docs_file: seed.txt
output_dir: crawl_results/seed_10k_crawl_20m_dclm_fasttext
num_selected_docs_per_iter: 10000
num_workers: 16
save_state_every: -1
max_num_docs: 20000000
selection_method: dclm_fasttext_score
order: desc
wandb: true
wandb_project: crawler
wandb_run_name: seed_10k_crawl_20m_dclm_fasttext
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
AI 代码解读
3. 启动爬虫
运行以下命令启动爬虫:
python crawl.py crawl --config <path_to_your_config_file>
AI 代码解读
4. 获取文档文本
完成爬取后,使用以下命令提取文档文本:
python fetch_docs.py --input_dir <document_ids_dir> --output_dir <document_texts_dir> --num_workers <num_workers>
AI 代码解读
5. 预训练与评估
最后,可以利用 DCLM 框架进行 LLM 预训练和性能评估。
资源
- GitHub 仓库:https://github.com/cxcscmu/Crawl4LLM
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦