本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自定义 SageMaker 图像规格
重要
截至 2023 年 11 月 30 日,之前的亚马逊 SageMaker Studio 体验现在被命名为 Amazon St SageMaker udio Classic。以下部分专门介绍如何使用 Studio Classic 应用程序。有关使用更新后的 Studio 体验的信息,请参阅亚马逊 SageMaker Studio。
以下规范适用于由镜像版本表示的容器 SageMaker镜像。
- 运行映像
-
ENTRYPOINT
并覆盖CMD
指令以使图像能够作为 KernelGateway 应用程序运行。镜像中的端口 8888 保留用于运行 KernelGateway Web 服务器。
- 停止映像
-
发出
DeleteApp
API相当于docker stop
命令的命令。容器中的其他进程将无法获得SIGKILL/SIGTERM信号。 - 内核发现
-
SageMaker 识别由 Jupyter 内核规范定义的内核。
您可以指定运行映像前要显示的内核列表。如果未指定,则显示 python3。使用DescribeAppImageConfigAPI查看内核列表。
默认情况下,Conda 环境被识别为内核规范。
- 文件系统
-
/opt/.sagemakerinternal
和/opt/ml
目录是保留的目录。这些目录中的任何数据在运行时可能不可见。 - 用户数据
-
域中的每个用户都会在映像中的共享 Amazon Elastic File System 卷上获得一个用户目录。当前用户目录在 Amazon EFS 卷上的位置是可配置的。默认情况下,目录位置为
/home/sagemaker-user
。SageMaker 在GID映像和主机之间配置 POSIXUID/映射。这默认为将 root 用户的UID/GID(0/0) 映射到主机GID上的UID/。
您可以使用来指定这些值CreateAppImageConfigAPI。
- GID/UID限制
-
Amazon SageMaker Studio Classic 仅支持以下
DefaultUID
和DefaultGID
组合:-
默认值UID:1000,默认值GID:100,对应于非特权用户。
-
默认值UID:0,默认值GID:0,对应于根访问权限。
-
- 元数据
-
元数据文件位于
/opt/ml/metadata/resource-metadata.json
中。除了映像中定义的变量,不会添加额外的环境变量。有关更多信息,请参阅 获取应用程序元数据。 - GPU
-
在GPU实例上,使用
--gpus
选项运行映像。镜像中应该只包含CUDA工具包,而不是NVIDIA驱动程序。有关更多信息,请参阅《NVIDIA用户指南》。 - 指标和日志记录
-
该 KernelGateway 流程的日志将通过客户的账户发送到亚马逊 CloudWatch 。日志组的名称为
/aws/sagemaker/studio
。日志流的名称为$domainID/$userProfileName/KernelGateway/$appName
。 - 映像大小
-
限制在 35 GB 以内。要查看映像的大小,请运行
docker image ls
。
示例 Dockerfile
下面的示例 Dockerfile 基于 Amazon Linux 2 创建了一个映像,安装了第三方软件包和 python3
内核,并将作用域设置为非特权用户。
FROM public.ecr.aws/amazonlinux/amazonlinux:2 ARG NB_USER="sagemaker-user" ARG NB_UID="1000" ARG NB_GID="100" RUN \ yum install --assumeyes python3 shadow-utils && \ useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \ yum clean all && \ python3 -m pip install ipykernel && \ python3 -m ipykernel install USER ${NB_UID}