建立推論建議 - Amazon SageMaker AI

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

建立推論建議

使用 適用於 Python (Boto3) 的 AWS SDK 或 AWS CLI,或以互動方式使用 Studio Classic 或 SageMaker AI 主控台,以程式設計方式建立推論建議。指定推論建議的任務名稱、AWS IAM 角色 ARN、輸入組態,以及在模型註冊表中註冊模型時的模型套件 ARN,或是您在先決條件區段中建立模型時的模型名稱和ContainerConfig字典。

適用於 Python (Boto3) 的 AWS SDK

使用 CreateInferenceRecommendationsJob API 開始推論建議任務。將推論建議工作的 JobType 欄位設為 'Default'。此外,請提供下列項目:

  • IAM 角色的 Amazon Resource Name (ARN),可讓 Inference Recommender 代表您執行任務。為 RoleArn 欄位定義此項目。

  • 模型套件 ARN 或模型名稱。Inference Recommender 支援一個模型套件 ARN 或模型名稱作為輸入。請指定下列其中一項:

    • 您在 SageMaker AI 模型註冊表中註冊模型時所建立的版本化模型套件之 ARN。在 InputConfig 欄位中為 ModelPackageVersionArn 定義此項目。

    • 您建立的模型名稱。在 InputConfig 欄位中為 ModelName 定義此項目。此外,請提供 ContainerConfig 字典,其中包含需要提供模型名稱的必要欄位。在 InputConfig 欄位中為 ContainerConfig 定義此項目。在 ContainerConfig 中,您也可以選擇性地將 SupportedEndpointType 欄位指定為 RealTimeServerless。如果您指定此欄位,Inference Recommender 只會傳回該端點類型的建議。如果您未指定此欄位,Inference Recommender 會傳回兩種端點類型的建議。

  • JobName 欄位的 Inference Recommender 推薦任務的名稱。Inference Recommender 任務名稱在 AWS 區域內及您的 AWS 帳戶中必須是唯一的。

匯入 適用於 Python (Boto3) 的 AWS SDK 套件並使用用戶端類別建立 SageMaker AI 用戶端物件。如果您遵循先決條件區段中的步驟,請僅指定下列其中一項:

  • 選項 1:如果您想要使用模型套件 ARN 建立推論建議任務,請將模型套件群組 ARN 儲存在名為 model_package_arn 的變數。

  • 選項 2:如果您想要使用模型名稱和 ContainerConfig 建立推論建議任務,並將模型名稱儲存在名為 model_name 的變數中,且將 ContainerConfig 字典儲存在名為 container_config 變數中。

# Create a low-level SageMaker service client. import boto3 aws_region = '<INSERT>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide only one of model package ARN or model name, not both. # Provide your model package ARN that was created when you registered your # model with Model Registry model_package_arn = '<INSERT>' ## Uncomment if you would like to create an inference recommendations job with a ## model name instead of a model package ARN, and comment out model_package_arn above ## Provide your model name # model_name = '<INSERT>' ## Provide your container config # container_config = '<INSERT>' # Provide a unique job name for SageMaker Inference Recommender job job_name = '<INSERT>' # Inference Recommender job type. Set to Default to get an initial recommendation job_type = 'Default' # Provide an IAM Role that gives SageMaker Inference Recommender permission to # access AWS services role_arn = 'arn:aws:iam::<account>:role/*' sagemaker_client.create_inference_recommendations_job( JobName = job_name, JobType = job_type, RoleArn = role_arn, # Provide only one of model package ARN or model name, not both. # If you would like to create an inference recommendations job with a model name, # uncomment ModelName and ContainerConfig, and comment out ModelPackageVersionArn. InputConfig = { 'ModelPackageVersionArn': model_package_arn # 'ModelName': model_name, # 'ContainerConfig': container_config } )

請參閱 Amazon SageMaker API 參考指南,以取得可傳遞給 CreateInferenceRecommendationsJob 的選用和必要引數之完整清單。

