完成先決條件 - Amazon SageMaker

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

完成先決條件

下列主題說明您在建立非同步端點之前必須完成的先決條件。這些先決條件包括正確存放模型成品、設定具有正確許可的 AWS IAM,以及選取容器映像。

若要完成先決條件
  1. 建立 Amazon IAM的角色 SageMaker。

    非同步推論需要存取您的 Amazon S3 儲存貯體 URI。若要促進這一點,請建立可執行 IAM的角色, SageMaker 並具有存取 Amazon S3 和 Amazon 的許可SNS。使用此角色, SageMaker 可以在您的帳戶下執行 ,並存取您的 Amazon S3 儲存貯體和 Amazon SNS主題。

    您可以使用 IAM 主控台 AWS SDK for Python (Boto3)或 來建立IAM角色 AWS CLI。以下是如何建立IAM角色並將必要政策與IAM主控台連接的範例。

    1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

    2. 在IAM主控台的導覽窗格中,選擇角色 ,然後選擇建立角色

    3. 對於 Select type of trusted entity (選取信任的實體類型),選擇 AWS service ( 服務)

    4. 選擇您想要允許擔任此角色的服務。在此情況下,請選擇 SageMaker。然後選擇下一步:許可

      • 這會自動建立IAM政策,以授予 Amazon S3、Amazon ECR和 CloudWatch Logs 等相關服務的存取權。

    5. 選擇下一步:標籤

    6. (選用) 藉由連接標籤做為鍵值對,將中繼資料新增至角色。如需在 中使用標籤的詳細資訊IAM,請參閱標記IAM資源

    7. 選擇下一步:檢閱

    8. 輸入角色名稱

    9. 如有可能,請輸入角色名稱或角色名稱後綴。您 AWS 帳戶中的角色名稱必須是唯一的。它們無法透過大小寫進行區分。例如,您無法建立名為 PRODROLEprodrole 的角色。由於其他 AWS 資源可能會參考角色,因此在建立角色之後,您無法編輯角色的名稱。

    10. (選用) 針對 Role description (角色說明),輸入新角色的說明。

    11. 檢閱角色,然後選擇建立角色

      請注意 SageMaker 角色 ARN。若要ARN使用主控台尋找角色,請執行下列動作:

      1. 前往IAM主控台: https://console.aws.amazon.com/iam/

      2. 選擇角色

      3. 在搜尋欄位中輸入角色名稱,搜尋您剛建立的角色。

      4. 設定角色。

      5. 角色ARN位於摘要頁面頂端。

  2. 將 Amazon SageMaker、Amazon S3 和 Amazon SNS許可新增至您的IAM角色。

    建立角色後,將 SageMaker、Amazon S3 和選用的 Amazon SNS許可授予您的IAM角色。

    在IAM主控台中選擇角色。在搜尋欄位中輸入角色名稱,以搜尋您建立的角色。

    1. 選擇您的角色。

    2. 接著,選擇連接政策

    3. Amazon SageMaker 非同步推論需要執行下列動作的許可:"sagemaker:CreateModel""sagemaker:CreateEndpoint""sagemaker:CreateEndpointConfig""sagemaker:InvokeEndpointAsync"

      這些動作包含在 AmazonSageMakerFullAccess 政策中。將此政策新增至您的IAM角色。在搜尋欄位中搜尋 AmazonSageMakerFullAccess。選取 AmazonSageMakerFullAccess

    4. 選擇連接政策

    5. 接著,選擇連接政策以新增 Amazon S3 許可。

    6. 選取建立政策

    7. 選取 JSON 標籤。

    8. 新增下列政策聲明:

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::bucket_name/*" } ] }
    9. 選擇下一步:標籤

    10. 輸入政策名稱

    11. 選擇 建立政策

    12. 重複您完成的相同步驟來新增 Amazon S3 許可,以新增 Amazon SNS許可。對於政策聲明,請連接以下項目:

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:<region>:<Account_ID>:<SNS_Topic>" } ] }
  3. 將您的推論資料 (例如機器學習模型、範例資料) 上傳到 Amazon S3

  4. 選取一個預先建立的 Docker 推論影像,或建立您自己的推論 Docker 映像。

    SageMaker 為其內建演算法提供容器,並為一些最常見的機器學習架構提供預先建置的 Docker 映像,例如 Apache TensorFlowMXNet PyTorch、 和 Chainer。如需可用 SageMaker映像的完整清單,請參閱可用的深度學習容器映像 。如果您選擇使用 SageMaker 提供的容器,您可以透過設定容器中的環境變數,來增加端點逾時和承載大小。要了解如何為每個架構設定不同的環境變數,請參閱建立一個非同步端點中的建立模型步驟。

    如果沒有任何現有 SageMaker 容器符合您的需求,而且您沒有自己的現有容器,您可能需要建立新的 Docker 容器。請參閱具有自訂推論程式碼的容器,瞭解有關如何建立 Docker 映像的資訊。

  5. 建立 Amazon SNS主題 (選用)

    建立 Amazon Simple Notification Service (Amazon SNS) 主題,傳送已完成處理之請求的通知。Amazon SNS是訊息導向應用程式的通知服務,有多個訂閱者透過選擇傳輸通訊協定請求和接收「推送」時間關鍵訊息的通知,包括 HTTP、Amazon SQS和電子郵件。您可以在AsyncInferenceConfig使用 指定物件時,在建立EndpointConfig物件時指定 Amazon EndpointConfig SNS主題API。

    請依照步驟建立和訂閱 Amazon SNS主題。

    1. 使用 Amazon SNS主控台建立主題。如需指示,請參閱 Amazon Simple Notification Service 開發人員指南 中的建立 Amazon SNS主題

    2. 訂閱此主題。如需指示,請參閱 Amazon Simple Notification Service 開發人員指南 中的訂閱 Amazon SNS主題

    3. 當您收到要求您確認訂閱主題的電子郵件時,請確認訂閱。

    4. 請注意主題 Amazon Resource Name (ARN)。您建立的 Amazon SNS主題是您 AWS 帳戶中的另一個資源,且具有唯一的 ARN。ARN 採用下列格式:

      arn:aws:sns:aws-region:account-id:topic-name

    如需 Amazon 的詳細資訊SNS,請參閱 Amazon SNS開發人員指南