数据集配置指南

本指南概述了如何在 Data-Juicer 框架中使用 YAML 格式配置数据集。允许您指定本地和远程数据集以及数据验证规则。

支持的数据集格式

本地数据集

local_json.yaml 配置文件用于指定以 JSON 格式本地存储的数据集。path 是必需的,用于指定本地数据集路径,可以是单个文件或目录。format 是可选的,用于指定数据集格式。 对于本地文件,DJ 将自动检测文件格式并相应地加载数据集。支持 parquet、jsonl、json、csv、tsv、txt 和 jsonl.gz 等格式 有关更多详细信息,请参阅 local_json.yaml

dataset:
configs:
- type: local
path: path/to/your/local/dataset.json
format: json
dataset:
configs:
- type: local
path: path/to/your/local/dataset.parquet
format: parquet

Remote Huggingface 数据集

remote_huggingface.yaml 配置文件用于指定 huggingface 数据集。typesource 固定为 'remote' 和 'huggingface',以定位 huggingface 加载逻辑。path 是必需的,用于标识 huggingface 数据集。namesplitlimit 是可选的,用于指定数据集名称/拆分并限制要加载的样本数量。 更多详细信息请参阅 remote_huggingface.yaml

dataset:
configs:
- type: 'remote'
source: 'huggingface'
path: "HuggingFaceFW/fineweb"
name: "CC-MAIN-2024-10"
split: "train"
limit: 1000

远程 Arxiv 数据集

remote_arxiv.yaml 配置文件用于指定以 JSON 格式远程存储的数据集。typesource 固定为 'remote' 和 'arxiv',以定位 arxiv 加载逻辑。 langdump_dateforce_downloadurl_limit 是可选的,用于指定数据集语言、转储日期、强制下载和 URL 限制。 有关更多详细信息,请参阅 remote_arxiv.yaml

dataset:
configs:
- type: 'remote'
source: 'arxiv'
lang: 'en'
dump_date: 'latest'
force_download: false
url_limit: 2

其他支持的数据集格式

有关更多详细信息和支持的数据集格式,请参阅 load_strategy.py

其他功能

数据混合

mixture.yaml 配置文件演示了如何指定数据混合规则。DJ 将通过对数据集的一部分进行采样并应用适当的权重来混合数据集。 有关更多详细信息,请参阅 mixture.yaml

dataset:
max_sample_num: 10000
configs:
- type: 'local'
weight: 1.0
path: 'path/to/json/file'
- type: 'local'
weight: 1.0
path: 'path/to/csv/file'

数据验证

validator.yaml 配置文件演示了如何指定数据验证规则。DJ 将通过对数据集的一部分进行采样并应用验证规则来验证数据集。 有关更多详细信息和支持的验证器,请参阅 data_validator.py

dataset:
configs:
- type: local
path: path/to/data.json

validators:
- type: swift_messages
min_turns: 2
max_turns: 20
sample_size: 1000
- type: required_fields
required_fields:
- "text"
- "metadata"
- "language"
field_types:
text: "str"
metadata: "dict"
language: "str"

旧版 dataset_path 配置

dataset_path 配置是指定数据集路径的历史版本方式。它简单易用,但缺乏灵活性。它可以在 yaml 或命令行输入中使用。一些示例:

命令行输入:

# 命令行输入
dj-process --dataset_path path/to/your/dataset.json

# 带权重的命令行输入
dj-process --dataset_path 0.5 path/to/your/dataset1.json 0.5 path/to/your/dataset2.json

Yaml 输入:

dataset_path:path/to/your/dataset.json