4 个版本 (2 个重大变更)
0.3.0 | 2024 年 6 月 10 日 |
---|---|
0.2.0 | 2024 年 3 月 12 日 |
0.1.1 | 2024 年 3 月 7 日 |
0.1.0 | 2024 年 1 月 22 日 |
在 文本处理 中排名 483
每月下载 324 次
1.5MB
5K SLoC
我的大数据里有什么?
此仓库包含运行“我的大数据里有什么”(WIMBD)的代码,该代码附带了我们的最近发表的论文(同名)。
什么是 WIMBD?
WIMBD 由两个组件组成
- 一套用于分析和揭示大规模数据集内容的工具
- 我们使用上述工具对这些数据集进行的一系列分析
WIMBD 工具 包括两个部分
- 计数
- 搜索
计数遵循 map-reduce 功能,将任务分解成更小的块,应用操作(例如,从 URL 中提取域)然后汇总计数。我们为此提供了两种实现。一种是通过 Python 函数(例如,用于 域名计数),它易于扩展和扩展,另一种是通过 Rust CLI 以实现更快的处理。Rust 实现 覆盖 总结统计(如论文中的表 2 所示),例如语料库大小、标记数等。此外,它使用计数 Bloom 过滤器计算最常见和最不常见的 $n$-gram 近似。
在实践中,我们使用 elasticsearch 实现搜索。我们索引了我们考虑的 5 个语料库,并提供了对这些语料库的 UI 和程序性访问。我们围绕 ES API 构建了一些包装器,允许 count
和 extract
功能。我们在此处提供了更详细的文档。
入门
此工具箱有两个不同的部分:一个函数 Python 库和一个基于 Rust 的 CLI。
使用 Python 库
创建 Python 环境
conda create -n wimbd python=3.9
conda activate wimbd
pip install -r requirements.txt
export PYTHONPATH="${PYTHONPATH}:/PATH/TO/wimbd/"
例如,运行以下命令以计算域名计数,按标记(论文第 4.2.2 节)
bash wimbd/url_per_tok_counts/run.sh /PATH-TO/c4/en/c4-train.* > data/benchmark/benchmark_url_tok_c4.jsonl
运行方案计数
./wimbd/scheme_counts/run.sh /PATH-TO/laion2B-en/*.gz > data/scheme_laion2B-en.jsonl
这将运行MapReduce脚本,并将结果输出到文件中
使用Rust CLI
由于此仓库的部分是用Rust编写的,因此您首先需要安装Rust工具链。有一个简单的单行命令可以完成这个操作
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
然后您可以直接从crates.io安装最新版本,或者从源码安装。要从crates.io
安装,运行
cargo install wimbd
或者要从源码安装,运行
make release DIR=./bin
(确保将DIR
更改为您选择的目录,该目录位于您的PATH
上)
现在您应该能够运行wimbd
CLI
wimbd --help
例如,使用以下命令在c4文件中查找前20个3-gram
wimbd topk \
/PATH-TO/c4/en/c4-train.01009-of-01024.json.gz \
/PATH-TO/c4/en/c4-train.01010-of-01024.json.gz \
-n 3 \
-k 20 \
--size 16GiB
搜索
由于ElasticSearch的性质,我们无法在网络上发布API密钥。如果您有兴趣使用我们的ElasticSearch索引,请填写此表单,我们会尽快与您联系。
问题
依赖
~17–30MB
~437K SLoC