

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

# 使用 自訂演算法和模型 AWS Marketplace
<a name="your-algorithms-marketplace"></a>

下列各節說明如何建立演算法和模型套件資源，供您在本機使用並發佈至 AWS Marketplace。

**Topics**
+ [建立演算法及模型套件資源](sagemaker-mkt-create.md)
+ [演算法及模型套件資源的使用](sagemaker-mkt-buy.md)

# 建立演算法及模型套件資源
<a name="sagemaker-mkt-create"></a>

在您將訓練和 (或) 推論程式碼封裝在 Docker 容器中後，請建立您可以在 Amazon SageMaker AI 帳戶中使用的演算法和模型套件資源，然後選擇性在 AWS Marketplace上發佈。

**Topics**
+ [建立演算法資源](sagemaker-mkt-create-algo.md)
+ [建立模型套件資源](sagemaker-mkt-create-model-package.md)

# 建立演算法資源
<a name="sagemaker-mkt-create-algo"></a>

您可以建立演算法資源，以搭配使用 Amazon SageMaker AI 中的訓練任務，也可以將其發佈在 AWS Marketplace上。下列各節說明如何使用 AWS 管理主控台 和 SageMaker API 來執行此操作。

若要建立演算法資源，請指定下列資訊：
+ 包含訓練以及可選擇包含推論程式碼的 Docker 容器。
+ 您的演算法預期用於訓練的輸入資料之組態。
+ 您演算法支援的超參數。
+ 您的演算法在訓練工作期間傳送到 Amazon CloudWatch 的指標。
+ 您演算法支援用來進行訓練和推論的執行個體類型，以及其是否支援多個執行個體間的分散式訓練。
+ 驗證設定檔，是 SageMaker AI 用來測試您演算法之訓練程式碼的訓練任務，以及 SageMaker AI 為測試您的演算法之推論程式碼而執行的批次轉換工作。

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

  1. 在您的帳戶中建立訓練任務，驗證您的訓練映像能搭配 SageMaker AI 運作。

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

  1. 若您在演算法中包含推論程式碼，請使用模型在您的帳戶中建立轉換工作，來驗證您的推論映像能搭配 SageMaker AI 運作。

  當您列出您的產品時 AWS Marketplace，此驗證程序的輸入和輸出會保留為產品的一部分，並可供您的買方使用。這可協助買家在購買之前了解和評估產品。例如，買家可以檢查您使用的輸入資料、所產生的輸出，以及您程式碼發出的日誌和指標。您的驗證規格越完整，客戶便越能輕鬆地評估您的產品。
**注意**  
在您的驗證設定檔中，請只提供您要公開的資料。

  驗證可能需要耗費數小時。若要在您的帳戶中查看工作狀態，請在 SageMaker AI 主控台中，參閱**訓練任務**和**轉換工作**頁面。若驗證失敗，您可以從 SageMaker AI 主控台存取掃描和驗證報告。若發現任何任務，您將必須重新建立演算法。
**注意**  
若要在 上發佈您的演算法 AWS Marketplace，至少需要一個驗證設定檔。

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

