如何在 AWS SageMaker 中部署自定义模型?

Laa*_*sya 5 deployment machine-learning amazon-web-services scikit-learn amazon-sagemaker

我有一个自定义的机器学习预测模型。我还有一个用户定义的 Estimator 类,它使用 Optuna 进行超参数调整。我需要将此模型部署到 SageMaker,以便从 lambda 函数调用它。

我在为模型和估算器创建容器的过程中遇到了麻烦。

我知道 SageMaker 有一个可用于 Optuna 的 scikit 学习容器,但我将如何利用它来包含我自己的 Estimator 类中的函数?此外,模型是传递给此 Estimator 类的参数之一,那么我如何将其定义为单独的训练作业以使其成为端点?

这是调用 Estimator 类和模型的方式:

sirf_estimator = Estimator(
    SIRF, ncov_df, population_dict[countryname],
    name=countryname, places=[(countryname, None)],
    start_date=critical_country_start
    )
sirf_dict = sirf_estimator.run()
Run Code Online (Sandbox Code Playgroud)

在哪里:

  1. 型号名称:SIRF
  2. 清理数据集:ncov_df

如果有人可以研究这个,那将非常有帮助,非常感谢!

Yoa*_*man 3

SageMaker 推理端点当前依赖于基于 Docker 映像的接口。在基础级别,您可以设置一个 Docker 映像来运行 Web 服务器并响应 AWS 所需端口上的终端节点。本指南将向您展示如何操作:https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html

这是一项烦人的工作量。如果您使用的是知名框架,他们有一个容器库,其中包含一些您可以重用的样板代码: https: //github.com/aws/sagemaker-containers。您也许可以重用那里的一些代码,但可以对其进行自定义。

或者根本不使用 SageMaker 推理端点:) 如果您的模型可以满足 AWS Lambda 的大小/内存限制,那么这是一个更简单的选择!