AWS CLI

使用 create-inference-recommendations-job API 開始推論建議任務。將推論建議工作的 job-type 欄位設為 'Default'。此外,請提供下列項目:

  • IAM 角色的 Amazon Resource Name (ARN),可讓 Amazon SageMaker Inference Recommender 代表您執行任務。為 role-arn 欄位定義此項目。

  • 模型套件 ARN 或模型名稱。Inference Recommender 支援一個模型套件 ARN 或模型名稱作為輸入。請指定下列其中一項:

    • 您在模型註冊表中註冊模型時所建立的版本化模型套件之 ARN。在 input-config 欄位中為 ModelPackageVersionArn 定義此項目。

    • 您建立的模型名稱。在 input-config 欄位中為 ModelName 定義此項目。此外,請提供 ContainerConfig 字典,其中包含需要提供模型名稱的必要欄位。在 input-config 欄位中為 ContainerConfig 定義此項目。在 ContainerConfig 中,您也可以選擇性地將 SupportedEndpointType 欄位指定為 RealTimeServerless。如果您指定此欄位,Inference Recommender 只會傳回該端點類型的建議。如果您未指定此欄位,Inference Recommender 會傳回兩種端點類型的建議。

  • job-name 欄位的 Inference Recommender 推薦任務的名稱。Inference Recommender 任務名稱在 AWS 區域內及您的 AWS 帳戶中必須是唯一的。

若要使用模型套件 ARN 建立推論建議任務,請使用下列範例:

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelPackageVersionArn\": \"arn:aws:sagemaker:<region:account:role/*>\", }"

若要使用模型名稱和 ContainerConfig 建立推論建議任務,請使用下列範例。此範例使用 SupportedEndpointType 欄位來指定我們只想傳回即時推論建議:

