SageMaker:管道模型和超参数调整
SageMaker: PipelineModel and Hyperparameter Tuning
我们想要调整 SageMaker PipelineModel with a HyperparameterTuner(或类似的东西),其中管道的 几个 组件具有关联的超参数。我们案例中的两个组件都是通过用于 ML 算法的 SageMaker 容器实现的。
model = PipelineModel(..., models = [ our_model, xgb_model ])
deploy = Estimator(image_uri = model, ...)
...
tuner = HyperparameterTuner(deply, .... tune_parameters, ....)
tuner.fit(...)
现在,当然存在如何在调整期间将 tune_parameters
分配到管道步骤的问题。
在 scikit-learn 中,这是通过专门命名调整参数 <StepName>__<ParameterName>
.
来实现的
不过,我看不到使用 SageMaker 实现类似功能的方法。此外,搜索这两个关键字会提出相同的问题,但这并不是我们真正想要做的。
有什么实现方法的建议吗?
如果两个模型需要联合优化,您可以运行脚本模式下的 SageMaker HPO 作业,并在脚本中定义两个模型。或者您可以 运行 两个 HPO 作业,优化每个模型,然后创建管道模型。不支持在 PipelineModel 上执行 HPO 作业。
我在 AWS 工作,我的观点是我自己的。
我们想要调整 SageMaker PipelineModel with a HyperparameterTuner(或类似的东西),其中管道的 几个 组件具有关联的超参数。我们案例中的两个组件都是通过用于 ML 算法的 SageMaker 容器实现的。
model = PipelineModel(..., models = [ our_model, xgb_model ])
deploy = Estimator(image_uri = model, ...)
...
tuner = HyperparameterTuner(deply, .... tune_parameters, ....)
tuner.fit(...)
现在,当然存在如何在调整期间将 tune_parameters
分配到管道步骤的问题。
在 scikit-learn 中,这是通过专门命名调整参数 <StepName>__<ParameterName>
.
不过,我看不到使用 SageMaker 实现类似功能的方法。此外,搜索这两个关键字会提出相同的问题
有什么实现方法的建议吗?
如果两个模型需要联合优化,您可以运行脚本模式下的 SageMaker HPO 作业,并在脚本中定义两个模型。或者您可以 运行 两个 HPO 作业,优化每个模型,然后创建管道模型。不支持在 PipelineModel 上执行 HPO 作业。
我在 AWS 工作,我的观点是我自己的。