本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
完成先決條件
下列主題說明您在建立非同步端點之前必須完成的先決條件。這些先決條件包括正確存放模型成品、設定具有正確許可的 AWS IAM,以及選取容器映像。
若要完成先決條件
-
建立 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主控台連接的範例。
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在IAM主控台的導覽窗格中,選擇角色 ,然後選擇建立角色 。
-
對於 Select type of trusted entity (選取信任的實體類型),選擇 AWS service ( 服務)。
-
選擇您想要允許擔任此角色的服務。在此情況下,請選擇 SageMaker。然後選擇下一步:許可。
-
這會自動建立IAM政策,以授予 Amazon S3、Amazon ECR和 CloudWatch Logs 等相關服務的存取權。
-
-
選擇下一步:標籤。
-
(選用) 藉由連接標籤做為鍵值對,將中繼資料新增至角色。如需在 中使用標籤的詳細資訊IAM,請參閱標記IAM資源 。
-
選擇下一步:檢閱。
-
輸入角色名稱。
-
如有可能,請輸入角色名稱或角色名稱後綴。您 AWS 帳戶中的角色名稱必須是唯一的。它們無法透過大小寫進行區分。例如,您無法建立名為
PRODROLE
和prodrole
的角色。由於其他 AWS 資源可能會參考角色,因此在建立角色之後,您無法編輯角色的名稱。 -
(選用) 針對 Role description (角色說明),輸入新角色的說明。
-
檢閱角色,然後選擇建立角色。
請注意 SageMaker 角色 ARN。若要ARN使用主控台尋找角色,請執行下列動作:
-
前往IAM主控台: https://console.aws.amazon.com/iam/
-
選擇角色。
-
在搜尋欄位中輸入角色名稱,搜尋您剛建立的角色。
-
設定角色。
-
角色ARN位於摘要頁面頂端。
-
-
將 Amazon SageMaker、Amazon S3 和 Amazon SNS許可新增至您的IAM角色。
建立角色後,將 SageMaker、Amazon S3 和選用的 Amazon SNS許可授予您的IAM角色。
在IAM主控台中選擇角色。在搜尋欄位中輸入角色名稱,以搜尋您建立的角色。
選擇您的角色。
接著,選擇連接政策。
-
Amazon SageMaker 非同步推論需要執行下列動作的許可:
"sagemaker:CreateModel"
、"sagemaker:CreateEndpoint"
、"sagemaker:CreateEndpointConfig"
和"sagemaker:InvokeEndpointAsync"
。這些動作包含在
AmazonSageMakerFullAccess
政策中。將此政策新增至您的IAM角色。在搜尋欄位中搜尋AmazonSageMakerFullAccess
。選取AmazonSageMakerFullAccess
。 選擇連接政策。
接著,選擇連接政策以新增 Amazon S3 許可。
選取建立政策。
選取
JSON
標籤。新增下列政策聲明:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Effect": "Allow", "Resource": "arn:aws:s3:::
bucket_name/*
" } ] }選擇下一步:標籤。
輸入政策名稱。
選擇 建立政策。
重複您完成的相同步驟來新增 Amazon S3 許可,以新增 Amazon SNS許可。對於政策聲明,請連接以下項目:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": "arn:aws:sns:
<region>:<Account_ID>:<SNS_Topic>
" } ] }
-
將您的推論資料 (例如機器學習模型、範例資料) 上傳到 Amazon S3。
-
選取一個預先建立的 Docker 推論影像,或建立您自己的推論 Docker 映像。
SageMaker 為其內建演算法提供容器,並為一些最常見的機器學習架構提供預先建置的 Docker 映像,例如 Apache TensorFlowMXNet PyTorch、 和 Chainer。如需可用 SageMaker映像的完整清單,請參閱可用的深度學習容器映像
。如果您選擇使用 SageMaker 提供的容器,您可以透過設定容器中的環境變數,來增加端點逾時和承載大小。要了解如何為每個架構設定不同的環境變數,請參閱建立一個非同步端點中的建立模型步驟。 如果沒有任何現有 SageMaker 容器符合您的需求,而且您沒有自己的現有容器,您可能需要建立新的 Docker 容器。請參閱具有自訂推論程式碼的容器,瞭解有關如何建立 Docker 映像的資訊。
-
建立 Amazon SNS主題 (選用)
建立 Amazon Simple Notification Service (Amazon SNS) 主題,傳送已完成處理之請求的通知。Amazon SNS是訊息導向應用程式的通知服務,有多個訂閱者透過選擇傳輸通訊協定請求和接收「推送」時間關鍵訊息的通知,包括 HTTP、Amazon SQS和電子郵件。您可以在
AsyncInferenceConfig
使用 指定物件時,在建立EndpointConfig
物件時指定 AmazonEndpointConfig
SNS主題API。請依照步驟建立和訂閱 Amazon SNS主題。
-
使用 Amazon SNS主控台建立主題。如需指示,請參閱 Amazon Simple Notification Service 開發人員指南 中的建立 Amazon SNS主題。
訂閱此主題。如需指示,請參閱 Amazon Simple Notification Service 開發人員指南 中的訂閱 Amazon SNS主題。
-
當您收到要求您確認訂閱主題的電子郵件時,請確認訂閱。
請注意主題 Amazon Resource Name (ARN)。您建立的 Amazon SNS主題是您 AWS 帳戶中的另一個資源,且具有唯一的 ARN。ARN 採用下列格式:
arn:aws:sns:
aws-region:account-id:topic-name
如需 Amazon 的詳細資訊SNS,請參閱 Amazon SNS開發人員指南 。
-