cached_dataset.py)作用:将预处理后的数据集保存为缓存格式,避免训练时重复 tokenize。
工作流程:
展开代码原始数据集 → 预处理/Tokenize → 保存为缓存格式
详细逻辑:
路径识别
s3://, oss://, s3:/, oss:/)s3:// 或 oss://)保存策略
{output_dir}/train 和 {output_dir}/valmegfile 递归复制到 S3/OSS目录结构
展开代码{output_dir}/ ├── train/ # 训练集缓存 └── val/ # 验证集缓存(可选)
特性
infer/utils.py)作用:从缓存格式加载数据集,用于训练/推理。
工作流程:
展开代码缓存路径 → 识别路径类型 → 构建加载路径 → 加载数据集
详细逻辑:
路径处理
dataset_sample 语法:path#1000(采样 1000 条)路径构建策略
对于 S3/OSS 路径:
展开代码输入: s3://bucket/dataset 训练集: s3://bucket/dataset/train 验证集: s3://bucket/dataset/val
对于本地路径:
train/ 或 val/ 子目录{path}/train 或 {path}/val数据集过滤
max_length 过滤超长样本额外功能
#sample_size 语法)统一的目录结构
train/ 和 val/ 子目录结构S3/OSS 支持
兼容性
错误处理
导出:
bash展开代码swift export --to_cached_dataset true \
--output_dir s3://bucket/my_dataset \
--dataset my_dataset
加载:
yaml展开代码cached_dataset:
- s3://bucket/my_dataset # 自动加载 train/ 子目录
cached_val_dataset:
- s3://bucket/my_dataset # 自动加载 val/ 子目录
或使用采样:
yaml展开代码cached_dataset:
- s3://bucket/my_dataset#10000 # 只加载10000条样本
这两个实现配合使用,实现了数据集的预处理缓存和高效加载。


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!