本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
推理容器的模型创作指南
本节详细介绍了模型提供者在为 Clean Rooms ML 创建推理算法时应遵循的指导方针。
-
按照《 SageMaker AI 开发者指南》中所述,使用支持 AI 推理的相应容器基础镜像。 SageMaker 以下代码允许您从公共 SageMaker AI 终端节点提取支持的容器基础镜像。
ecr_registry_endpoint='763104351884.dkr.ecr.$REGION.amazonaws.com' base_image='pytorch-inference:2.3.0-cpu-py311-ubuntu20.04-sagemaker' aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ecr_registry_endpoint docker pull $ecr_registry_endpoint/$base_image -
在本地创作模型时,请确保满足以下条件,这样您就可以在本地、开发实例上、在您的 SageMaker AI Batch Transform 上以及 Clean Rooms ML 上测试模型。 AWS 账户
-
Clean Rooms ML 通过 docker 容器中的
/opt/ml/model目录使推理中的模型工件可供推理代码使用。 -
Clean Rooms ML 按行拆分输入,使用
MultiRecord批处理策略,并在每条转换后的记录的末尾添加换行符。 -
您可以将最大请求大小设置为 un
maxPayloadInMBdercontainerExecutionParameters。如果您未指定值,则 Clean Rooms ML 使用 6 MB。当输入 CSV 文件大于该值时, SageMaker AI 会将该文件拆分为多个向您的推理容器发出的请求。CSV 标题行仅出现在对该文件的第一个请求中,后续请求以数据行开头。使用预定义的列架构配置推理容器,使其接受带或不带标题行的请求。如果存在标题行,则将其忽略,而不是将其视为数据记录。有关更多信息maxPayloadInMB,请参阅 AWS Clean Rooms ML API 参考InferenceContainerExecutionParameters中的内容。 -
确保您能够根据协作者的架构生成综合或测试推理数据集,该数据集将在您的模型代码中使用。
-
在将模型算法与 AWS Clean Rooms 协作关联 AWS 账户 之前,请确保您可以自己运行 SageMaker AI 批量转换作业。
以下代码包含与本地测试、 SageMaker AI 转换环境测试和 Clean Rooms ML 兼容的示例 Docker 文件
FROM763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.12.1-cpu-py38-ubuntu20.04-sagemaker ENV PYTHONUNBUFFERED=1 COPY serve.py /opt/ml/code/serve.py COPY inference_handler.py /opt/ml/code/inference_handler.py COPY handler_service.py /opt/ml/code/handler_service.py COPY model.py /opt/ml/code/model.py RUN chmod +x /opt/ml/code/serve.py ENTRYPOINT ["/opt/ml/code/serve.py"]
-
-
完成任何模型更改并准备好在 SageMaker AI 环境中对其进行测试后,按提供的顺序运行以下命令。
export ACCOUNT_ID=xxx export REPO_NAME=xxx export REPO_TAG=xxx export REGION=xxx docker build -t $ACCOUNT_ID.dkr.ecr.us-west-2.amazonaws.com/$REPO_NAME:$REPO_TAG # Sign into AWS $ACCOUNT_ID/ Run aws configure # Check the account and make sure it is the correct role/credentials aws sts get-caller-identity aws ecr create-repository --repository-name $REPO_NAME --region $REGION aws ecr describe-repositories --repository-name $REPO_NAME --region $REGION # Authenticate Docker aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com # Push To ECR Repository docker push $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com$REPO_NAME:$REPO_TAG # Create Sagemaker Model # Configure the create_model.json with # 1. Primary container - # a. ModelDataUrl - S3 Uri of the model.tar from your training job aws sagemaker create-model --cli-input-json file://create_model.json --region $REGION # Create Sagemaker Transform Job # Configure the transform_job.json with # 1. Model created in the step above # 2. MultiRecord batch strategy # 3. Line SplitType for TransformInput # 4. AssembleWith Line for TransformOutput aws sagemaker create-transform-job --cli-input-json file://transform_job.json --region $REGION在 SageMaker AI 任务完成且您对批量转换感到满意后,您可以使用 AWS Clean Rooms ML 注册亚马逊 ECR 注册表。使用
CreateConfiguredModelAlgorithm操作注册模型算法并将其关联CreateConfiguredModelAlgorithmAssociation到协作。