容器映像相容性 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

容器映像相容性

下表顯示與 @remote 裝飾器相容的 SageMaker 訓練映像清單。

名稱 Python 版本 影像 URI - CPU 影像 URI - GPU

資料科學

3.7(py37)

僅限 SageMaker Studio Classic Notebook。Python 作為 SageMaker Studio Classic Notebook 核心映像使用URI時SDK,會自動選取映像。

僅限 SageMaker Studio Classic Notebook。Python 作為 SageMaker Studio Classic Notebook 核心映像使用URI時SDK,會自動選取映像。

資料科學 2.0

3.8(py38)

僅限 SageMaker Studio Classic Notebook。Python 作為 SageMaker Studio Classic Notebook 核心映像使用URI時SDK,會自動選取映像。

僅限 SageMaker Studio Classic Notebook。Python 作為 SageMaker Studio Classic Notebook 核心映像使用URI時SDK,會自動選取映像。

資料科學 3.0

3.10(py310)

僅限 SageMaker Studio Classic Notebook。Python 作為 SageMaker Studio Classic Notebook 核心映像使用URI時SDK,會自動選取映像。

僅限 SageMaker Studio Classic Notebook。Python 作為 SageMaker Studio Classic Notebook 核心映像使用URI時SDK,會自動選取映像。

基本 Python 2.0

3.8(py38)

Python 偵測到開發環境正在使用 Python 3.8 執行期時,會SDK選取此映像。否則,當 Python 用作 SageMaker Studio Classic Notebook 核心映像時,SDK會自動選取此映像

僅限 SageMaker Studio Classic Notebook。Python 作為 SageMaker Studio Classic Notebook 核心映像使用URI時SDK,會自動選取映像。

基本 Python 3.0

3.10(py310)

Python 偵測到開發環境正在使用 Python 3.8 執行期時,會SDK選取此映像。否則,當 Python 用作 SageMaker Studio Classic Notebook 核心映像時,SDK會自動選取此映像

僅限 SageMaker Studio Classic Notebook。Python 用作 Studio Classic Notebook 核心映像URI時SDK,會自動選取映像。

DLC-TensorFlow 2.12.0 for SageMaker Training

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

DLC-Tensorflow 2.11.0 SageMaker 訓練

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

DLC-TensorFlow 2.10.1 訓練 SageMaker

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

DLC SageMaker -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

DLC-TensorFlow 2.8.3 用於 SageMaker 訓練

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

DLC-PyTorch 2.0.0 用於 SageMaker 訓練

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

DLC SageMaker -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

DLC-PyTorch 1.12.1 用於 SageMaker 訓練

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

DLC SageMaker 訓練的 -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

DLC-MXNet 1.9.0 SageMaker 訓練

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 深度學習容器 (DLC) 映像在本機執行任務,請使用DLC文件 URIs中的映像。DLC 影像不支援相依性auto_capture的值。

SageMaker 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 構建。以下最小 Dockerfile 範例顯示如何運用 Python 3.10 來使用 Docker 映像。

FROM python:3.10 #... Rest of the Dockerfile

若要在映像建立 conda 環境並用以執行工作,請設定環境變數 SAGEMAKER_JOB_CONDA_ENVconda 環境名稱。如果映像已設定為 SAGEMAKER_JOB_CONDA_ENV 值,則在訓練工作執行期期間遠端函式無法建立新 conda 環境。請參閱以下 Dockerfile 範例,其使用 Python 版本 3.10 的 conda 環境。

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 讓 使用 mamba 在容器映像中管理 Python 虛擬環境,請從 miniforge 安裝 mamba 工具組。若要使用 mamba,請新增以下代碼範例至 Dockerfile。然後, SageMaker 會在執行階段偵測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 頻道。如需更多資訊,請參閱使用 Amazon S3 自訂 conda 儲存庫先決條件區段。

以下是完整 Docerfile 範例,顯示如何建立相容 Docker 映像。

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 核心映像