建立自訂 SageMaker 映像 - Amazon SageMaker

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

建立自訂 SageMaker 映像

重要

允許 Amazon SageMaker Studio 或 Amazon SageMaker Studio Classic 建立 Amazon SageMaker 資源的自訂IAM政策也必須授予許可,才能將標籤新增至這些資源。需要將標籤新增至資源的許可,因為 Studio 和 Studio Classic 會自動標記他們建立的任何資源。如果IAM政策允許 Studio 和 Studio Classic 建立資源,但不允許標記,則嘗試建立資源時可能會發生「AccessDenied」錯誤。如需詳細資訊,請參閱提供標記 SageMaker資源的許可

AWS Amazon 的受管政策 SageMaker 提供建立 SageMaker 資源的許可,已包含在建立這些資源時新增標籤的許可。

重要

截至 2023 年 11 月 30 日,先前的 Amazon SageMaker Studio 體驗現在已命名為 Amazon SageMaker Studio Classic。以下章節是使用 Studio Classic 應用程式的特定部分。如需使用更新 Studio 體驗的相關資訊,請參閱 Amazon SageMaker Studio

本主題說明如何使用 SageMaker 主控台或 建立自訂 SageMaker 映像 AWS CLI。

當您從主控台建立映像時, SageMaker 也會建立初始映像版本。映像版本代表 Amazon Elastic Container Registry (ECR) 中的容器映像。容器映像必須符合要在 Amazon SageMaker Studio Classic 中使用的要求。如需詳細資訊,請參閱自訂 SageMaker 映像規格。如需在本機測試映像和解決常見問題的相關資訊,請參閱 SageMaker Studio Classic Custom Image Samples 儲存庫

建立自訂 SageMaker 映像之後,您必須將其連接至網域或共用空間,才能與 Studio Classic 搭配使用。如需詳細資訊,請參閱連接自訂 SageMaker 映像

從主控台建立 SageMaker 映像

下一節示範如何從 SageMaker主控台建立自訂 SageMaker 映像。

建立映像
  1. 在 開啟 Amazon SageMaker 主控台https://console.aws.amazon.com/sagemaker/

  2. 在左側導覽窗格中,選擇管理員組態

  3. 管理員組態下,選擇映像

  4. 自訂映像頁面中,選擇建立映像

  5. 針對映像來源 ,輸入 Amazon 中容器映像的登錄檔路徑ECR。路徑格式如下。

    acct-id.dkr.ecr.region.amazonaws.com/repo-name[:tag] or [@digest]

  6. 選擇下一步

  7. 映像屬性下,輸入下列內容:

    • 圖片名稱 — 此名稱對您目前的帳戶而言都必須是唯一的 AWS 區域。

    • (選用) 顯示名稱 – Studio Classic 使用者介面中顯示的名稱。如果未提供,Image name 則會顯示出來。

    • (選用) 描述 – 映像的一項描述。

    • IAM 角色 – 角色必須連接AmazonSageMakerFullAccess政策。在下拉式清單中,選擇下列其中一個選項:

      • 建立新角色 — 指定您希望筆記本使用者可以存取的任何其他 Amazon Simple Storage Service (Amazon S3) 儲存貯體。如果您不想將存取許可新增至更多儲存貯體,請選擇

        SageMaker 會將AmazonSageMakerFullAccess政策連接至角色。此角色可讓筆記本使用者存取核取標記旁列出的 S3 儲存貯體。

      • 輸入自訂IAM角色 ARN – 輸入IAM角色的 Amazon Resource Name (ARN)。

      • 使用現有角色 — 從清單中選擇一個現有角色。

    • (選用) 映像標籤 — 選擇新增標籤。您最多可新增 50 個標籤。標籤可使用 Studio Classic 使用者介面、 SageMaker主控台或 進行 SageMaker Search搜尋API。

  8. 選擇提交

新映像會顯示在自訂映像清單中並以重點標示。已成功建立映像後,您可以選擇映像名稱來檢視其屬性,或選擇建立版本建立其他版本。

若要建立其他映像版本
  1. 在與映像相同的行上選擇建立版本

  2. 針對映像來源 ,輸入 Amazon ECR容器映像的登錄檔路徑。容器映像不應與先前版本映像中使用的 SageMaker 映像相同。

從 建立 SageMaker 映像 AWS CLI

您可以使用 執行下列步驟,從容器 SageMaker 映像建立映像 AWS CLI。

  • 建立 Image

  • 建立 ImageVersion

  • 建立一個程式組態檔案。

  • 建立 AppImageConfig

若要建立 SageMaker 映像實體
  1. 建立 SageMaker 映像。

    aws sagemaker create-image \ --image-name custom-image \ --role-arn arn:aws:iam::<acct-id>:role/service-role/<execution-role>

    回應看起來應該類似以下的內容。

    { "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/custom-image" }
  2. 從容器 SageMaker 映像建立映像版本。

    aws sagemaker create-image-version \ --image-name custom-image \ --base-image <acct-id>.dkr.ecr.<region>.amazonaws.com/smstudio-custom:custom-image

    回應看起來應該類似以下的內容。

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1" }
  3. 檢查映像檔版本是否已成功建立。

    aws sagemaker describe-image-version \ --image-name custom-image \ --version-number 1

    回應看起來應該類似以下的內容。

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1", "ImageVersionStatus": "CREATED" }
    注意

    如果回應為 "ImageVersionStatus": "CREATED_FAILED",則回應也會包含失敗原因。許可問題是導致失敗的常見原因。如果您在啟動或執行自訂映像 KernelGateway 的應用程式時遇到失敗,也可以檢查您的 Amazon CloudWatch 日誌。日誌群組的名稱為 /aws/sagemaker/studio。日誌串流的名稱為 $domainID/$userProfileName/KernelGateway/$appName

  4. 建立名為 app-image-config-input.json 的組態檔案。Name 的值KernelSpecs必須與與此 相關聯的映像中 kernelSpec 可用的 名稱相符AppImageConfig。此值區分大小寫。您可以從容器內的 jupyter-kernelspec list Shell 執行,在映像 kernelSpecs 中尋找可用的 。 MountPath是映像中掛載 Amazon Elastic File System (AmazonEFS) 主目錄的路徑。它必須與您在容器內使用的路徑不同,因為當您掛載 Amazon EFS主目錄時,該路徑將被覆寫。

    注意

    下列 DefaultUIDDefaultGID 組合是唯一可接受的值:

    • 預設UID:1000 和預設GID:100

    • 預設UID:0 和預設GID:0

    { "AppImageConfigName": "custom-image-config", "KernelGatewayImageConfig": { "KernelSpecs": [ { "Name": "python3", "DisplayName": "Python 3 (ipykernel)" } ], "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } } }
  5. AppImageConfig 使用上一個步驟中建立的檔案來建立 。

    aws sagemaker create-app-image-config \ --cli-input-json file://app-image-config-input.json

    回應看起來應該類似以下的內容。

    { "AppImageConfigArn": "arn:aws:sagemaker:us-east-2:acct-id:app-image-config/custom-image-config" }