文档首页> AI开发平台ModelArts> 故障排除> MoXing> 训练作业使用MoXing拷贝数据较慢,重复打印日志
更新时间:2022-12-08 GMT+08:00

训练作业使用MoXing拷贝数据较慢,重复打印日志

问题现象

  • ModelArts训练作业使用MoXing拷贝数据较慢。
  • 重复打印日志 INFO:root:Listing OBS。
    图1 重复打印日志

原因分析

  1. 拷贝数据慢的可能原因如下:
    • 直接从OBS上读数据会造成读数据变成训练的瓶颈,导致迭代缓慢。
    • 由于环境或网络问题,读OBS时遇到读取数据失败情况,从而导致整个作业失败。
  2. 重复打印日志,该日志表示正在读取远端存在的文件,当文件列表读取完成以后,开始下载数据。如果文件比较多,那么该过程会消耗较长时间。

处理方法

在创建训练作业时,数据可以保存到OBS上。不建议使用TensorFlow、MXNet、PyTorch的OBS接口直接从OBS上读取数据。

  • 如果文件较小,可以将OBS上的数据保存成“.tar”包。训练开始时从OBS上下载到“/cache”目录,解压以后使用。
  • 如果文件较大,可以保存成多个“.tar”包,在入口脚本中调用多进程进行并行解压数据。不建议把散文件保存到OBS上,这样会导致下载数据很慢。
  • 在训练作业中,使用如下代码进行“.tar”包解压:
    import moxing as mox
    import os
    mox.file.copy_parallel("obs://donotdel-modelarts-test/AI/data/PyTorch-1.0.1/tiny-imagenet-200.tar", '/cache/tiny-imagenet-200.tar')
    os.system('cd /cache; tar -xvf tiny-imagenet-200.tar > /dev/null 2>&1')