建立演算法資源 - Amazon SageMaker

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

建立演算法資源

若要建立可用於在 Amazon 中執行訓練任務 SageMaker 和發佈的演算法資源, AWS Marketplace 請指定下列資訊:

  • 包含訓練的 Docker 容器,以及選擇性的推論程式碼。

  • 您的演算法預期用來進行訓練的輸入資料組態。

  • 您演算法支援的超參數。

  • 您的演算法 CloudWatch 在訓練任務期間傳送給 Amazon 的指標。

  • 您演算法支援用來進行訓練和推論的執行個體類型,以及其是否支援不同執行個體間的分散式訓練。

  • 驗證設定檔,這是訓練工作, SageMaker 用來測試演算法的訓練程式碼和批次轉換工作, SageMaker 以測試演算法的推論程式碼。

    為了確保買方和賣方都能夠安心,相信產品能在 SageMaker 中正常運作,我們需要您先驗證您的演算法,才能在 AWS Marketplace上列出它們。只有在驗證成功時,您 AWS Marketplace 才能列出產品。若要驗證演算法,請 SageMaker 使用驗證設定檔和範例資料來執行下列驗證作業:

    1. 在您的帳戶中建立訓練工作,以確認您的訓練映像檔可搭配使用 SageMaker。

    2. 若您在演算法中包含了推論程式碼,請使用演算法的推論映像和訓練任務所產生的模型成品,在您的帳戶中建立模型。

    3. 如果您在演算法中包含推論程式碼,請使用模型在帳戶中建立轉換工作,以確認您的推論映像檔是否可搭配使用。 SageMaker

    當您刊登產品時 AWS Marketplace,此驗證程序的輸入和輸出會保留為您產品的一部分,並可供買家使用。這可協助買家在購買之前了解和評估產品。例如,買家可以檢查您使用的輸入資料、所產生的輸出,以及您程式碼發出的日誌和指標。您的驗證規格越完整,客戶便越能輕鬆地評估您的產品。

    注意

    在您的驗證描述檔中,請只提供您希望公開的資料。

    驗證可能需要耗費數小時。若要查看帳戶中工作的狀態,請在 SageMaker 主控台中查看訓練工作轉換工作頁面。若驗證失敗,您可以從 SageMaker 主控台存取掃描和驗證報告。若發現任何任務,您將必須重新建立演算法。

    注意

    若要在上發佈演算法 AWS Marketplace,至少需要一個驗證描述檔。

您可以使用 SageMaker 主控台或 SageMaker API 建立演算法。

建立演算法資源 (主控台)

