本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
训练容器的模型创作指南
本节详细介绍了模型提供者在为 Clean Rooms ML 创建自定义 ML 模型算法时应遵循的指导方针。
-
按照《 SageMaker AI 开发人员指南》中所述,使用相应的 SageMaker AI 训练支持的容器基础镜像。以下代码允许您从公共 SageMaker AI 终端节点提取支持的容器基础镜像。
ecr_registry_endpoint='763104351884.dkr.ecr.$REGION.amazonaws.com' base_image='pytorch-training: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 Training 上和 Clean Rooms ML 上测试模型。 AWS 账户
-
我们建议编写一个训练脚本,通过各种环境变量访问有关训练环境的有用属性。Clean Rooms ML 使用以下参数来调用对模型代码的训练:
SM_MODEL_DIRSM_OUTPUT_DIRSM_CHANNEL_TRAIN、、和FILE_FORMAT。Clean Rooms ML 使用这些默认值在自己的执行环境中使用来自各方的数据训练您的机器学习模型。 -
Clean Rooms ML 可通过 docker 容器中的
/opt/ml/input/data/目录访问您的训练输入通道。每个 ML 输入通道都是根据channel-nameCreateTrainedModel请求中channel_name提供的相应通道进行映射的。parser = argparse.ArgumentParser()# Data, model, and output directories parser.add_argument('--model_dir', type=str, default=os.environ.get('SM_MODEL_DIR', "/opt/ml/model")) parser.add_argument('--output_dir', type=str, default=os.environ.get('SM_OUTPUT_DIR', "/opt/ml/output/data")) parser.add_argument('--train_dir', type=str, default=os.environ.get('SM_CHANNEL_TRAIN', "/opt/ml/input/data/train")) parser.add_argument('--train_file_format', type=str, default=os.environ.get('FILE_FORMAT', "csv")) -
确保您能够根据协作者的架构生成合成或测试数据集,该数据集将在您的模型代码中使用。
-
在将模型算法与 AWS Clean Rooms 协作关联 AWS 账户 之前,请确保您可以自己运行 SageMaker AI 训练作业。
以下代码包含与本地测试、 SageMaker AI 训练环境测试和 Clean Rooms ML 兼容的示例 Docker 文件
FROM763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:2.3.0-cpu-py311-ubuntu20.04-sagemaker MAINTAINER $author_name ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib" ENV PATH="/opt/ml/code:${PATH}" # this environment variable is used by the SageMaker PyTorch container to determine our user code directory ENV SAGEMAKER_SUBMIT_DIRECTORY /opt/ml/code # copy the training script inside the container COPY train.py /opt/ml/code/train.py # define train.py as the script entry point ENV SAGEMAKER_PROGRAM train.py ENTRYPOINT ["python", "/opt/ml/code/train.py"]
-
-
为了更好地监控容器故障,我们建议导出日志并出于故障原因进行调试。作为
GetTrainedModel响应,Clean Rooms ML 返回该文件下的前 1024 个字符StatusDetails。 -
完成任何模型更改并准备好在 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 Doker aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com # Push To ECR Images docker push $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com$REPO_NAME:$REPO_TAG # Create Sagemaker Training job # Configure the training_job.json with # 1. TrainingImage # 2. Input DataConfig # 3. Output DataConfig aws sagemaker create-training-job --cli-input-json file://training_job.json --region $REGION在 SageMaker AI 任务完成且您对模型算法感到满意后,您可以使用 AWS Clean Rooms ML 注册亚马逊 ECR 注册表。使用
CreateConfiguredModelAlgorithm操作注册模型算法并将其关联CreateConfiguredModelAlgorithmAssociation到协作。