**Topics**
+ [建立演算法資源 (主控台)](#sagemaker-mkt-create-algo-console)
+ [建立演算法資源 (API)](#sagemaker-mkt-create-algo-api)

## 建立演算法資源 (主控台)
<a name="sagemaker-mkt-create-algo-console"></a>

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

1. 開啟位在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 SageMaker AI 主控台。

1. 從左側選單中選擇**訓練**。

1. 從下拉式選單中選擇**演算法**，然後選擇**建立演算法**。

1. 在**訓練規格**頁面上，提供以下資訊：

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

   1. 輸入您的演算法的描述。此描述會出現在 SageMaker AI 主控台和 AWS Marketplace中。

   1. 對於**訓練映像，請在 Amazon ECR 中輸入存放訓練容器的路徑**。

   1. 針對**支援分散式訓練**，若您的演算法支援在多個執行個體上進行訓練，請選擇**是**。否則請選擇**否**。

   1. 針對**支援用於訓練的執行個體類型**，請選擇您的演算法支援的執行個體類型。

   1. 針對**通道規格**，為您的演算法指定最多 8 個輸入資料通道。例如，您可以指定 3 個輸入通道，分別名為 `train`、`validation` 和 `test`。針對每個通道，指定下列資訊：

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

      1. 若要使通道成為您演算法的必要項目，請選擇**需要通道**。

      1. 輸入通道的描述。

      1. 針對**支援的輸入模式**，若您的演算法支援串流輸入資料，請選擇**管道模式**；若您的演算法支援將輸入資料做為檔案下載，請選擇**檔案模式**。您可以同時選擇兩者。

      1. 針對**支援的內容類型**，請輸入您的演算法預期收到的輸入資料 MIME 類型。

      1. 針對**支援的壓縮類型**，若您的演算法支援 Gzip 壓縮，請選擇 **Gzip**。否則，請選擇**無**。

      1. 請選擇**新增通道**來新增其他資料輸入通道；或者，若您已完成新增通道，請選擇**下一步**。

1. 在**調校規格**頁面上，提供以下資訊：

   1. 針對**超參數規格**，請編輯 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`，請指定超參數的預設值 (若有的話)。

      1. 針對 `Description`，請指定超參數的描述。

      1. 針對 `IsRequired`，請指定是否需要超參數。

      1. 針對 `IsTunable`，若可在使用者執行使用此演算法的超參數調校工作時調校此超參數，請指定 `true`。如需相關資訊，請參閱[使用 SageMaker AI 執行自動模型調校](automatic-model-tuning.md)。

      1. 針對 `Name`，請指定超參數的名稱。

      1. 針對 `Range`，請指定下列其中一項：
         + `IntegerParameterRangeSpecification` - 超參數的值為整數。為超參數指定最小值及最大值。
         + 
         + `ContinuousParameterRangeSpecification` - 超參數的值為浮點數值。為超參數指定最小值及最大值。
         + `CategoricalParameterRangeSpecification` - 超參數的值為類別值。指定所有可能值的清單。

      1. 針對 `Type`，請指定 `Integer`、`Continuous` 或 `Categorical`。該值必須對應到您所指定的 `Range` 類型。

   1. 對於**指標定義**，請指定您希望演算法發出的任何訓練指標。SageMaker AI 會使用您指定的正規表示式，透過在訓練期間剖析訓練容器中的日誌來尋找指標。使用者可以在使用您的演算法執行訓練工作時檢視這些指標，並且可以在 Amazon CloudWatch 中監控和繪製指標。如需相關資訊，請參閱[用於監控和分析訓練任務的 Amazon CloudWatch 指標](training-metrics.md)。針對每個指標，請提供以下資訊：

      1. 針對**指標名稱**，輸入指標的名稱。

      1. 對於 `Regex`，輸入 SageMaker AI 用來剖析訓練日誌，以尋找指標值的正規表示式。

      1. 針對**目標指標支援**，若此指標可以用來做為超參數調校工作的目標指標，請選擇**是**。如需相關資訊，請參閱[使用 SageMaker AI 執行自動模型調校](automatic-model-tuning.md)。

      1. 請選擇**新增指標**來新增其他指標；或者，若您已完成新增指標，請選擇**下一步**。

1. 在**推論規格**頁面上，若您的演算法支援推論，請提供以下資訊：

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

   1. 針對**容器 DNS 主機名稱**，輸入您的映像 DNS 主機名稱。

   1. 針對**即時推論支援的執行個體類型**，請選擇您的演算法對於作為 SageMaker AI 的託管端點部署的模型所支援的執行個體類型。如需相關資訊，請參閱[部署用於推論的模型](deploy-model.md)。

   1. 針對**批次轉換工作支援的執行個體類型**，請選擇您的演算法針對批次轉換工作所支援的執行個體類型。如需相關資訊，請參閱[使用 Amazon SageMaker AI 進行批次轉換以進行推論](batch-transform.md)。

   1. 針對**支援的內容類型**，請輸入您的演算法預期用於推論請求的輸入資料類型。

   1. 針對**支援的回應 MIME 類型**，請輸入您的演算法針對推論回應支援的 MIME 類型。

   1. 選擇**下一步**。

1. 在**驗證規格**頁面上，提供以下資訊：

   1. 對於在 **上發佈此演算法 AWS Marketplace**，選擇**是**以在 上發佈演算法 AWS Marketplace。

   1. 對於**驗證此資源**，如果您希望 SageMaker AI 執行訓練任務及／或批次轉換工作來測試演算法的訓練及／或推論程式碼，請選擇**是**。
**注意**  
若要在 上發佈您的演算法 AWS Marketplace，您的演算法必須經過驗證。

   1. 針對 **IAM 角色**，請選擇擁有必要許可能在 SageMaker AI 中執行訓練任務和批次轉換工作的 IAM 角色，或是選擇**建立新角色**來允許 SageMaker AI 建立已連接 `AmazonSageMakerFullAccess` 受管政策的角色。如需相關資訊，請參閱[如何使用 SageMaker AI 執行角色](sagemaker-roles.md)。

   1. 針對**驗證設定檔**，請指定下列項目：
      + 驗證設定檔的名稱。
      + **訓練工作定義**。這是描述訓練工作的 JSON 區塊。此處的格式與 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html) 輸入參數相同。
      + **轉換工作定義**。此為描述批次轉換工作的 JSON 區塊。此處的格式與 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html) 輸入參數相同。

   1. 選擇**建立演算法**。

## 建立演算法資源 (API)
<a name="sagemaker-mkt-create-algo-api"></a>

若要使用 SageMaker API 建立演算法資源，請呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API。

# 建立模型套件資源
<a name="sagemaker-mkt-create-model-package"></a>

若要建立模型套件資源，您可以使用此資源在 Amazon SageMaker AI 中建立可部署模型，並在 上發佈，請 AWS Marketplace 指定下列資訊：
+ 包含推論程式碼的 Docker 容器，或是用來訓練模型的演算法資源。
+ 模型成品的位置。模型成品可以封裝在與推論程式碼相同的 Docker 容器中，或是存放在 Amazon S3 內。
+ 您的模型套件針對即時推論和批次轉換工作所支援的執行個體類型。
+ 驗證設定檔，即 SageMaker AI 執行以用來測試您的模型套件推論程式碼的批次轉換工作。

  在 上列出模型套件之前 AWS Marketplace，您必須驗證它們。這可確保買方和賣方都能安心，相信產品能夠在 Amazon SageMaker AI 上正常運作。 AWS Marketplace 只有在驗證成功時，您才能在 上列出產品。

  驗證程序會使用您的驗證設定檔及範例資料，來執行下列驗證任務：

  1. 使用模型套件的推論映像及存放在 Amazon S3 中的選用模型成品，在您的帳戶中建立模型。
**注意**  
模型套件是專屬於您建立它們的區域。儲存模型成品的 S3 儲存貯體必須位在您建立模型套件的相同區域。

  1. 使用模型在您的帳戶中建立轉換工作，來驗證您的推論映像能夠搭配 SageMaker AI 運作。

  1. 建立驗證設定檔。
**注意**  
在您的驗證設定檔中，請只提供您要公開的資料。

  驗證可能需要耗費數小時。若要在您的帳戶中查看工作狀態，請在 SageMaker AI 主控台中，參閱**轉換工作**頁面。若驗證失敗，您可以從 SageMaker AI 主控台存取掃描和驗證報告。在修復問題之後，請重新建立演算法。演算法狀態為 `COMPLETED` 時，請在 SageMaker AI 主控台中尋找它，然後啟動列出程序
**注意**  
若要在 上發佈模型套件 AWS Marketplace，至少需要一個驗證設定檔。

您可以使用 SageMaker AI 主控台或使用 SageMaker API 來建立模型套件。

**Topics**
+ [建立模型套件資源 (主控台)](#sagemaker-mkt-create-model-pkg-console)
+ [建立模型套件資源 (API)](#sagemaker-mkt-create-model-pkg-api)

## 建立模型套件資源 (主控台)
<a name="sagemaker-mkt-create-model-pkg-console"></a>

**在 SageMaker AI 主控台建立模型套件：**

1. 開啟位在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 SageMaker AI 主控台。

1. 從左側選單中選擇**推論**。

1. 選擇**市集模型套件**，然後選擇**建立市集模型套件**。

1. 在**推論規格**頁面上，提供以下資訊：

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

   1. 輸入您的模型套件的描述。此描述會出現在 SageMaker AI 主控台和 AWS Marketplace中。

   1. 針對**推論規格選項**，請選擇**提供推論映像和模型成品的位置**，使用推論容器和模型成品來建立模型套件。選擇**提供用來訓練的演算法及其模型成品**，從您建立或從 AWS Marketplace訂閱的演算法資源建立模型套件。

   1. 如果您針對**推論規格選項**選擇**提供推論映像和模型成品的位置**，請為**容器定義**和**支援的資源**提供下列資訊：

      1. 針對**推論映像位置**，輸入包含您的推論程式碼的映像路徑。請務必將該映像做為 Docker 容器存放在 Amazon ECR 中。

      1. 針對**模型資料成品位置**，輸入您存放模型成品的 S3 位置。

      1. 針對**容器 DNS 主機名稱**，輸入您針對容器所使用的 DNS 主機名稱。

      1. 針對**即時推論支援的執行個體類型**，請選擇您的模型套件針對 SageMaker AI 託管端點的即時推論所支援的執行個體類型。

      1. 針對**批次轉換任工作支援的執行個體類型**，請選擇您模型套件針對批次轉換工作所支援的執行個體類型。

      1. 針對**支援的內容類型**，請輸入您模型套件針對推論請求所預期的內容類型。

      1. 針對**支援的回應 MIME 類型**，請輸入您的模型套件用來提供推論的 MIME 類型。

   1. 如果您針對**推論規格選項**選擇**提供用於訓練的演算法及其模型成品**，請提供下列資訊：

      1. 針對**演算法 ARN**，請輸入用來建立模型套件的演算法資源 Amazon Resource Name (ARN)。

      1. 針對**模型資料成品位置)**，輸入您存放模型成品的 S3 位置。

   1. 選擇**下一步**。

1. 在**驗證與掃描**頁面上，提供以下資訊：

   1. 對於在 **上發佈此模型套件 AWS Marketplace**，選擇**是**以在 上發佈模型套件 AWS Marketplace。

   1. 對於**驗證此資源**，如果您希望 SageMaker AI 執行您指定來測試模型套件推論程式碼的批次轉換工作，請選擇**是**。
**注意**  
若要在 上發佈模型套件 AWS Marketplace，您的模型套件必須經過驗證。

   1. 針對 **IAM 角色**，請選擇擁有必要許可能在 SageMaker AI 執行批次轉換工作的 IAM 角色，或是選擇**建立新角色**來允許 SageMaker AI 建立已連接 `AmazonSageMakerFullAccess` 受管政策的角色。如需相關資訊，請參閱[如何使用 SageMaker AI 執行角色](sagemaker-roles.md)。

   1. 針對**驗證設定檔**，請指定下列項目：
      + 驗證設定檔的名稱。
      + **轉換工作定義**。此為描述批次轉換工作的 JSON 區塊。此處的格式與 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html) API 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html) 輸入參數相同。

1. 選擇**建立市集模型套件**。

## 建立模型套件資源 (API)
<a name="sagemaker-mkt-create-model-pkg-api"></a>

若要使用 SageMaker API 建立模型套件，請呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html) API。

# 演算法及模型套件資源的使用
<a name="sagemaker-mkt-buy"></a>

您可以在您的 Amazon SageMaker AI 帳戶中，建立演算法和模型套件作為資源，並且可以在 AWS Marketplace 上尋找及訂閱演算法和模型套件。

使用演算法來：
+ 執行訓練工作。如需相關資訊，請參閱[使用演算法來執行訓練工作](sagemaker-mkt-algo-train.md)。
+ 執行超參數調校工作。如需相關資訊，請參閱[使用演算法來執行超參數調校工作](sagemaker-mkt-algo-tune.md)。
+ 建立模型套件。在您使用演算法資源執行訓練工作或超參數調校工作後，您可以使用這些工作輸出的模型成品及演算法，建立模型套件。如需相關資訊，請參閱[建立模型套件資源](sagemaker-mkt-create-model-package.md)。
**注意**  
如果您訂閱 AWS Marketplace 上的演算法，您必須建立模型套件，才能透過建立託管端點或執行批次轉換工作，使用該套件來取得推論。

![\[市場買方工作流程。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/mkt-buyer-workflow.png)


使用模型套件來：
+ 建立模型，用來取得即時推論或執行批次轉換工作。如需相關資訊，請參閱[使用模型套件來建立模型](sagemaker-mkt-model-pkg-model.md)。
+ 建立託管端點，取得即時推論。如需相關資訊，請參閱[將模型部署至 SageMaker AI 託管服務](ex1-model-deployment.md#ex1-deploy-model)。
+ 建立批次轉換工作。如需相關資訊，請參閱[(選用) 使用批次轉換進行預測](ex1-model-deployment.md#ex1-batch-transform)。

**Topics**
+ [使用演算法來執行訓練工作](sagemaker-mkt-algo-train.md)
+ [使用演算法來執行超參數調校工作](sagemaker-mkt-algo-tune.md)
+ [使用模型套件來建立模型](sagemaker-mkt-model-pkg-model.md)

# 使用演算法來執行訓練工作
<a name="sagemaker-mkt-algo-train"></a>

您可以使用 Amazon SageMaker AI 主控台、低層級 Amazon SageMaker API 或 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)，使用演算法資源來建立訓練任務。

**注意**  
您的執行角色必須擁有您指定之演算法資源的`sagemaker:DescribeAlgorithm`許可。如需執行角色許可的詳細資訊，請參閱 [CreateTrainingJob API：執行角色許可](sagemaker-roles.md#sagemaker-roles-createtrainingjob-perms)。

**Topics**
+ [使用演算法來執行訓練工作 (主控台)](#sagemaker-mkt-algo-train-console)
+ [使用演算法來執行訓練工作 (API)](#sagemaker-mkt-algo-train-api)
+ [使用演算法來執行訓練工作 ([Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable))](#sagemaker-mkt-algo-train-sdk)

## 使用演算法來執行訓練工作 (主控台)
<a name="sagemaker-mkt-algo-train-console"></a>

**使用演算法來執行訓練工作 (主控台)**

1. 開啟位在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 SageMaker AI 主控台。

1. 選擇**演算法**。

1. 從**我的演算法**索引標籤的清單上選擇您建立的演算法，或在**AWS Marketplace 訂閱**索引標籤上選擇您訂閱的演算法。

1. 選擇**建立訓練工作**。

   會自動選取您選擇的演算法。

1. 在**建立訓練工作**頁面上，提供以下資訊：

   1. 針對**工作名稱**，輸入訓練工作的名稱。

   1. 針對 **IAM 角色**，請選擇擁有必要許可，能在 SageMaker AI 中執行訓練任務的 IAM 角色，或是選擇**建立新角色**來允許 SageMaker AI 建立已連接 `AmazonSageMakerFullAccess` 受管政策的角色。如需相關資訊，請參閱[如何使用 SageMaker AI 執行角色](sagemaker-roles.md)。

   1. 針對**資源組態**，提供下列資訊：

      1. 針對**執行個體類型**，選擇要用於訓練的執行個體類型。

      1. 針對**執行個體計數**，輸入要用於訓練工作的機器學習 (ML) 執行個體數量。

      1. 針對**每個執行個體的額外磁碟區 (GB)**，輸入您要佈建的機器學習 (ML) 儲存磁碟區大小。機器學習 (ML) 儲存磁碟區會存放模型成品及累加狀態。

      1. 對於**加密金鑰**，如果您希望 Amazon SageMaker AI 使用 AWS Key Management Service 金鑰來加密連接到訓練執行個體的 ML 儲存磁碟區中的資料，請指定金鑰。

      1. 針對**停止條件**，指定您希望訓練工作執行的時間上限 (以秒、分鐘、小時或天數為單位)。

   1. 針對 **VPC**，選擇您希望允許訓練容器存取的 Amazon VPC。如需詳細資訊，請參閱[讓 SageMaker AI 訓練任務可以存取 Amazon VPC 中的資源](train-vpc.md)。

   1. 針對**超參數**，指定要用於訓練工作的超參數值。

   1. 針對**輸入資料組態**，針對每個用於訓練工作的輸入資料通道，指定下列值。您可以在該演算法的**演算法摘要**頁面的**通道規格**區段下，查看您用於訓練支援的演算法通道，以及每個通道的內容類型、支援的壓縮類型和支援的輸入模式。

      1. 針對**通道名稱**，輸入輸入通道的名稱。

      1. 針對**內容類型**，輸入演算法針對通道所預期的資料內容類型。

      1. 針對**壓縮類型**，選擇要使用的資料壓縮類型 (若有的話)。

      1. 針對**記錄包裝函式**，若演算法預期 `RecordIO` 格式的資料，請選擇 `RecordIO`。

      1. 針對 **S3 資料類型**、**S3 資料分佈類型**及 **S3 位置**，請指定適當的值。如需這些值所代表意義的資訊，請參閱 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html)。

      1. 針對**輸入模式**，選擇**檔案**來從所佈建的機器學習 (ML) 儲存磁碟區下載資料，並將目錄掛載到 Docker 磁碟區。選擇**管道**來直接從 Amazon S3 串流資料到容器。

      1. 若要新增另一個輸入通道，請選擇**新增通道**。若您已完成新增輸入通道，請選擇**完成**。

   1. 針對**輸出**位置，請指定下列值：

      1. 針對 **S3 輸出路徑**，選擇訓練工作存放輸出 (例如模型成品) 的 S3 位置。
**注意**  
您可以使用存放在此位置的模型成品，從訓練工作建立模型或模型套件。

      1. 對於**加密金鑰**，如果您希望 SageMaker AI 使用 AWS KMS 金鑰來加密 S3 位置的靜態輸出資料。

   1. 針對**標籤**，請指定一或多個標籤來管理訓練工作。每個標籤皆包含索引鍵與選用值。每個資源的標籤鍵必須是唯一的。

   1. 選擇**建立訓練工作**來執行訓練工作。

## 使用演算法來執行訓練工作 (API)
<a name="sagemaker-mkt-algo-train-api"></a>

若要使用 SageMaker API，利用演算法來執行訓練工作，請在您傳遞給 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html) 物件的 `AlgorithmName` 欄位中，指定名稱或 Amazon Resource Name (ARN)。如需 SageMaker AI 中訓練模型的資訊，請參閱 [使用 Amazon SageMaker 訓練模型](how-it-works-training.md)。

## 使用演算法來執行訓練工作 ([Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable))
<a name="sagemaker-mkt-algo-train-sdk"></a>

使用您在 上建立或訂閱的演算法 AWS Marketplace 來建立訓練任務、建立`AlgorithmEstimator`物件，並將 Amazon Resource Name (ARN) 或演算法名稱指定為`algorithm_arn`引數的值。然後呼叫估算器的 `fit` 方法。例如：

```
from sagemaker import AlgorithmEstimator
data_path = os.path.join(DATA_DIR, 'marketplace', 'training')

algo = AlgorithmEstimator(
algorithm_arn='arn:aws:sagemaker:us-east-2:012345678901:algorithm/my-algorithm',
        role='SageMakerRole',
        instance_count=1,
        instance_type='ml.c4.xlarge',
        sagemaker_session=sagemaker_session,
        base_job_name='test-marketplace')

train_input = algo.sagemaker_session.upload_data(
path=data_path, key_prefix='integ-test-data/marketplace/train')

algo.fit({'training': train_input})
```

# 使用演算法來執行超參數調校工作
<a name="sagemaker-mkt-algo-tune"></a>

下一節說明如何使用演算法資源在 Amazon SageMaker AI 中執行超參數調校任務。超參數調校工作會透過在您的資料集上，使用您指定的演算法和超參數範圍執行許多訓練工作，來尋找最佳版本的模型。它接著會根據您選擇的指標，選擇可讓模型取得最佳執行結果的超參數值。如需詳細資訊，請參閱[使用 SageMaker AI 執行自動模型調校](automatic-model-tuning.md)。

您可以使用 Amazon SageMaker AI 主控台、低層級 Amazon SageMaker API 或 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)，使用演算法資源來建立超參數調校工作。

**Topics**
+ [使用演算法來執行超參數調校工作 (主控台)](#sagemaker-mkt-algo-tune-console)
+ [使用演算法來執行超參數調校工作 (API)](#sagemaker-mkt-algo-tune-api)
+ [使用演算法來執行超參數調校工作 ([Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable))](#sagemaker-mkt-algo-tune-sdk)

## 使用演算法來執行超參數調校工作 (主控台)
<a name="sagemaker-mkt-algo-tune-console"></a>

**使用演算法來執行超參數調校工作 (主控台)**

1. 開啟位在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 SageMaker AI 主控台。

1. 選擇**演算法**。

1. 從**我的演算法**索引標籤的清單上選擇您建立的演算法，或在**AWS Marketplace 訂閱**索引標籤上選擇您訂閱的演算法。

1. 選擇**建立超參數調校工作**。

   會自動選取您選擇的演算法。

1. 在**建立超參數調校工作**頁面上，提供以下資訊：

   1. 針對**暖啟動**，選擇**啟用暖啟動**來使用先前超參數調校工作的資訊做為此超參數調校工作的起點。如需詳細資訊，請參閱[執行超參數調校任務的暖啟動](automatic-model-tuning-warm-start.md)。

      1. 若您的輸入資料與此超參數調校工作的父系工作相同，請選擇**相同資料及演算法**，或是選擇**傳輸學習**來針對此超參數調校工作使用額外或不同的輸入資料。

      1. 針對**父系超參數調校工作**，選擇最多 5 個超參數調校工作，做為此超參數調校工作的父系。

   1. 針對**超參數調校工作名稱**，輸入調校工作的名稱。

   1. 針對 **IAM 角色**，請選擇擁有必要許可，能在 SageMaker AI 中執行超參數調校工作的 IAM 角色，或是選擇**建立新角色**來允許 SageMaker AI 建立已連接 `AmazonSageMakerFullAccess` 受管政策的角色。如需相關資訊，請參閱[如何使用 SageMaker AI 執行角色](sagemaker-roles.md)。

   1. 針對 **VPC**，選擇您想要允許調校工作啟動以進行存取的訓練工作的 Amazon VPC。如需詳細資訊，請參閱[讓 SageMaker AI 訓練任務可以存取 Amazon VPC 中的資源](train-vpc.md)。

   1. 選擇**下一步**。

   1. 針對**目標指標**，選擇超參數調校工作用來判斷最佳超參數組合的指標，然後選擇是否要最小或最大化此指標。如需詳細資訊，請參閱[檢視最佳訓練任務](automatic-model-tuning-ex-tuning-job.md#automatic-model-tuning-best-training-job)。

   1. 針對**超參數組態**，選擇您希望調校工作搜尋之可調校的超參數範圍，並設定您希望在所有超參數調校工作所啟動訓練工作中維持一致的超參數值。如需詳細資訊，請參閱[定義超參數範圍](automatic-model-tuning-define-ranges.md)。

   1. 選擇**下一步**。

   1. 針對**輸入資料組態**，針對每個用於超參數調校工作的輸入資料通道，指定下列值。您可以在該演算法的**演算法摘要**頁面的**通道規格**區段下，查看您用於超參數調校支援的演算法通道，以及每個通道的內容類型、支援的壓縮類型和支援的輸入模式。

      1. 針對**通道名稱**，輸入輸入通道的名稱。

      1. 針對**內容類型**，輸入演算法針對通道所預期的資料內容類型。

      1. 針對**壓縮類型**，選擇要使用的資料壓縮類型 (若有的話)。

      1. 針對**記錄包裝函式**，若演算法預期 `RecordIO` 格式的資料，請選擇 `RecordIO`。

      1. 針對 **S3 資料類型**、**S3 資料分佈類型**及 **S3 位置**，請指定適當的值。如需這些值所代表意義的資訊，請參閱 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html)。

      1. 針對**輸入模式**，選擇**檔案**來從所佈建的機器學習 (ML) 儲存磁碟區下載資料，並將目錄掛載到 Docker 磁碟區。選擇**管道**來直接從 Amazon S3 串流資料到容器。

      1. 若要新增另一個輸入通道，請選擇**新增通道**。若您已完成新增輸入通道，請選擇**完成**。

   1. 針對**輸出**位置，請指定下列值：

      1. 針對 **S3 輸出路徑**，選擇此超參數調校工作所啟動的訓練工作用來存放輸出 (例如模型成品) 的 S3 位置。
**注意**  
您可以使用存放在此位置的模型成品，從超參數調校工作建立模型或模型套件。

      1. 對於**加密金鑰**，如果您希望 SageMaker AI 使用 AWS KMS 金鑰來加密 S3 位置的靜態輸出資料。

   1. 針對**資源組態**，提供下列資訊：

      1. 針對**執行個體類型**，選擇要針對每個超參數調校工作所啟動訓練工作使用的執行個體類型。

      1. 針對**執行個體計數**，輸入要針對每個超參數調校工作所啟動訓練工作使用的機器學習 (ML) 執行個體數量。

      1. 針對**每個執行個體的額外磁碟區 (GB)**，輸入您希望佈建超參數調校工作所啟動每個訓練工作的機器學習 (ML) 儲存磁碟區大小。機器學習 (ML) 儲存磁碟區會存放模型成品及累加狀態。

      1. 對於**加密金鑰**，如果您希望 Amazon SageMaker AI 使用 AWS Key Management Service 金鑰來加密連接到訓練執行個體的 ML 儲存磁碟區中的資料，請指定 金鑰。

   1. 針對**資源限制**，提供下列資訊：

      1. 針對**訓練工作數量上限**，指定您希望超參數調校工作啟動的訓練工作數量上限。超參數調校工作最多能啟動 500 個訓練任務。

      1. 針對**平行訓練工作數量上限**，指定您希望超參數調校工作啟動的同時訓練工作數量上限。超參數調校工作最多能啟動 10 個同時訓練工作。

      1. 針對**停止條件**，指定您希望超參數調校工作所啟動的每個訓練工作執行時間上限 (秒、分鐘、小時或天數)。

   1. 針對**標籤**，請指定一或多個標籤來管理超參數調校工作。每個標籤皆包含索引鍵與選用值。每個資源的標籤鍵必須是唯一的。

   1. 選擇**建立任務**來執行超參數調校工作。

## 使用演算法來執行超參數調校工作 (API)
<a name="sagemaker-mkt-algo-tune-api"></a>

若要使用 SageMaker API，利用演算法來執行超參數調校工作，請在您傳遞給 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html) 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AlgorithmSpecification.html) 物件的 `AlgorithmName` 欄位中，指定演算法的名稱或 Amazon Resource Name (ARN)。如需 SageMaker AI 中超參數調校的資訊，請參閱 [使用 SageMaker AI 執行自動模型調校](automatic-model-tuning.md)。

## 使用演算法來執行超參數調校工作 ([Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable))
<a name="sagemaker-mkt-algo-tune-sdk"></a>

使用您在 上建立或訂閱的演算法 AWS Marketplace 來建立超參數調校任務、建立 `AlgorithmEstimator` 物件，並將 Amazon Resource Name (ARN) 或演算法名稱指定為`algorithm_arn`引數的值。然後，使用您建立的 `AlgorithmEstimator` 做為 `estimator` 引數的值，初始化 `HyperparameterTuner` 物件。最後，呼叫 `AlgorithmEstimator` 的 `fit` 方法。例如：

```
from sagemaker import AlgorithmEstimator
from sagemaker.tuner import HyperparameterTuner

data_path = os.path.join(DATA_DIR, 'marketplace', 'training')

algo = AlgorithmEstimator(
            algorithm_arn='arn:aws:sagemaker:us-east-2:764419575721:algorithm/scikit-decision-trees-1542410022',
            role='SageMakerRole',
            instance_count=1,
            instance_type='ml.c4.xlarge',
            sagemaker_session=sagemaker_session,
            base_job_name='test-marketplace')

train_input = algo.sagemaker_session.upload_data(
    path=data_path, key_prefix='integ-test-data/marketplace/train')

algo.set_hyperparameters(max_leaf_nodes=10)
tuner = HyperparameterTuner(estimator=algo, base_tuning_job_name='some-name',
                                objective_metric_name='validation:accuracy',
                                hyperparameter_ranges=hyperparameter_ranges,
                                max_jobs=2, max_parallel_jobs=2)

tuner.fit({'training': train_input}, include_cls_metadata=False)
tuner.wait()
```

# 使用模型套件來建立模型
<a name="sagemaker-mkt-model-pkg-model"></a>

使用模型套件來建立可部署模型，用來建立託管端點或執行批次轉換工作以取得即時推論。您可以使用 Amazon SageMaker AI 主控台、低層級 SageMaker API，或是 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)，從模型套件建立可部署模型。

**Topics**
+ [使用模型套件來建立模型 (主控台)](#sagemaker-mkt-model-pkg-model-console)
+ [使用模型套件來建立模型 (API)](#sagemaker-mkt-model-pkg-model-api)
+ [使用模型套件來建立模型 ([Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable))](#sagemaker-mkt-model-pkg-model-sdk)

## 使用模型套件來建立模型 (主控台)
<a name="sagemaker-mkt-model-pkg-model-console"></a>

**從模型套件建立可部署模型 (主控台)**

1. 開啟位在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 SageMaker AI 主控台。

1. 選擇**模型套件**。

1. 從**我的模型套件**索引標籤上的清單中選擇您建立的模型套件，或在 **AWS Marketplace 訂閱**索引標籤上選擇您訂閱的模型套件。

1. 選擇**建立模型**。

1. 針對**模型名稱**，輸入模型的名稱。

1. 針對 **IAM 角色**，請選擇擁有必要許可，可代表您呼叫其他服務的 IAM 角色，或是選擇**建立新角色**來允許 SageMaker AI 建立已連接 `AmazonSageMakerFullAccess` 受管政策的角色。如需相關資訊，請參閱[如何使用 SageMaker AI 執行角色](sagemaker-roles.md)。

1. 針對 **VPC**，選擇您希望允許模型存取的 Amazon VPC。如需詳細資訊，請參閱[讓 SageMaker AI 託管的端點可以存取 Amazon VPC 中的資源](host-vpc.md)。

1. 保留**容器輸入選項** 及**選擇模型套件**的預設值。

1. 針對環境變數，請提供您希望傳遞給模型容器的環境變數名稱及值。

1. 針對**標籤**，請指定一或多個標籤來管理模型。每個標籤皆包含索引鍵與選用值。每個資源的標籤鍵必須是唯一的。

1. 選擇**建立模型**。

在您建立可部署模型後，您可以用它來為即時推論設定端點，或是建立批次轉換工作來取得整個資料集的推論。如需在 SageMaker AI 中託管端點的相關資訊，請參閱[部署用於推論的模型](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html)。

## 使用模型套件來建立模型 (API)
<a name="sagemaker-mkt-model-pkg-model-api"></a>

若要使用 SageMaker API，利用模型套件來建立可部署模型，請在您傳遞給 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API 的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html) 物件的 `ModelPackageName` 欄位中，指定模型套件的名稱或 Amazon Resource Name (ARN)。

在您建立可部署模型後，您可以用它來為即時推論設定端點，或是建立批次轉換工作來取得整個資料集的推論。如需 SageMaker AI 中託管端點的相關資訊，請參閱[部署用於推論的模型](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html)。

## 使用模型套件來建立模型 ([Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable))
<a name="sagemaker-mkt-model-pkg-model-sdk"></a>

若要使用 SageMaker AI Python SDK，利用模型套件建立可部署模型，請初始化 `ModelPackage` 物件，並將模型套件的 Amazon Resource Name (ARN) 作為 `model_package_arn` 引數傳遞。例如：

```
from sagemaker import ModelPackage
model = ModelPackage(role='SageMakerRole',
         model_package_arn='training-job-scikit-decision-trees-1542660466-6f92',
         sagemaker_session=sagemaker_session)
```

在您建立可部署模型後，您可以用它來為即時推論設定端點，或是建立批次轉換工作來取得整個資料集的推論。如需在 SageMaker AI 中託管端點的相關資訊，請參閱[部署用於推論的模型](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html)。