部署未压缩的模型 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

部署未压缩的模型

部署 ML 模型时,一种选择是将模型构件存档并压缩成 tar.gz 格式。虽然此方法适用于小型模型,但对包含数千亿个参数的大型模型构件进行压缩,然后在端点上解压缩需要大量时间。对于大型模型推理,我们建议您部署未压缩的 ML 模型。本指南介绍如何部署未压缩的 ML 模型。

要部署未压缩的 ML 模型,请将所有模型构件上传到 Amazon S3,然后将它们整理到共用的 Amazon S3 前缀下。Amazon S3 前缀是 Amazon S3 对象键名开头的一串字符,用分隔符与名称的其余部分隔开。有关 Amazon S3 前缀的更多信息,请参阅使用前缀整理对象

要使用进行部署 SageMaker,必须使用斜杠 (/) 作为分隔符。您必须确保只有与您的 ML 模型关联的构件才使用该前缀进行组织。对于具有单个未压缩构件的 ML 模型,前缀将与键名相同。您可以检查哪些对象与您的前缀相关联 AWS CLI:

aws s3 ls --recursive s3://bucket/prefix

将模型工件上传到 Amazon S3 并将它们整理到通用前缀下后,您可以在调用CreateModel请求时在ModelDataSource字段中指定它们的位置。 SageMaker 将自动将未压缩的模型工件下载到以/opt/ml/model进行推理。有关下载项目时 SageMaker 使用的规则的更多信息,请参阅 S3 ModelDataSource

以下代码片段显示了在部署未压缩模型CreateModelAPI时如何调用。更换 italicized user text 用你自己的信息。

model_name = "model-name" sagemaker_role = "arn:aws:iam::123456789012:role/SageMakerExecutionRole" container = "123456789012.dkr.ecr.us-west-2.amazonaws.com/inference-image:latest" create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { "Image": container, "ModelDataSource": { "S3DataSource": { "S3Uri": "s3://amzn-s3-demo-bucket/prefix/to/model/data/", "S3DataType": "S3Prefix", "CompressionType": "None", }, }, }, )

前面提到的示例假设您的模型构件整理在共用前缀下。如果您的模型构件是单个未压缩的 Amazon S3 对象,则更改 "S3Uri" 以指向 Amazon S3 对象,然后将 "S3DataType" 更改为 "S3Object"

注意

目前您不能ModelDataSource与一起使用 AWS Marketplace、 SageMaker 批量转换、 SageMaker 无服务器推理端点和 SageMaker 多模型端点。