カスタム SageMaker AI イメージ仕様 - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタム SageMaker AI イメージ仕様

重要

2023 年 11 月 30 日以降、従来の Amazon SageMaker Studio のエクスペリエンスは Amazon SageMaker Studio Classic と名前が変更されました。以下のセクションは、Studio Classic アプリケーションの使用を前提とした内容です。更新後の Studio エクスペリエンスを使用する場合は、「Amazon SageMaker Studio」を参照してください。

SageMaker AI イメージバージョンで表されるコンテナイメージには、次の仕様が適用されます。

イメージを実行する

イメージを KernelGateway アプリとして実行できるよう、ENTRYPOINT 命令と CMD 命令が上書きされます。

イメージのポート 8888 は、KernelGateway ウェブサーバーの実行のために予約されています。

イメージを停止する

DeleteApp API は docker stop コマンドに相当するコマンドを発行します。コンテナ内の他のプロセスは SIGKILL/SIGTERM シグナルを受信しません。

カーネル検出

SageMaker AI は、Jupyter カーネル仕様で定義されているカーネルを認識します

イメージを実行する前に、表示するカーネルのリストを指定できます。指定しない場合、python3 と表示されます。DescribeAppImageConfig API を使うと、カーネルのリストを表示できます。

デフォルトで、Conda 環境はカーネル仕様として認識されます。

ファイルシステム

/opt/.sagemakerinternal ディレクトリと /opt/ml ディレクトリは予約されています。これらのディレクトリにあるデータは、実行時には表示されない場合があります。

ユーザーデータ

イメージでは、ドメイン内の各ユーザーは共有の Amazon Elastic File System ボリュームにユーザーディレクトリを得ます。現在のユーザーの Amazon EFS ボリュームのディレクトリの場所は設定可能です。デフォルトのディレクトリは /home/sagemaker-user です。

SageMaker AI は、イメージとホスト間の POSIX UID/GID マッピングを設定します。デフォルトでは、ルートユーザーの UID/GID (0/0) はホストの UID/GID にマッピングされます。

これらの値は CreateAppImageConfig API を使って指定できます。

GID/UID の制限

Amazon SageMaker Studio Classic は、次の DefaultUIDDefaultGID の組み合わせのみをサポートしています。

  • DefaultUID: 1000 と DefaultGID: 100 (権限のないユーザーに対応)

  • DefaultUID: 0 と DefaultGID: 0 (ルートアクセスに対応)

メタデータ

メタデータファイルは /opt/ml/metadata/resource-metadata.json にあります。イメージで定義されている変数には、その他の環境変数は追加されません。詳細については、「アプリのメタデータを取得する」を参照してください。

GPU

GPU インスタンスでは、イメージは --gpus オプションを付けて実行されます。イメージには NVIDIA ドライバーを含めず、CUDA ツールキットのみを含めます。詳細については、「NVIDIA ユーザーガイド」を参照してください。

メトリクスとログ記録

KernelGateway プロセスのログは、お客様のアカウントの Amazon 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}