数据集配置指南¶
本指南概述了如何在 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 数据集。type 和 source 固定为 'remote' 和 'huggingface',以定位 huggingface 加载逻辑。path 是必需的,用于标识 huggingface 数据集。name、split 和 limit 是可选的,用于指定数据集名称/拆分并限制要加载的样本数量。
更多详细信息请参阅 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 格式远程存储的数据集。type 和 source 固定为 'remote' 和 'arxiv',以定位 arxiv 加载逻辑。 lang、dump_date、force_download 和 url_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