训练容器的模型创作指南 - AWS Clean Rooms

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

训练容器的模型创作指南

本节详细介绍了模型提供者在为 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 Roo AWS 账户 ms ML 上测试模型。

    • 我们建议编写一个训练脚本,通过各种环境变量访问有关训练环境的有用属性。Clean Rooms ML 使用以下参数来调用模型代码的训练:SM_MODEL_DIRSM_OUTPUT_DIRSM_CHANNEL_TRAIN、、和FILE_FORMAT。Clean Rooms ML 使用这些默认值在自己的执行环境中使用来自各方的数据训练机器学习模型。

    • Clean Rooms ML 通过 docker 容器中的/opt/ml/input/data/channel-name目录提供您的训练输入频道。每个 ML 输入通道均根据CreateTrainedModel请求中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 文件

      FROM 763104351884.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"]
  • 为了最好地监控容器故障,我们建议您在代码中捕获异常或处理所有故障模式并将其写入/opt/ml/output/failure。作为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 注册 Amazon Registry。使用CreateConfiguredModelAlgorithm操作注册模型算法并将其CreateConfiguredModelAlgorithmAssociation与协作关联。