Loading...
在这篇文章中,我们将介绍 Amazon SageMaker 的最新功能,尤其是 ModelBuilder 类别,它帮助用户更轻松地打包和部署机器学习ML模型以及大语言模型LLM。SageMaker 是一个完全托管的服务,允许开发人员和数据科学家快速构建、训练并以任何规模部署机器学习模型。用户可以通过 API 调用将模型直接部署到生产环境中。模型被打包为容器,以支持坚固且可扩展的部署方式。然而,尽管 SageMaker 提供多种入口点,例如 Python SDK 和 SageMaker Studio,但客户仍在寻找更好的方法来优化模型的部署。
我们推出了两种新方法,以简化使用 SageMaker 打包和部署模型的流程。接下来的部分将详细解释如何使用新的 ModelBuilder 类进行模型部署。
新的 ModelBuilder 是一个 Python 类,专注于将使用如 XGBoost 或 PyTorch 等框架构建的 ML 模型转换为可部署到 SageMaker 的模型。ModelBuilder 提供 build() 函数,用于生成模型服务器所需的工件,并支持 deploy() 函数以在本地或 SageMaker 端点上进行部署。该功能的引入简化了与 SageMaker 环境的模型集成,使模型在性能和可扩展性方面得到优化。
ModelBuilder 类提供多种自定义选项,但要部署框架模型,模型构建器仅需要模型、输入、输出和角色信息
pythonclass ModelBuilder( model # 模型 ID 或对象 rolearn # IAM 角色 schemabuilder # 定义输入和输出 mode # 选择本地部署或部署到 SageMaker 端点 )
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

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。
接下来展示如何使用 ModelBuilder 将传统 ML 模型部署到 SageMaker 端点。
与之前相似,您可以通过更改 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 模型的部署。
您可以使用 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 提供的预训练转换器模型部署到 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 如何加速您的模型开发工作流程的反馈!