繁体   English   中英

AWS Sagemaker 多项训练作业

[英]AWS Sagemaker Multiple Training Jobs

我们目前有一个在 AWS Sagemaker 上运行的系统,其中几个单位拥有自己训练有素的机器学习 model 工件(使用带有 Sagemaker SKLearn 估计器的 SKLearn 训练脚本)。

通过使用 Sagemaker 的多模型端点,我们能够在单个实例上托管所有这些单元。

我们遇到的问题是我们需要扩大这个系统,这样我们就可以为数十万个单元训练单个模型,然后在多模型端点上托管生成的 model 工件。 但是,Sagemaker 对您可以并行训练的模型数量有限制(我们的限制是 30)。

除了批量训练我们的模型之外,是否有人对如何在 AWS Sagemaker 中实现一个系统 go 有任何想法,对于数十万个单元,我们可以为每个单元单独训练 model 工件?

有没有一种方法可以使用 SKLearn 估计器为 1 个 sagemaker 培训工作生成 output 多个 model 工件?

此外,Sagemaker 在提交训练脚本时如何使用多个 CPU? 这是否必须在训练脚本/估算器 object 中指定或自动处理?

这里有一些想法:

1. 有没有人知道如何 go 在 AWS Sagemaker 中实施一个系统,对于数十万个单元,我们可以为每个单元单独训练 model 工件? 有没有一种方法可以使用 SKLearn 估计器为 1 个 sagemaker 培训工作生成 output 多个 model 工件?

我不知道 30 个训练作业的并发性是否是一个硬性限制,如果它是一个障碍,你应该尝试打开一个支持票来询问它是否是并尝试提高它。 否则,正如您所指出的,您可以尝试在一项工作中训练多个模型,并生成多个工件,您可以 (a) 手动发送到 S3,或 (b) 保存到opt/ml/model以便它们都得到发送到 S3 中的 model.tar.gz 工件。 请注意,如果这个工件变得太大,这可能会变得不切实际

2. Sagemaker 如何在提交训练脚本时使用多个 CPU? 这是否必须在训练脚本/估算器 object 中指定或自动处理?

这取决于您使用的训练容器的类型。 SageMaker 内置容器由 Amazon 团队开发,旨在高效利用可用资源。 如果您在 Sklearn 容器中使用您自己的代码,例如自定义 python,您有责任确保您的代码高效编写并使用可用硬件。 因此,框架的选择非常重要:)例如,一些 sklearn 模型支持显式使用多个 CPU(例如随机森林中的n_jobs参数),但我认为 Sklearn 本身不支持 GPU、多 GPU 或多节点训练.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM