Loading...

使用 Amazon SageMaker 轻松打包和部署传统机器学习模型和大型语言模型,第一部分:Py



使用 Amazon SageMaker 轻松打包和部署传统机器学习与大语言模型

关键要点

Amazon SageMaker 提供了一个完全托管的服务,使开发人员和数据科学家能够快速构建、训练和部署机器学习模型。新的 ModelBuilder 功能简化了将模型打包并部署到 SageMaker 的流程,降低了新用户的学习曲线。ModelBuilder 提供自动化的模型部署、统一的工作流以及方便的本地与 SageMaker 端点之间的转换。本文会深入介绍 ModelBuilder 的使用细节和示例。

在这篇文章中,我们将介绍 Amazon SageMaker 的最新功能,尤其是 ModelBuilder 类别,它帮助用户更轻松地打包和部署机器学习ML模型以及大语言模型LLM。SageMaker 是一个完全托管的服务,允许开发人员和数据科学家快速构建、训练并以任何规模部署机器学习模型。用户可以通过 API 调用将模型直接部署到生产环境中。模型被打包为容器,以支持坚固且可扩展的部署方式。然而,尽管 SageMaker 提供多种入口点,例如 Python SDK 和 SageMaker Studio,但客户仍在寻找更好的方法来优化模型的部署。

我们推出了两种新方法,以简化使用 SageMaker 打包和部署模型的流程。接下来的部分将详细解释如何使用新的 ModelBuilder 类进行模型部署。

了解 SageMaker ModelBuilder

新的 ModelBuilder 是一个 Python 类,专注于将使用如 XGBoost 或 PyTorch 等框架构建的 ML 模型转换为可部署到 SageMaker 的模型。ModelBuilder 提供 build() 函数,用于生成模型服务器所需的工件,并支持 deploy() 函数以在本地或 SageMaker 端点上进行部署。该功能的引入简化了与 SageMaker 环境的模型集成,使模型在性能和可扩展性方面得到优化。

ModelBuilder 类

ModelBuilder 类提供多种自定义选项,但要部署框架模型,模型构建器仅需要模型、输入、输出和角色信息

