LeRobot 视频读取速度提升 15 倍
How we made our LeRobot video reader up to 15× faster

LeRobot 已成为机器人学习数据的主流格式,但解码视频帧既昂贵又消耗内存,常导致 GPU 在等待数据时闲置。我们最初在 Daft 中引入的 LeRobot 读取器因每帧都重新打开远程文件并读取索引,导致速度极慢。通过引入批处理解码策略,我们将连续的行按分片(shard)分组,对每个分片仅打开一次,并智能聚类时间戳相近的帧以减少寻址开销。这一纯 Python 的优化将远程数据集的解码时间从线性增长变为近乎恒定,在多个公开数据集上实现了 4 到 15 倍的性能提升,甚至将 632 帧的解码时间从 29 分钟缩短至 2 分钟以内。
因为批处理成本随批次数量增长而非帧数增长,解码 632 帧的时间从 29 分钟降至 2 分钟以内,实现了 15 倍的速度提升。