定义位置:model_args.py:56
python展开代码cache_dir: str | None = field(
metadata={"help": "Where to store the pre-trained models downloaded from huggingface.co or modelscope.cn."},
)
核心用途:
datasets.load_dataset() 的标准缓存目录使用位置:data/loader.py:200,225 等处传给 load_dataset(cache_dir=...)
定义位置:data_args.py:126
python展开代码tokenized_path: str | None = field(
metadata={"help": (
"Path to save or load the tokenized datasets. "
"If tokenized_path not exists, it will save the tokenized datasets. "
"If tokenized_path exists, it will load the tokenized datasets."
)},
)
核心用途:
核心逻辑(loader.py:390-399):
python展开代码if data_args.tokenized_path is not None:
if has_tokenized_data(data_args.tokenized_path):
logger.warning_rank0("Loading dataset from disk will ignore other data arguments.")
tokenized_data = load_from_disk(data_args.tokenized_path)
# 直接返回,跳过所有处理
return dataset_module
tokenized_path 是 LlamaFactory 自己的 tokenized 数据缓存,overwrite_cache 不会影响它。
所以你不想用缓存,要么直接删除,要么改一下路径。
| 场景 | cache_dir | tokenized_path |
|---|---|---|
| 加速目标 | 避免重复下载 | 避免重复 tokenize |
| 存储内容 | 原始 JSON/Parquet | tokenized tensors |
| 节省时间 | 下载时间 | 数据预处理时间 |
| 适用情况 | 远程数据集 | 大数据集/多次训练 |
当前配置:
yaml展开代码cache_dir: /mnt/jfs6/g-xiedong/mmdu/cache_dir # 下载原始数据的缓存
# tokenized_path: /data/xiedong/mmdu/tokenized_cache # 已注释掉
overwrite_cache: true # 强制重新处理
当前行为:
cache_dir 用于缓存从远程下载的原始数据tokenized_path + overwrite_cache: true = 每次都重新 tokenizeyaml展开代码tokenized_path: /path/to/tokenized_cache
第一次运行会处理数据并保存
yaml展开代码tokenized_path: /path/to/tokenized_cache
检测到已存在,直接加载(跳过处理)
yaml展开代码tokenized_path: /path/to/tokenized_cache
overwrite_cache: true # 注意:这个参数作用于 HF datasets 缓存,不影响 tokenized_path
如果要重新生成 tokenized_path,需删除目录或换路径
对于大型多模态数据集如 MMDU,建议:
tokenized_path 保存处理结果tokenized_path 路径

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