pythonclass ModelBuilder( model # 模型 ID 或对象 rolearn # IAM 角色 schemabuilder # 定义输入和输出 mode # 选择本地部署或部署到 SageMaker 端点 )

SchemaBuilder

SchemaBuilder 类使您能够定义端点的输入和输出。它允许构建器生成相应的序列化和反序列化函数。示例如下:

鲸鱼加速器vip破解版

pythonclass SchemaBuilder( sampleinput Any sampleoutput Any inputtranslator CustomPayloadTranslator = None outputtranslator CustomPayloadTranslator = None)

在大多数情况下,仅提供示例输入和输出即可满足需求。例如:

pythoninput = 演示进行得怎么样?output = Comment la dmo vatelle schema = SchemaBuilder(input output)

通过提供示例输入和输出,SchemaBuilder 可以自动确定所需的转换,从而简化集成过程。对于更高级的用例,您可以提供自定义的翻译函数,确保高效处理复杂数据结构。

本地模式体验

以下示例展示如何使用 ModelBuilder 在本地部署 XGBoost 模型。首先训练 XGBoost 模型,并将模型工件存储到工作目录中:

python

使用 Amazon SageMaker 轻松打包和部署传统机器学习模型和大型语言模型,第一部分:Py

训练模型

model = XGBClassifier()modelfit(Xtrain ytrain)modelsavemodel(modeldir /mymodelxgb)

接着创建 ModelBuilder 对象,并传入实际的模型对象和 SchemaBuilder。注意,我们使用 ModeLOCALCONTAINER 指定本地部署模式。之后调用 build() 函数进行自动识别和依赖项检测:

pythonmodelbuilderlocal = ModelBuilder( model=model schemabuilder=SchemaBuilder(Xtest ypred) rolearn=executionrole mode=ModeLOCALCONTAINER)xgblocalbuilder = modelbuilderlocalbuild()

最后,调用 deploy() 函数,该函数会提供实时日志以便于调试:

pythonpredictorlocal = xgblocalbuilderdeploy()predictorlocalpredict(Xtest)

使用 LOCALCONTAINER 模式提供了一种在将模型部署到 SageMaker 端点之前,在本地测试脚本的绝佳方式。

有关本地和端点部署的示例,请参见 modelbuilderxgboostipynb。

将传统模型部署到 SageMaker 端点

接下来展示如何使用 ModelBuilder 将传统 ML 模型部署到 SageMaker 端点。

部署 XGBoost 模型

与之前相似,您可以通过更改 mode 参数将 XGBoost 模型部署到 SageMaker 端点:

pythonmodelbuilder = ModelBuilder( model=model schemabuilder=SchemaBuilder(sampleinput=sampleinput sampleoutput=sampleoutput) rolearn=executionrole mode=ModeSAGEMAKERENDPOINT)xgbbuilder = modelbuilderbuild()predictor = xgbbuilderdeploy( instancetype=mlc5xlarge initialinstancecount=1)

请注意,在部署到 SageMaker 端点时,您需要在调用 deploy() 函数时指定实例类型和数量。

查看 modelbuilderxgboostipynb 示例以进一步了解 XGBoost 模型的部署。

Triton 模型

您可以使用 ModelBuilder 在 Triton Inference Server 上提供 PyTorch 模型。在这种情况下,需要指定 modelserver 参数为 ModelServerTRITON 并传入模型和 SchemaBuilder 对象:

pythonmodelbuilder = ModelBuilder( model=model schemabuilder=SchemaBuilder(sampleinput=sampleinput sampleoutput=sampleoutput) rolearn=executionrole modelserver=ModelServerTRITON mode=ModeSAGEMAKERENDPOINT)

tritonbuilder = modelbuilderbuild()predictor = tritonbuilderdeploy( instancetype=mlg4dnxlarge initialinstancecount=1)

请参阅 modelbuildertritonipynb 部署 Triton 模型的详细信息。

Hugging Face 模型

以下示例展示如何将 Hugging Face 提供的预训练转换器模型部署到 SageMaker。我们创建一个自定义推理规范:

pythonclass MyInferenceSpec(InferenceSpec) def load(self modeldir str) return pipeline(translationentofr model=t5small)

def invoke(self input model)    return model(input)

定义输入和输出的 SchemaBuilder 对象同样重要。然后创建 ModelBuilder 对象并将模型部署到 SageMaker 端点:

pythonbuilder = ModelBuilder( inferencespec=infspec mode=ModeSAGEMAKERENDPOINT schemabuilder=schema imageuri=image)model = builderbuild( rolearn=executionrole sagemakersession=sagemakersession)predictor = modeldeploy( initialinstancecount=1 instancetype=mlg52xlarge)

请参阅 modelbuilderhuggingfaceipynb 来了解如何部署 Hugging Face 管道模型。

结论

新的 SageMaker ModelBuilder 功能简化了在 SageMaker 上将 ML 模型部署到生产环境的过程。园丁减轻了新用户的学习曲线,并最大化了经验丰富用户的利用率。通过少量代码,用户可以将模型与内置框架如 XGBoost、PyTorch、Triton 和 Hugging Face以及 SageMaker JumpStart 中的模型进行快速部署。

我们鼓励所有 SageMaker 用户使用新的 ModelBuilder 功能。有关详细信息,请参阅 ModelBuilder 文档。ModelBuilder 现已对所有 SageMaker 用户开放,无需额外费用。通过这种简化的工作流,您可以更快地完成模型部署。期待听到 ModelBuilder 如何加速您的模型开发工作流程的反馈!

鲸鱼加速器官网,致力于实现全球连线,只需一键轻松提升您的网络体验。无论身处何地,畅享高速、稳定的网络连接,为您提供无忧的上网体验。