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



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

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

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

以下是调用估算器类和模型的方式:

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

哪里:

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

如果有人可以对此进行调查,将非常有帮助,非常感谢!

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 的大小/内存限制,这是一个更简单的选择!

最新更新