建立演算法資源 (主控台)
  1. 請在以下位置開啟 SageMaker 主控台。 https://console.aws.amazon.com/sagemaker/

  2. 從左側選單中選擇訓練

  3. 從下拉式選單中選擇演算法,然後選擇建立演算法

  4. Training specifications (訓練規格) 頁面上,提供以下資訊:

    1. 針對 Algorithm name (演算法名稱),輸入您演算法的名稱。演算法名稱在您的帳戶和 AWS 區域中必須是唯一的。名稱長度必須介於 1 至 64 個字元。有效字元為 a-z、A-Z、0-9 和 - (連字號)。

    2. 輸入您演算法的描述。此說明會顯示在 SageMaker 主控台和中 AWS Marketplace。

    3. 對於訓練影像,請在 Amazon ECR 中輸入存放訓練容器的路徑

    4. 針對 Support distributed training (支援分散式訓練),若您的演算法支援在多個執行個體上進行訓練,請選擇 Yes (是)。否則請選擇 No (否)

    5. 針對 Support instance types for training (支援用於訓練的執行個體類型),請選擇您演算法支援的執行個體類型。

    6. 針對 Channel specification (通道規格),為您的演算法指定最多 8 個輸入資料通道。例如,您可以指定 3 個輸入通道,分別名為 trainvalidationtest。針對每個通道,指定下列資訊:

      1. 針對 Channel name (通道名稱),輸入通道的名稱。名稱長度必須介於 1 至 64 個字元。有效字元為 a-z、A-Z、0-9 和 - (連字號)。

      2. 若要使通道成為您演算法的必要項目,請選擇 Channel required (需要通道)

      3. 輸入通道的描述。

      4. 針對 Supported input modes (支援的輸入模式),若您的演算法支援串流輸入資料,請選擇 Pipe mode (管道模式);若您的演算法支援將輸入資料做為檔案下載,請選擇 File mode (檔案模式)。您可以同時選擇兩者。

      5. 針對 Supported content types (支援的內容類型),請輸入您演算法預期收到的輸入資料 MIME 類型。

      6. 針對 Supported compression type (支援的壓縮類型),若您的演算法支援 Gzip 壓縮,請選擇 Gzip。否則,請選擇 None (無)

      7. 請選擇 Add channel (新增通道) 來新增其他資料輸入通道;或者,若您已完成新增通道,請選擇 Next (下一步)

  5. Tuning specifications (調校規格) 頁面上,提供以下資訊:

    1. 針對 Hyperparameter specification (超參數規格),請編輯 JSON 物件,指定您演算法支援的超參數。針對每個您演算法支援的超參數,請建構與以下內容類似的 JSON 區塊:

      { "DefaultValue": "5", "Description": "The first hyperparameter", "IsRequired": true, "IsTunable": false, "Name": "intRange", "Range": { "IntegerParameterRangeSpecification": { "MaxValue": "10", "MinValue": "1" }, "Type": "Integer" }

      在 JSON 中,請提供以下項目:

      1. 針對 DefaultValue,請指定超參數的預設值 (若有的話)。

      2. 針對 Description,請指定超參數的描述。

      3. 針對 IsRequired,請指定是否需要超參數。

      4. 針對 IsTunable,若可在使用者執行使用此演算法的超參數調校任務時調校此超參數,請指定 true。如需相關資訊,請參閱 執行自動模型調整 SageMaker

      5. 針對 Name,請指定超參數的名稱。

      6. 針對 Range,請指定下列其中一項:

        • IntegerParameterRangeSpecification - 超參數的值為整數。為超參數指定最小值及最大值。

        • ContinuousParameterRangeSpecification - 超參數的值為浮點數值。為超參數指定最小值及最大值。

        • CategoricalParameterRangeSpecification - 超參數的值為類別值。指定所有可能值的清單。

      7. 針對 Type,請指定 IntegerContinuousCategorical。該值必須對應到您所指定的 Range 類型。

    2. 對於指標定義,請指定您希望演算法發出的任何訓練量度。 SageMaker 使用您指定的規則運算式,藉由在訓練期間剖析訓練容器中的記錄檔來尋找指標。使用者可以在使用您的演算法執行訓練任務時檢視這些指標,並且可以在 Amazon 中監控和繪製指標 CloudWatch。如需相關資訊,請參閱 使用 Amazon CloudWatch 指標監控和分析訓練任務。針對每個指標,請提供以下資訊:

      1. 針對 Metric name (指標名稱),輸入指標的名稱。

      2. 對於Regex,請輸入 SageMaker 用來剖析訓練記錄檔的規則運算式,以便找出指標值。

      3. 針對 Objective metric support (目標指標支援),若此指標可以用來做為超參數調校任務的目標指標,請選擇 Yes (是)。如需相關資訊,請參閱 執行自動模型調整 SageMaker

      4. 請選擇 Add metric (新增指標) 來新增其他指標;或者,若您已完成新增指標,請選擇 Next (下一步)

  6. Inference specifications (推論規格) 頁面上,若您的演算法支援推論,請提供以下資訊:

    1. 對於推論影像的位置,請在 Amazon ECR 中輸入存放推論容器的路徑。

    2. 針對 Container DNS host name (容器 DNS 主機名稱),輸入您映像的 DNS 主機名稱。

    3. 針對 Supported instance types for real-time inference (即時推論支援的執行個體類型),請選擇您演算法針對做為 SageMaker 中託管端點部署的模型所支援的執行個體類型。如需相關資訊,請參閱 部署用於推論的模型

    4. 針對 Supported instance types for batch transform jobs (批次轉換任務的支援執行個體類型),請選擇您演算法針對批次轉換任務所支援的執行個體類型。如需相關資訊,請參閱 使用批次轉換來使用 Amazon 執行推論 SageMaker

    5. 針對 Supported content types (支援的內容類型),請輸入您演算法針對推論請求所預期的輸入資料類型。

    6. 針對 Supported response MIME types (支援的回應 MIME 類型),請輸入您演算法針對推論回應支援的 MIME 類型。

    7. 選擇下一步

  7. Validation specifications (驗證規格) 頁面上,提供以下資訊:

    1. 對於「發佈此演算法」 AWS Marketplace,請選擇「是」 以在上發佈演算法 AWS Marketplace。

    2. 對於驗證此資源,如果您想 SageMaker 要執行訓練工作和/或批次轉換工作 (或) 指定來測試演算法的訓練和/或推論程式碼,請選擇 []。

      注意

      若要在上發佈演算法 AWS Marketplace,您的演算法必須經過驗證。

    3. 對於 IAM 角色,請選擇具有執行訓練任務和批次轉換工作所需許可的 IAM 角色 SageMaker,或選擇 [建立新角色] SageMaker 以允許建立已附加AmazonSageMakerFullAccess受管政策的角色。如需相關資訊,請參閱 如何使用 SageMaker 執行角色

    4. 針對 Validation profile (驗證描述檔),請指定下列項目:

      • 驗證描述檔的名稱。

      • Training job definition (訓練任務定義)。這是描述訓練任務的 JSON 區塊。此處的格式與 CreateAlgorithm API 的 TrainingJobDefinition輸入參數相同。

      • Transform job definition (轉換任務定義)。此為描述批次轉換任務的 JSON 區塊。此處的格式與 CreateAlgorithm API 的 TransformJobDefinition輸入參數相同。

    5. 選擇 Create algorithm (建立演算法)

建立演算法資源 (API)

若要使用 SageMaker API 建立演算法資源,請呼叫 CreateAlgorithmAPI。