aws sagemaker create-inference-recommendations-job --region <region>\ --job-name <job_name>\ --job-type Default\ --role-arn arn:aws:iam::<account:role/*>\ --input-config "{ \"ModelName\": \"model-name\", \"ContainerConfig\" : { \"Domain\": \"COMPUTER_VISION\", \"Framework\": \"PYTORCH\", \"FrameworkVersion\": \"1.7.1\", \"NearestModelName\": \"resnet18\", \"PayloadConfig\": { \"SamplePayloadUrl\": \"s3://{bucket}/{payload_s3_key}\", \"SupportedContentTypes\": [\"image/jpeg\"] }, \"SupportedEndpointType\": \"RealTime\", \"DataInputConfig\": \"[[1,3,256,256]]\", \"Task\": \"IMAGE_CLASSIFICATION\", }, }"
Amazon SageMaker Studio Classic

在 Studio Classic 中建立推論建議任務。

  1. 在您的 Studio Classic 應用程式中,選擇首頁圖示 ( Black square icon representing a placeholder or empty image. )。

  2. 在 Studio Classic 的左側邊欄中,選擇模型

  3. 從下拉式清單中選擇模型註冊表,以顯示您已在模型註冊表中註冊的模型。

    左側面板顯示模型群組的清單。此清單包含在您帳戶中註冊至模型註冊表的所有模型群組,包括在 Studio Classic 外部註冊的模型。

  4. 選取您模型群組的名稱。當您選擇模型群組時,Studio Classic 的右側窗格顯示列標題,例如版本設定

    如果您的模型群組中有一或多個模型套件,您會在版本一欄中看到這些模型套件的清單。

  5. 選擇推論建議程式一欄。

  6. 選擇一個 IAM 角色,授予 Inference Recommender 存取 AWS 服務的許可。您可以建立角色並連接 AmazonSageMakerFullAccess IAM 受管政策來完成此作業。或者,也可以讓 Studio Classic 為您建立角色。

  7. 選擇 Get recommendations (取得建議)

    推論建議最多需要 45 分鐘的時間。

    警告

    請勿關閉此索引標籤。如果您關閉此索引標籤,就會取消執行個體建議任務。

SageMaker AI console

透過執行下列動作,透過 SageMaker AI 主控台建立執行個體建議任務:

  1. 前往位在 https://console.aws.amazon.com/sagemaker/ 的 SageMaker AI 主控台。

  2. 在左側導覽窗格中,選擇推論,然後選擇推論建議程式

  3. 推論建議程式任務頁面上,選擇建立任務

  4. 針對步驟 1:模型組態,執行下列動作:

    1. 對於任務類型,選擇預設建議程式任務

    2. 如果您使用的是在 SageMaker AI 模型註冊表中註冊的模型,請開啟從模型註冊表中選擇模型切換鈕並執行下列動作:

      1. 模型群組下拉式清單中,在 SageMaker AI 模型註冊表中選擇模型所在的模型群組。

      2. 模型版本下拉式清單中,選擇所需的模型版本。

    3. 如果您使用的是在 SageMaker AI 中建立的模型,請關閉從模型註冊表中選擇模型切換鈕,然後執行下列動作:

      1. 模型名稱欄位中,輸入 SageMaker AI 模型的名稱。

    4. IAM 角色下拉式清單中,您可以選取具有建立執行個體建議任務所需權限的現有 AWS IAM 角色。或者,如果您沒有現有角色,可以選擇建立新角色以開啟角色建立快顯視窗,SageMaker AI 會將必要的權限新增至您建立的新角色。

    5. 針對用於基準測試承載的 S3 儲存貯體,請輸入您範例承載存檔的 Amazon S3 路徑,其中應包含 Inference Recommender 用於在不同執行個體類型上對模型進行基準測試的範例承載檔案。

    6. 針對承載內容類型,輸入範例承載資料的 MIME 類型。

    7. (選用) 如果您關閉了從模型註冊表中選擇模型切換鈕並指定 SageMaker AI 模型,則針對容器組態,請執行下列操作:

      1. 網域下拉式清單中,選取模型的機器學習領域,例如電腦視覺、自然語言處理或機器學習。

      2. 架構下拉式清單中,選取容器的架構,例如 TensorFlow 或 XGBoost。

      3. 針對架構版本,請輸入容器映像的架構版本。

      4. 最近的模型名稱下拉式清單中,選取大部分與您自己的模型相符的預先訓練模型。

      5. 針對任務下拉式清單,選取模型完成的機器學習任務,例如影像分類或迴歸。

    8. (選用) 對於使用 SageMaker Neo 進行模型編譯,您可以為已使用 SageMaker Neo 編譯的模型設定建議任務。針對資料輸入組態,請以類似 {'input':[1,1024,1024,3]} 的格式輸入模型的正確輸入資料形式。

    9. 選擇下一步

  5. 針對步驟 2:執行個體和環境參數,請執行下列操作:

    1. (選用) 針對選取執行個體進行基準測試,您最多可以選取 8 個要進行基準測試的執行個體類型。如未選取任何執行個體,Inference Recommender 會考量所有執行個體類型。

    2. 選擇下一步

  6. 針對步驟 3:任務參數,請執行下列動作:

    1. (選用) 針對工作名稱欄位,輸入執行個體建議任務的名稱。當您建立任務時,SageMaker AI 會在此名稱的結尾附加一個時間戳記。

    2. (選用) 針對工作描述,輸入該任務的描述。

    3. (選用) 在加密金鑰下拉式清單中,依名稱選擇 AWS KMS 金鑰,或輸入其 ARN 來加密資料。

    4. (選用) 針對最長測試持續時間,請輸入您希望每個測試執行的秒數上限。

    5. (選用) 針對每分鐘調用數上限,請輸入端點在停止建議任務之前每分鐘可達到的請求數量上限。達到此限制後,SageMaker AI 會結束任務。

    6. (選用) 針對 P99 模型延遲閾值 (ms),輸入模型延遲百分位數 (以毫秒為單位)。

    7. 選擇下一步

  7. 針對步驟 4:檢閱任務,檢閱您的組態,然後選擇提交