使用Sagemaker estimator训练模型时,存储训练数据集的最佳方式是什么?

0

【以下的问题经过翻译处理】 在使用Sagemaker Estimator 训练AI模型时,存储数据的最佳方法是什么?

我有一个存储在Sagemaker笔记本实例中文件系统中的大型图像数据集。我希望了解如何从该特定笔记本实例之外的地方访问这些数据。我进行了很多研究,但似乎没有找到很多信息。

我希望以快速的方式访问笔记本中的数据,因为我将使用这些数据来训练AI模型。有没有推荐的方法来做到这一点?

起初,我在该笔记本实例内上传了数据,以在完全相同的文件系统中训练模型。请注意,这是一个相当大的数据集,我必须在Sagemaker中进行预处理。

profile picture
专家
已提问 8 个月前30 查看次数
1 回答
0

【以下的回答经过翻译处理】 当您使用estimator创建SageMaker训练作业时,最佳实践是将数据存储在S3上,训练作业将根据训练作业配置请求启动实例。现在我们支持快速文件模式,与文件模式相比(将数据从S3下载到训练实例),它可以更快地启动训练作业。但是,当您说您使用SageMaker笔记本实例来训练模型时,我假设您并没有使用SageMaker训练作业,而是在SageMaker笔记本实例上运行了笔记本(.ipynb)。请注意,因为SageMaker是一个完全托管的服务,笔记本实例(以及训练实例、托管实例等)是在服务帐户中启动的,因此您将无法直接访问这些实例。SageMaker笔记本实例使用EBS存储数据,EBS卷被挂载到/home/ec2-user/SageMaker。请注意,SageMaker笔记本实例使用的EBS卷只能增加,而不能缩小。如果您想减小EBS卷,请创建一个新的笔记本实例,使用较小的卷,并通过S3从以前的实例转移数据。您无法从SageMaker笔记本实例外部访问该EBS卷。一般的最佳实践是将大型数据集存储在S3上,并在SageMaker笔记本实例上仅使用样本数据(减少存储)。然后使用这个少量的样本数据来测试/构建代码。当您准备好对整个数据集进行训练时,可以启动一个SageMaker训练作业,并使用存储在S3上的整个数据集。请注意,如果在SageMaker笔记本实例上对整个数据集进行训练,需要使用具有足够计算能力的大型实例,并且无法使用多个实例进行分布式训练。相比之下,如果使用SageMaker训练实例运行训练作业,则可以更灵活地选择实例类型,并允许在多个实例上运行进行分布式训练。最后,一旦SageMaker训练作业完成,所有资源都将被自动终止,这与继续使用大型实例和SageMaker笔记本实例相比,能够有效节省成本。

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则