

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

# コンテナイメージの互換性
<a name="train-remote-decorator-container"></a>

次の表は、@remote デコレータと互換性のある SageMaker トレーニングイメージのリストを示しています。


| 名前 | Python バージョン | イメージ URI - CPU | イメージ URI - GPU | 
| --- | --- | --- | --- | 
|  データサイエンス  |  3.7(py37)  |  SageMaker Studio Classic ノートブックのみ。SageMaker Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではイメージ URI を自動的に選択します。  |  SageMaker Studio Classic ノートブックのみ。SageMaker Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではイメージ URI を自動的に選択します。  | 
|  Data Science 2.0  |  3.8(py38)  |  SageMaker Studio Classic ノートブックのみ。SageMaker Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではイメージ URI を自動的に選択します。  |  SageMaker Studio Classic ノートブックのみ。SageMaker Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではイメージ URI を自動的に選択します。  | 
|  Data Science 3.0  |  3.10(py310)  |  SageMaker Studio Classic ノートブックのみ。SageMaker Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではイメージ URI を自動的に選択します。  |  SageMaker Studio Classic ノートブックのみ。SageMaker Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではイメージ URI を自動的に選択します。  | 
|  Base Python 2.0  |  3.8(py38)  |  開発環境で Python 3.8 ランタイムを使用されていることを検出したとき、Python SDK ではこのイメージを選択します。それ以外の場合、SageMaker Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではこのイメージを自動的に選択します。  |  SageMaker Studio Classic ノートブックのみ。SageMaker Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではイメージ URI を自動的に選択します。  | 
|  Base Python 3.0  |  3.10(py310)  |  開発環境で Python 3.8 ランタイムを使用されていることを検出したとき、Python SDK ではこのイメージを選択します。それ以外の場合、SageMaker Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではこのイメージを自動的に選択します。  |  SageMaker Studio Classic ノートブックのみ。Studio Classic ノートブックのカーネルイメージとして使用されたとき、Python SDK ではイメージ URI を自動的に選択します。  | 
|  SageMaker トレーニング用 DLC-TensorFlow 2.12.0  |  3.10(py310)  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.12.0-cpu-py310-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.12.0-gpu-py310-cu118-ubuntu20.04-sagemaker  | 
|  SageMaker トレーニング用 DLC-Tensorflow 2.11.0  |  3.9(py39)  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.11.0-cpu-py39-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.11.0-gpu-py39-cu112-ubuntu20.04-sagemaker  | 
|  SageMaker トレーニング用 DLC-TensorFlow 2.10.1  |  3.9(py39)  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.10.1-cpu-py39-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.10.1-gpu-py39-cu112-ubuntu20.04-sagemaker  | 
|  SageMaker トレーニング用 DLC-TensorFlow 2.9.2  |  3.9(py39)  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.9.2-cpu-py39-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.9.2-gpu-py39-cu112-ubuntu20.04-sagemaker  | 
|  SageMaker トレーニング用 DLC-TensorFlow 2.8.3  |  3.9(py39)  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.8.3-cpu-py39-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.8.3-gpu-py39-cu112-ubuntu20.04-sagemaker  | 
|  SageMaker トレーニング用 DLC-PyTorch 2.0.0  |  3.10(py310)  |  763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:2.0.0-cpu-py310-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:2.0.0-gpu-py310-cu118-ubuntu20.04-sagemaker  | 
|  SageMaker トレーニング用 DLC-PyTorch 1.13.1  |  3.9(py39)  |  763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.13.1-cpu-py39-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.13.1-gpu-py39-cu117-ubuntu20.04-sagemaker  | 
|  SageMaker トレーニング用 DLC-PyTorch 1.12.1  |  3.8(py38)  |  763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.12.1-cpu-py38-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.12.1-gpu-py38-cu113-ubuntu20.04-sagemaker  | 
|  SageMaker トレーニング用 DLC-PyTorch 1.11.0  |  3.8(py38)  |  763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.11.0-cpu-py38-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.11.0-gpu-py38-cu113-ubuntu20.04-sagemaker  | 
|  SageMaker トレーニング用 DLC-MXNet 1.9.0  |  3.8(py38)  |  763104351884.dkr.ecr.<region>.amazonaws.com/mxnet-training:1.9.0-cpu-py38-ubuntu20.04-sagemaker  |  763104351884.dkr.ecr.<region>.amazonaws.com/mxnet-training:1.9.0-gpu-py38-cu112-ubuntu20.04-sagemaker  | 

