data pipeline优化?WebDataset、tfrecord?大模型训练的data pipeline优化?WebDataset、tfrecord?
大模型训练数据量大、预处理复杂(tokenize、pack、augment),若 DataLoader 跟不上,GPU 会空转、吞吐下降。瓶颈常在:磁盘 IO、CPU 预处理、Python GIL、数据从 CPU 到 GPU 的拷贝与排队。优化目标:让数据预取充足、与计算重叠、减少主线程阻塞。
WebDataset:基于 tar 的流式格式,按 shard 存储样本,训练时流式读、按需解压与解码,无需先全部解压到磁盘,适合超大规模数据集与对象存储。tfrecord:TensorFlow 的二进制序列格式,支持压缩、可随机访问或顺序读,多用于 CV/NLP 的预处理好结果缓存。Parquet/Arrow:列存、便于按列过滤与并行读,适合表格型或需过滤的 metadata。共同点:二进制、可压缩、利于顺序或并行 IO,减少小文件与解析开销。
多 worker DataLoader、pin_memory、prefetch_factor;数据存 SSD 或高带宽存储、用多进程读;预处理放 DataLoader worker 或独立进程、与 GPU 计算重叠;大语料用 WebDataset 流式 + 多 shard 并行;tfrecord/parquet 做预处理好缓存,训练时只做轻量解码。
| 返回模块 | 返回总览 |