SageMaker 无服务器推理现已普遍可用

探索最新的 SageMaker 推理选项——写这篇文章我非常兴奋。 ML Inference 本身就非常有趣。将无服务器添加到其中,它变得更加有趣!当我们谈到 sServerless Inference 之前,我们不得不考虑潜在地使用 AWS Lambda 等服务。服务的问题……

SageMaker 无服务器推理现已普遍可用

探索最新的 SageMaker 推理选项

我非常兴奋能写这篇文章。 ML Inference 本身就非常有趣。将无服务器添加到其中,它变得更加有趣!当我们谈到 sServerless Inference 之前,我们不得不考虑可能使用 AWS Lambda 等服务。Lambda 等服务的问题在于它们没有提供开箱即用的托管 ML 基础设施工具。您必须自己构建、管理和维护所有容器、ML 基础设施。[0]

SageMaker Serverless Inference 将所有这些抽象出来。它使您可以专注于模型构建过程,无需像使用 Lambda 那样维护自己的容器需要做繁重的工作。无服务器推理采用其他 SageMaker 推理选项的相同核心基础。它仍然支持 AWS 深度学习图像/框架以及自带容器 (BYOC) 方法的灵活性。如果您在 SageMaker 上有现有的实时推理工作负载,您可以保留大部分相同的代码并添加包含无服务器配置的代码段。在本文中,我们将探讨一个将 Sklearn 模型部署到 SageMaker 无服务器端点的示例。[0][1][2]

注意:对于那些刚接触 AWS 的人,如果您想跟随,请确保您在以下链接中创建一个帐户。部署过程会产生成本,特别是如果您让端点保持启动并运行。本文还将假定您具有 SageMaker 和 AWS 的中级知识。[0]

目录

  1. 何时使用无服务器推理
  2. 无服务器推理支持什么?
  3. 无服务器推理示例
  4. 其他资源和结论

何时使用无服务器推理

目前 SageMaker Inference 有四个主要选项:实时推理、批量推理、异步推理和现在的无服务器推理。在上一篇文章中,我已经解释了前三个选项的用例。那么什么时候使用无服务器推理呢?[0][1][2][3]

当您有间歇性和不可预测的工作负载时,无服务器推理是一个很好的选择。理想情况下,您的工作负载应该能够像任何无服务器解决方案一样承受冷启动。使用无服务器推理的另一个主要原因是没有基础设施管理。如果您不想处理 AutoScaling 或实例管理/设置,那么无服务器推理是一个不错的选择。无服务器推理的另一个主要价值主张是节省成本。您通过调用无服务器推理来收费,而不是使用实时推理按小时计费。如果您的团队正在 SageMaker 上构建 POC,并且不希望在此过程中产生大量费用,这是一个很好的选择。[0]

无服务器推理支持什么?

在 Reinvent 2021 中发布无服务器推理预览版之后,添加了一些关键功能。 SageMaker Python SDK 支持已启用,这使得使用 Amazon SageMaker 进行无服务器推理训练和部署支持的容器/框架变得比以往任何时候都更加容易。您还可以使用用于无服务器推理的模型注册表,这将使您可以灵活地将无服务器端点添加到您的 MLOps 工作流程中。最后,每个端点的最大并发调用已增加到 200 个(预览时为 50 个)。[0][1][2]

无服务器推理示例

对于我们的无服务器推理示例,我们将使用 California Housing 数据集训练和部署 Sklearn 模型。此数据集在 SageMaker 示例数据集存储库中公开可用,我们将展示您可以在笔记本中检索它。

对于设置,我们将使用带有 Python3 数据科学内核的 SageMaker Studio。您还可以使用经典笔记本实例并使用 ml.m5.xlarge 笔记本实例和 conda_python3 内核。进入笔记本后,我们将设置 S3 存储桶和训练实例。

接下来,我们将从公共 SageMaker 样本中检索 California Housing 数据集。这是一个回归问题,我们将使用 Sklearn 框架来解决。

然后我们可以使用 Pandas 读取数据集,以确保我们已经正确创建了 DataFrame。

然后,我们将此数据集上传到 S3,SageMaker 将在其中访问训练数据并转储模型工件。

Sklearn 是 SageMaker 提供的受支持的深度学习容器之一,因此我们可以使用 SageMaker Python SDK 直接抓取图像,而无需处理任何 Docker 相关工作。[0]

在这里,我们传入一个包含我们的模型和推理函数的入口点脚本。我们不会在此示例中深入介绍脚本模式,但请查看本文以了解如何在 Amazon SageMaker 上训练 Sklearn 模型。[0][1]

如果我们快速浏览一下训练脚本,我们会发现我们正在使用随机森林模型。[0]

请注意处理输入的函数。 input_fn 决定了您可以为模型推理传入的数据格式类型。要了解有关推理处理程序的更多信息,请查看本文。[0]

现在我们可以使用我们的 Sklearn 估计器执行模型训练。

训练完成后,我们现在可以进行推理了。到目前为止,一切都与实时推理或任何其他 SageMaker 推理选项完全相同。在这里,我们可以通过 SageMaker Python SDK 添加 ServerlessConfig 并将其附加到我们的端点。[0]

这里的两个参数是 MemorySize 和 MaxConcurrency。 MemorySize 通常至少应与您的模型大小相同。您可以将内存设置为以下值:1024 MB、2048 MB、3072 MB、4096 MB、5120 MB 或 6144 MB。 MaxConcurrency 是单个端点的最大并发调用,现在已增加到 200 用于 GA。这是您必须为无服务器端点指定的仅有的两个参数,所有基础设施工作和管理都在后台进行。

现在我们可以像传统方式一样部署我们的端点并附加这个对象。

现在我们可以看到对该端点的示例推断。

其他资源和结论

有关示例的完整代码,请访问上面的链接。有关将模型注册表与无服务器推理结合使用的示例,请查看此示例。有关无服务器推理的 HuggingFace 示例,请查看此博客和示例。有关无服务器推理的官方 AWS 博客版本,请查看以下文章。[0][1][2][3]

一如既往,我希望这篇文章对您来说是一篇关于 SageMaker Inference 的好文章,请随时在评论中留下任何反馈或问题。如果您对更多与 AWS/SageMaker 相关的内容感兴趣,请查看我为您编制的此列表。[0]

如果您喜欢这篇文章,请随时在 LinkedIn 上与我联系并订阅我的 Medium 时事通讯。如果您是 Medium 新手,请使用我的会员推荐信注册。[0][1][2]

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2022年4月25日 下午12:45
下一篇 2022年4月25日

相关推荐