6

我用 aws sagemaker 做了一些实验,从 S3 下载大数据集的时间很成问题,尤其是模型还在开发中,你想要一些比较快的初始反馈

是否有某种本地存储或其他方式来加快速度?

编辑 我指的是批处理培训服务,它允许您将作业作为 docker 容器提交。

虽然此服务适用于通常运行很长时间的已验证作业(这使得下载时间不那么重要),但仍然需要快速反馈

  1. 没有其他方法可以使用 sagemaker 基础架构(配置文件、数据文件等)对您的工作进行“集成”测试

  2. 在对模型进行不同的变体试验时,能够相对快速地获得初始反馈很重要

4

2 回答 2

6

SageMaker 中有一些不同的服务,每个服务都针对特定的用例进行了优化。如果您谈论的是开发环境,您可能正在使用notebook 服务。笔记本实例附带一个本地 EBS (5GB),您可以使用它来将一些数据复制到其中并运行快速开发迭代,而无需每次都从 S3 复制数据。执行此操作的方法是运行wgetaws s3 cp从笔记本单元或从您可以从目录列表页面打开的终端。

不过,不建议将过多的数据复制到笔记本实例中,因为这会导致您的训练和实验时间过长。相反,您应该使用 SageMaker 的第二部分,即培训服务。一旦您对要训练的模型有了很好的了解,基于笔记本实例上小数据集的快速迭代,您可以将模型定义指向在训练实例集群中并行检查较大的数据集。当您发送训练作业时,您还可以定义每个训练实例将使用多少本地存储,但您将从训练的分布式模式中获益最多。

当您想优化您的训练作业时,您有几个存储选项。首先,您可以为每个集群实例定义您希望模型训练的 EBS 卷的大小。您可以在启动训练作业时指定它(https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateTrainingJob.html):

...
   "ResourceConfig": { 
      "InstanceCount": number,
      "InstanceType": "string",
      "VolumeKmsKeyId": "string",
      "VolumeSizeInGB": number
   },
...

接下来,您需要决定要训练什么样的模型。如果您正在训练自己的模型,您就会知道这些模型如何获取数据,包括格式、压缩、来源和其他可能影响将数据加载到模型输入中的性能的因素。如果您更喜欢使用 SageMaker 拥有的内置算法,这些算法已针对处理 protobuf RecordIO 格式进行了优化。在此处查看更多信息:https ://docs.aws.amazon.com/sagemaker/latest/dg/cdf-training.html

您可以从中受益的另一个方面(或了解您是否想以更具可扩展性和优化的方式实现自己的模型)是TrainingInputMode ( https://docs.aws.amazon.com/sagemaker/latest/dg/API_AlgorithmSpecification. html#SageMaker-Type-AlgorithmSpecification-TrainingInputMode):

类型:字符串

有效值:管道 | 文件

要求:是

您可以使用该File模式从 S3 读取数据文件。但是,您也可以使用Pipe打开许多选项的模式以流模式处理数据。这不仅仅意味着实时数据,使用 AWS Kinesis 或 Kafka 等流服务,还可以从 S3 读取数据并将其流式传输到模型,完全避免在训练时将数据存储在本地实例。

于 2018-01-22T05:12:58.340 回答
0

使用 Amazon SageMaker 自定义您的笔记本卷大小,最高可达 16 TB

Blockquote Amazon SageMaker 现在允许您在需要存储大量数据时自定义笔记本存储容量。

Blockquote 在您开发机器学习模型时,为您的笔记本实例分配正确的存储量非常重要。您可以使用存储卷在本地处理大型数据集或临时存储要使用的其他数据。

Blockquote 您使用 Amazon SageMaker 创建的每个笔记本实例都附带 5 GB 的默认存储卷。您可以选择 5 GB 到 16384 GB 之间的任何大小,以 1 GB 为增量。

当您使用 Amazon SageMaker 控制台创建笔记本实例时,您可以定义存储卷:

看步骤

于 2019-06-07T23:15:48.547 回答