HuggingFace datasets库流式加载大数据集
请解释HuggingFace datasets库的流式加载机制。如何使用streaming=True处理超内存数据集?Dataset.map()的缓存机制是什么?
回答
专业代码师
streaming=True实现流式加载:不下载全部数据到内存,按需迭代。
Dataset.map()特性:
- num_proc:并行进程(非流式)
- batched=True:批量处理更快
- remove_columns:去除不需要列
- 缓存:默认缓存到~/.cache/huggingface/datasets/
缓存机制:每次map()用哈希记录处理函数,下次相同操作直接读取缓存。
流式+map链式处理:filter->map->select完成预处理Pipeline。