cc_net是一个网络数据抓取与清洗的开源工具包。
安装部署
获取包:git clone https://github.com/facebookresearch/cc_net.git
;
进入cc_net目录,执行make install
;
kenlm编译问题(进入third_party/kenlm):
在cmakelist.txt中添加set(CMAKE_CXX_FLAGS "${CAMKE_CXX_FLAGS} -std=c++11 -pthread")
缺少boost库:
apt-get install libboost-all-dev
直接安装
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install kenlm
pip install cc-net
依赖包
cc_net运行需要依赖以下包:
- KenLM语言模型训练工具,用传统的“统计+平滑”的方法;快速,节省内存,最重要的是,允许在开源许可下使用多核处理器。
- pkuseg是一个汉语分词工具
- sentencepiece:训练领域的sentencepiece模型,可以代替预训练模型(BERT,XLNET)中词表的作用。提供四种关于词的切分方法。
- beautifulsoup4:也被称为bs4库,用于解析和处理html和xml。
- fasttext:一个词向量计算和文本分类工具;能取得和深度网络相媲美的精度,却在训练时间上比深度网络快许多数量级。
运行
使用Common Crawl示例(crawl.json):
{
"execution": "slurm",
"task_parallelism": 3,
"num_shards": 300,
"hash_in_mem": 50,
"dump": "2023-06",
"pipeline": [
"dedup",
"lid",
"keep_lang",
"sp",
"lm",
"drop",
"heuristics",
"split_by_lang"
],
"output_dir": "/data/xugd/cc_data",
"cache_dir": "/data/xugd/wet_cache",
"lang_whitelist": [
"en",
"zh"
]
}
运行cc_net:
python -m cc_net --config config/crawl.json
修改 /usr/local/lib/python3.8/dist-packages/cc_net/process_wet_file.py
中的WET_URL_ROOT为https://data.commoncrawl.org
配置信息
部分配置项:
- hash_in_mem:决定slurm申请内存大小(mem_gb = 60 + 1 * conf.hash_in_mem),不设定默认50;
- lm_languages:设定训练的语言;lm_languages为空,则使用lang_whitelist/lang_blacklist
- lang_whitelist/lang_blacklist:保留何种语言的文本;若都为空,则保留所有;
- mine_num_processes:用于mine的进程数,默认16(mine时,会+1);
- task_parallelism:执行的任务数(ntasks);
- execution:执行方式,默认auto(可选择slurm);可以逗号分割添加参数(如,
slurm,arg1=v1,arg2=v2
)
slurm相关参数参考slurm-submitit
内部参数:
- 超时timeout_hour:默认5h,若是设定conf.experiments包含"hashes",则为8h;