**注記**  
 AWS Deep Learning Containers (DLC) イメージを使用してローカルでジョブを実行するには、[DLC ドキュメント](https://github.com/aws/deep-learning-containers/blob/master/available_images.md)にあるイメージ URIs を使用します。DLC イメージは依存関係の `auto_capture` 値をサポートしていません。  
[SageMaker Studio で SageMaker AI ディストリビューション](https://github.com/aws/sagemaker-distribution#amazon-sagemaker-studio)を使用するジョブは、`sagemaker-user` という名前の非ルートユーザーとしてコンテナで実行されます。このユーザーは、`/opt/ml` と `/tmp` にアクセスするための完全なアクセス許可が必要です。次のスニペットに示すように、`sudo chmod -R 777 /opt/ml /tmp` を `pre_execution_commands` リストに追加して、このアクセス許可を付与します。  

```
@remote(pre_execution_commands=["sudo chmod -R 777 /opt/ml /tmp"])
def func():
    pass
```

カスタムイメージを使用してリモート機能を実行することもできます。リモート関数との互換性を保つため、カスタムイメージは Python バージョン 3.7.x-3.10.x を使用してビルドされる必要があります。以下は、Python 3.10 による Docker イメージを使用する方法を示す最小限の Dockerfile サンプルです。

```
FROM python:3.10

#... Rest of the Dockerfile
```

イメージ内に `conda` 環境を作成し、それを使用してジョブを実行するには、環境変数 `SAGEMAKER_JOB_CONDA_ENV` を `conda` 環境名に設定します。イメージに `SAGEMAKER_JOB_CONDA_ENV` 値が設定されている場合、リモート関数はトレーニングジョブの実行中に新しい conda 環境を作成できません。Python バージョン 3.10 の `conda` 環境を使用する次の Dockerfile の例を参照してください。

```
FROM continuumio/miniconda3:4.12.0  

ENV SHELL=/bin/bash \
    CONDA_DIR=/opt/conda \
    SAGEMAKER_JOB_CONDA_ENV=sagemaker-job-env

RUN conda create -n $SAGEMAKER_JOB_CONDA_ENV \
   && conda install -n $SAGEMAKER_JOB_CONDA_ENV python=3.10 -y \
   && conda clean --all -f -y \
```

SageMaker AI が [mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) を使用してコンテナイメージ内の Python 仮想環境を管理する場合、[miniforge から mamba ツールキット](https://github.com/conda-forge/miniforge)をインストールします。mamba を使用するには、以下のコードサンプルを Dockerfile に追加します。次に、SageMaker AI は実行時に `mamba` の使用可否を検出し、`conda` の代わりにそれを使用します。

```
#Mamba Installation
RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh" \
    && bash Mambaforge-Linux-x86_64.sh -b -p "/opt/conda"  \
    && /opt/conda/bin/conda init bash
```

Amazon S3 バケットでカスタム conda チャネルを使用すると、リモート関数の使用時に mamba を使用できなくなります。mamba を使用する場合は、Amazon S3 でカスタム conda チャネルを使用していないことを確認してください。詳細については、「**Custom conda repository using Amazon S3**」の「**前提条件**」セクションを参照してください。

以下は、互換性がある Docker イメージを作成する方法を示す Dockerfile の完全な例です。

```
FROM python:3.10

RUN apt-get update -y \
    # Needed for awscli to work
    # See: https://github.com/aws/aws-cli/issues/1957#issuecomment-687455928
    && apt-get install -y groff unzip curl \
    && pip install --upgrade \
        'boto3>1.0<2' \
        'awscli>1.0<2' \
        'ipykernel>6.0.0<7.0.0' \
#Use ipykernel with --sys-prefix flag, so that the absolute path to 
    #/usr/local/share/jupyter/kernels/python3/kernel.json python is used
    # in kernelspec.json file
    && python -m ipykernel install --sys-prefix

#Install Mamba
RUN curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh" \
    && bash Mambaforge-Linux-x86_64.sh -b -p "/opt/conda"  \
    && /opt/conda/bin/conda init bash

#cleanup
RUN apt-get clean \
    && rm -rf /var/lib/apt/lists/* \
    && rm -rf ${HOME}/.cache/pip \
    && rm Mambaforge-Linux-x86_64.sh

ENV SHELL=/bin/bash \
    PATH=$PATH:/opt/conda/bin
```

 前述の Dockerfile サンプルを実行して生成されたイメージは、[SageMaker Studio Classic カーネルイメージ](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-byoi.html)として使用することもできます。