我正在运行带有自定义容器的 Sagemaker 管道以进行培训和评估。训练容器将通过从S3存储桶下载数据来训练模型,并将模型存储到S3存储桶中,评估容器将获取该模型,从S3存储桶下载测试数据并准备评估结果。目前,训练数据下载到容器本身中。代码工作正常,但对于大量数据,我收到以下错误:
OSError: [Errno 28] No space left on device
。我正在考虑附加一个 EBS 卷,以便可以在 EBS 卷中下载训练数据,这样我们就可以避免错误。
有人实施过类似的解决方案吗?
当您使用 CreateTrainingJob API 启动作业时,您可以设置以 GB 为单位的卷大小:
"ResourceConfig": {
"InstanceCount": number,
"InstanceGroups": [
{
"InstanceCount": number,
"InstanceGroupName": "string",
"InstanceType": "string"
...
"VolumeSizeInGB": number
}
如果您正在使用:
Boto3:创建训练作业
ResourceConfig={
'InstanceType': 'ml.m4.xlarge'|'ml.m4.2xlarge'|'ml.m4.4xlarge'|'ml.m4.10xlarge'|'ml.m4.16xlarge'|'ml.g4dn.xlarge'|'ml.g4dn.2xlarge'|'ml.g4dn.4xlarge'|'ml.g4dn.8xlarge'|'ml.g4dn.12xlarge'|'ml.g4dn.16xlarge'|'ml.m5.large'|'ml.m5.xlarge'|'ml.m5.2xlarge'|'ml.m5.4xlarge'|'ml.m5.12xlarge'|'ml.m5.24xlarge'|'ml.c4.xlarge'|'ml.c4.2xlarge'|'ml.c4.4xlarge'|'ml.c4.8xlarge'|'ml.p2.xlarge'|'ml.p2.8xlarge'|'ml.p2.16xlarge'|'ml.p3.2xlarge'|'ml.p3.8xlarge'|'ml.p3.16xlarge'|'ml.p3dn.24xlarge'|'ml.p4d.24xlarge'|'ml.p4de.24xlarge'|'ml.p5.48xlarge'|'ml.c5.xlarge'|'ml.c5.2xlarge'|'ml.c5.4xlarge'|'ml.c5.9xlarge'|'ml.c5.18xlarge'|'ml.c5n.xlarge'|'ml.c5n.2xlarge'|'ml.c5n.4xlarge'|'ml.c5n.9xlarge'|'ml.c5n.18xlarge'|'ml.g5.xlarge'|'ml.g5.2xlarge'|'ml.g5.4xlarge'|'ml.g5.8xlarge'|'ml.g5.16xlarge'|'ml.g5.12xlarge'|'ml.g5.24xlarge'|'ml.g5.48xlarge'|'ml.trn1.2xlarge'|'ml.trn1.32xlarge'|'ml.trn1n.32xlarge'|'ml.m6i.large'|'ml.m6i.xlarge'|'ml.m6i.2xlarge'|'ml.m6i.4xlarge'|'ml.m6i.8xlarge'|'ml.m6i.12xlarge'|'ml.m6i.16xlarge'|'ml.m6i.24xlarge'|'ml.m6i.32xlarge'|'ml.c6i.xlarge'|'ml.c6i.2xlarge'|'ml.c6i.8xlarge'|'ml.c6i.4xlarge'|'ml.c6i.12xlarge'|'ml.c6i.16xlarge'|'ml.c6i.24xlarge'|'ml.c6i.32xlarge',
'InstanceCount': 123,
'VolumeSizeInGB': 123,
'VolumeKmsKeyId': 'string',
'KeepAlivePeriodInSeconds': 123,
...
},
PySDK:卷大小
sagemaker.estimator.EstimatorBase(...,volume_size=30,...)