Batch Data Splitter 批量数据均匀分割 Skill
功能概述
本skill面向大容量批量数据集进行均等分割,可设定分割份数或单份样本容量,将整体数据集均匀划分为多组子数据集。 无差别平均分配原始样本,保持各组数据分布一致性,适配流水线分批运算、多任务并行处理、数据分库存储等业务场景。
触发条件
当用户请求以下任务时,应使用此skill:
- 批量拆分
- 数据分片
- 均匀划分
- 按份数切块
- 按固定条数切块
核心参数说明
必需参数
--input:输入文件路径--output_dir:输出清单文件路径(JSON),实际分割文件写入同名_splits/子目录
可选参数
--num_splits:分割份数,默认 0(0 表示按 chunk_size 分割)--chunk_size:每份样本数量,默认 1000--output_prefix:输出文件名前缀,默认split--shuffle:是否打乱顺序,默认 false--random_seed:随机种子,默认 42
输入文件格式
支持 json、jsonl、csv。
使用方法
按份数分割
python scripts/run_batch_data_splitter.py \
--input corpus.csv \
--output_dir ./splits_manifest.json \
--num_splits 10
按每份数量分割
python scripts/run_batch_data_splitter.py \
--input corpus.csv \
--output_dir ./splits_manifest.json \
--chunk_size 5000
打乱后分割
python scripts/run_batch_data_splitter.py \
--input corpus.csv \
--output_dir ./splits_manifest.json \
--num_splits 5 \
--shuffle true
输出示例
[OK] Batch data splitting completed!
Input file: corpus.csv
Total samples: 11
Number of splits: 4
Samples per split: [3, 3, 3, 2]
Manifest file: ./splits_manifest.json
Splits directory: ./splits_manifest_splits
Output files:
- split_001.csv (3 samples)
- split_002.csv (3 samples)
- split_003.csv (3 samples)
- split_004.csv (2 samples)
环境要求
- Python 3.x
- 标准库即可运行
注意事项
- 如果总数不能整除,最后一份可能样本数较少。
num_splits优先级高于chunk_size。- 当
num_splits大于总样本数时,会自动收敛为最多生成total_count份。 - 输出文件名格式:
{prefix}_{序号}.{扩展名}。 --output_dir指定的是清单 JSON 文件路径,实际分割文件写入同名_splits/子目录,是引擎下游节点可消费的单文件输出。- 这里只做均匀分片,不做比例拆分或分层保持。