AWS Sagemaker failure after successful training "ClientError: Artifact upload failed:Insufficient disk space"

AWS Sagemaker failure after successful training "ClientError: Artifact upload failed:Insufficient disk space"

我正在使用自定义 docker 图像训练网络。第一次训练 50.000 步一切正常,当我尝试增加到 80.000 时,出现错误:"ClientError: Artifact upload failed:Insufficient disk space",我只是增加了步数。这对我来说很奇怪。 cloudwatch 日志中没有错误,我的最后一个条目是:

Successfully generated graphs: ['pipeline.config', 'tflite_graph.pb', 'frozen_inference_graph.pb', 'tflite_graph.pbtxt', 'tflite_quant_graph.tflite', 'saved_model', 'hyperparameters.json', 'label_map.pbtxt', 'model.ckpt.data-00000-of-00001', 'model.ckpt.meta', 'model.ckpt.index', 'checkpoint']

这基本上意味着这些文件已经创建,因为很简单:

    graph_files = os.listdir(model_path + '/graph')

space 指的是哪个磁盘?还要查看训练作业,我从磁盘利用率图表中看到上升曲线达到 80% 的峰值... 我希望在成功创建上述文件后,所有内容都会上传到我的 s3 存储桶,其中不存在磁盘 space 问题。为什么 50.000 步有效而 80.000 步无效? 据我了解,训练步骤的数量不会影响模型文件的大小..

在创建时选择 "additional storage volume per instance (gb)" 将卷大小添加到 5GB 似乎可以解决问题。我仍然不明白为什么,但问题似乎解决了。

当 Sagemaker 训练完成后,容器中 /opt/ml/model 目录中的模型将上传到 S3。如果要上传的模型太大,则会抛出错误 ClientError: Artifact upload failed:...。 而且,增加 volume size表面上 解决问题。但大多数情况下模型不需要那么大,对吧?

请注意,您的模型本身可能不太大,但您也将检查点保存到 /opt/ml/model(错误)。 最后,sagemaker 会尝试打包所有内容(模型和所有检查点)以便上传到 S3。因此,没有足够的体积。因此,错误。您可以通过检查您在 S3 上上传的 model.tar.gz 文件的大小来确认这是否是原因。

Why 50.000 steps is working and 80.000 is not working?

80,000步,检查点的数量也增加了,最后上传到S3的model.tar.gz文件太大了,现在的体积都装不下了。