

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

# 中的機器學習產品 AWS Marketplace
<a name="machine-learning-products"></a>

身為 AWS Marketplace 賣方，您可以建立買方可以部署的機器學習 (ML) 演算法和模型 AWS。本主題提供 中所列 Amazon SageMaker AI 產品類型的相關資訊 AWS Marketplace。

中列出兩種類型的 SageMaker AI 產品 AWS Marketplace：

**模型套件**  
 預先訓練的模型，用於進行不需要買方進一步訓練的預測。

**演算法**  
 需要買方在進行預測之前提供訓練資料的模型。包含訓練演算法。

這些產品可透過 Amazon SageMaker AI 主控台或 提供給買方 AWS Marketplace。買方可以檢閱產品描述、文件、客戶評論、定價和支援資訊。當他們訂閱模型套件產品或演算法產品時，它會新增到 SageMaker AI 主控台上的產品清單中。買方也可以使用 AWS SDKs、 AWS Command Line Interface (AWS CLI) 或 SageMaker AI 主控台來建立完全受管的 REST 推論端點，或在資料批次上執行推論。

 如需使用 Amazon SageMaker AI 建立機器學習產品的支援，請聯絡[AWS Marketplace 賣方營運](https://aws.amazon.com/marketplace/management/contact-us/)團隊。

# 了解機器學習產品
<a name="ml-overview"></a>

 AWS Marketplace 支援兩種使用 Amazon SageMaker AI 的機器學習產品類型。模型套件產品和演算法產品這兩種類型都會產生可部署的推論模型，以進行預測。

## SageMaker AI 模型套件
<a name="ml-amazon-sagemaker-model-package"></a>

 [ Amazon SageMaker AI 模型套件](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-marketplace.html#sagemaker-mkt-model-package)產品包含預先訓練的模型。預先訓練的模型可以部署在 SageMaker AI 中，以即時或批次進行推論或預測。如果有，此產品包含訓練過的推論元件，其中包含模型成品。身為賣方，您可以使用 SageMaker AI 訓練模型，或自攜模型。

## SageMaker AI 演算法
<a name="ml-amazon-sagemaker-algorithm"></a>

 買方可以使用 [SageMaker AI 演算法](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-marketplace.html#sagemaker-mkt-algorithm)產品來執行完整的機器學習工作負載。演算法產品有兩個邏輯元件：訓練和推論。在 SageMaker AI 中，買方會使用自己的資料集，以您的訓練元件建立訓練任務。當訓練元件中的演算法完成時，會產生機器學習模型的模型成品。SageMaker AI 會將模型成品儲存在買方的 Amazon Simple Storage Service (Amazon S3) 儲存貯體中。在 SageMaker AI 中，買方接著可以部署您的推論元件以及這些產生的模型成品，以即時或批次執行推論 （或預測）。

## 部署推論模型
<a name="ml-deploying-an-inference-model"></a>

 無論是從模型套件或演算法建立推論 模型，有兩種方法可以部署它們：
+  **端點**：此方法使用 SageMaker AI 部署模型並建立 API 端點。買方可以使用此端點做為後端服務的一部分，為其應用程式提供支援。將資料傳送至端點時，SageMaker AI 會將資料傳遞至模型容器，並在 API 回應中傳回結果。端點和容器會持續執行，直到買方停止為止。
**注意**  
 在 中 AWS Marketplace，端點方法稱為*即時推論*，而在 SageMaker AI 文件中，它稱為*託管服務*。如需詳細資訊，請參閱[在 Amazon SageMaker AI 中部署模型](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-deployment.html)。
+  **批次轉換任務** – 在此方法中，買方將資料集存放在 Amazon S3 中以進行推論。當批次轉換任務開始時，SageMaker AI 部署模型、將資料從 S3 儲存貯體傳遞至模型的容器，然後將結果傳回至 Amazon S3 儲存貯體。當任務完成時，SageMaker AI 會停止任務。如需詳細資訊，請參閱[使用批次轉換](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform.html)。
**注意**  
 這兩種方法對模型都是透明的，因為 SageMaker AI 會將資料傳遞給模型，並將結果傳回給買方。

# 機器學習產品生命週期
<a name="ml-product-lifecycle"></a>

中的機器學習產品 AWS Marketplace 包含一或多個軟體版本和相關聯的中繼資料。產品組態包含基本屬性，例如名稱、描述、使用說明、定價、分類和搜尋關鍵字。

## 機器學習產品建立程序
<a name="ml-publication-process"></a>

 若要在 中列出機器學習產品 AWS Marketplace，您必須完成下列操作：

1. [在 SageMaker AI 中準備您的產品](ml-prepare-your-product-in-sagemaker.md)

1. [在 中列出您的產品 AWS Marketplace](ml-publishing-your-product-in-aws-marketplace.md)

 建立機器學習產品後，您可以編輯和管理產品。如需詳細資訊，請參閱[管理您的機器學習產品](ml-product-management.md)。

## 機器學習產品狀態
<a name="ml-product-status"></a>

 新產品一開始的可見性有限，只有允許列出的帳戶和產品建立者才能存取。在測試和驗證之後，您可以發佈您的產品，讓所有買方都能在 AWS Marketplace 目錄中使用它。中的產品 AWS Marketplace 可以有下列狀態值：


| 狀態 | 定義 | 
| --- |--- |
| Staging |  此狀態表示您仍在新增資訊的不完整產品。在您第一次儲存並結束自助式體驗後， 會 AWS Marketplace 建立未發佈的產品，其中包含已完成步驟中的資訊。在此狀態中，您可以繼續新增資訊或修改提交的詳細資訊。  | 
| Limited | A product attains this status after it's submitted to AWS Marketplace and passes all validation checks. At this point, the product has a detail page accessible only to your account and allowlisted entities. You can conduct product testing through this detail page. | 
| Public | When you're prepared to make your product visible to buyers for subscription, update the product visibility in the console. Once processed, the product transitions from Limited to Public status. For information about AWS guidelines, see [建立機器學習產品的需求和最佳實務](ml-listing-requirements-and-best-practices.md).  | 
| Restricted |  若要防止新使用者訂閱您的產品，您可以透過更新可見性設定來限制它。受限狀態允許現有的允許清單使用者繼續使用產品，但新使用者將無法再看到它。  | 

 如需詳細資訊或支援，請聯絡[AWS Marketplace 賣方營運團隊](https://aws.amazon.com/marketplace/management/contact-us/)。

# 的機器學習產品定價 AWS Marketplace
<a name="machine-learning-pricing"></a>

您可以從多個可用的定價模型中選擇 Amazon SageMaker AI 產品 AWS Marketplace。訂閱您產品的買方會在自己的 SageMaker AI 中執行它 AWS 帳戶。買方的價格是其 中執行之資源的基礎設施成本 AWS 帳戶 以及您設定之產品定價的組合。下列各節提供有關 中 SageMaker AI 產品的定價模型的資訊 AWS Marketplace

**Topics**
+ [基礎設施定價](#ml-infrastructure-pricing)
+ [軟體定價](#ml-software-pricing)

## 基礎設施定價
<a name="ml-infrastructure-pricing"></a>

買方在使用產品時需負責 SageMaker AI 的所有基礎設施成本。這些成本由 設定 AWS ，並可在 [Amazon SageMaker AI 定價](https://aws.amazon.com/sagemaker/pricing/)頁面上取得。

## 軟體定價
<a name="ml-software-pricing"></a>

您可以決定向買方 AWS Marketplace 收取使用您產品費用的軟體價格。當您將機器學習產品新增至 時，您可以設定定價和條款 AWS Marketplace。

在買方訂閱 AWS Marketplace 之前，每個執行個體類型的所有基礎設施和軟體價格都會在 的產品清單頁面上呈現給買方。

**Topics**
+ [免費定價](#ml-pricing-free)
+ [每小時定價](#ml-pricing-hourly)
+ [推論定價](#ml-pricing-inference)
+ [免費試用](#ml-pricing-free-trial)

### 免費定價
<a name="ml-pricing-free"></a>

您可以選擇免費提供您的產品。在此情況下，買方只會支付基礎設施成本。

### 每小時定價
<a name="ml-pricing-hourly"></a>

您可以為產品提供在 SageMaker AI 中執行之軟體的每個執行個體每小時價格。您可以針對軟體執行所在的每個執行個體類型，收取不同的每小時價格。當買方執行您的軟體時， 會 AWS Marketplace 追蹤用量，然後依此向買方收費。用量會按比例分配到分鐘。

對於*模型套件*產品，買方可以透過兩種不同的方式執行您的軟體。他們可以持續託管端點，以執行即時推論或在資料集上執行批次轉換任務。您可以為買方執行軟體的兩種方式設定不同的定價。

對於*演算法*產品，除了判斷執行推論的價格之外，如前所述，您也可以判斷訓練任務的每小時價格。您可以針對訓練映像支援的每個執行個體類型，收取不同的每小時價格。

### 推論定價
<a name="ml-pricing-inference"></a>

當買方透過託管端點以持續執行即時推論來執行您的軟體時，您可以選擇為每個推論設定價格。

**注意**  
下列 ML 產品類型一律使用每小時定價：  
批次轉換任務
非同步推論端點
演算法產品的訓練任務
您可以獨立於推論定價和彼此設定每種類型的價格。

根據預設，透過推論定價， 會針對端點的每個調用向您的買方 AWS Marketplace 收取費用。不過，在某些情況下，您的軟體會在單一調用中處理一批推論 （也稱為*迷你批次*)。對於端點部署，您可以指出 AWS Marketplace 應該向買方收取該單一調用費用的自訂推論數量。若要這樣做，請在呼叫的 HTTP 回應標頭中包含自訂計量標頭，如下列範例所示。此範例顯示呼叫，向買方收取三個推論的費用。

```
X-Amzn-Inference-Metering: {"Dimension": "inference.count", "ConsumedUnits": 3}
```

**注意**  
對於推論定價， AWS Marketplace 只會向買方收取 HTTP 回應碼為 的請求費用`2XX`。

### 免費試用
<a name="ml-pricing-free-trial"></a>

或者，您可以為您的產品建立免費試用，並定義免費試用的天數。免費試用可以是 5–31 天。在免費試用期間，買方可以視需要執行您的軟體，且不收取您的軟體費用。買方在免費試用期間需支付基礎設施費用。試用期結束後，會向您的一般軟體價格以及基礎設施成本收費。

當買方使用免費試用訂閱產品時，會收到歡迎電子郵件訊息。訊息包含免費試用期限、計算的過期日期，以及取消訂閱的詳細資訊。提醒電子郵件訊息會在過期日期前三天傳送。

如果您在 中提供產品的免費試用 AWS Marketplace，即表示您同意免費試用的特定[退款政策](https://docs.aws.amazon.com/marketplace/latest/userguide/refunds.html#refund-policy)。

**注意**  
如需機器學習的私有優惠相關資訊，請參閱[私有優惠](https://docs.aws.amazon.com/marketplace/latest/userguide/private-offers-overview.html)。

# 中的機器學習產品的服務限制和配額 AWS Marketplace
<a name="ml-service-restrictions-and-limits"></a>

本節說明 中機器學習 (ML) 產品的限制和配額 AWS Marketplace。

**Topics**
+ [網路隔離](#ml-network-isolation)
+ [映像大小](#ml-image-size)
+ [儲存大小](#ml-storage-size)
+ [執行個體大小](#ml-instance-size)
+ [推論的承載大小](#ml-payload-size-for-inference)
+ [推論的處理時間](#ml-processing-time-for-inference)
+ [Service Quotas](#ml-service-quotas)
+ [無伺服器推論](#severless-inference)
+ [受管 Spot 訓練](#ml-managed-spot-training)
+ [Docker 映像和 AWS 帳戶](#ml-docker-images-and-aws-accounts)
+ [從內建演算法或 發佈模型套件 AWS Marketplace](#ml-publishing-model-packages-from-built-in-algorithms-or-aws-marketplace)
+ [支援 AWS 區域 發佈](#ml-supported-aws-regions-for-publishing)

## 網路隔離
<a name="ml-network-isolation"></a>

基於 安全 考量，當  買方 訂閱  您的 容器化 產品 時，Docker 容器 會在沒有網路存取權的隔離環境中 執行。當您建立容器時，請不要依賴透過網際網路進行傳出呼叫，因為它們會失敗。呼叫 AWS 服務 也會失敗。

## 映像大小
<a name="ml-image-size"></a>

您的 Docker 映像大小由 Amazon Elastic Container Registry (Amazon ECR) [服務配額](https://docs.aws.amazon.com/AmazonECR/latest/userguide/service_limits.html)管理。Docker 映像大小會影響訓練任務、批次轉換任務和端點建立期間的啟動時間。為了獲得更好的效能，請維持最佳的 Docker 影像大小。

## 儲存大小
<a name="ml-storage-size"></a>

當您建立端點時，Amazon SageMaker AI 會將 Amazon Elastic Block Store (Amazon EBS) 儲存磁碟區連接至託管端點的每個 ML 運算執行個體。（端點也稱為*即時推論*或 *Amazon SageMaker AI 託管服務*。) 儲存磁碟區的大小取決於執行個體類型。如需詳細資訊，請參閱《*Amazon SageMaker AI 開發人員指南*》中的 [主機執行個體儲存磁碟區](https://docs.aws.amazon.com/sagemaker/latest/dg/host-instance-storage.html)。 

如需批次轉換，請參閱《*Amazon SageMaker AI 開發人員指南*[》中的批次轉換中的儲存](https://docs.aws.amazon.com/sagemaker/latest/dg/batch-transform-storage.html)。

## 執行個體大小
<a name="ml-instance-size"></a>

SageMaker AI 提供多種執行個體類型，這些執行個體類型已針對不同的 ML 使用案例進行最佳化。執行個體類型是由 CPU、GPU、記憶體和聯網容量的不同組合組成。執行個體類型可讓您靈活地選擇適當的資源組合，以建置、訓練和部署 ML 模型。如需詳細資訊，請參閱 [Amazon SageMaker AI ML 執行個體類型](https://aws.amazon.com/sagemaker/pricing/instance-types/)。

## 推論的承載大小
<a name="ml-payload-size-for-inference"></a>

 對於端點，將每次呼叫的輸入資料大小上限限制為 25 MB。無法調整此值。

對於批次轉換，每次調用輸入資料的大小上限為 100 MB。此 值無法調整。

## 推論的處理時間
<a name="ml-processing-time-for-inference"></a>

對於端點，一般回應的每次調用處理時間上限為 60 秒，串流回應則為 8 分鐘。無法調整此值。

對於批次轉換，每次調用的處理時間上限為 60 分鐘。此 值無法調整。

## Service Quotas
<a name="ml-service-quotas"></a>

如需訓練和推論相關配額的詳細資訊，請參閱 [Amazon SageMaker AI Service Quotas](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html#limits_sagemaker)。

## 無伺服器推論
<a name="severless-inference"></a>

在 中發佈的模型套件和演算法 AWS Marketplace 無法部署到為 [Amazon SageMaker AI Serverless Inference ](https://docs.aws.amazon.com/sagemaker/latest/dg/serverless-endpoints.html)設定的端點。針對無伺服器推論設定的端點需要模型具有網路連線能力。所有 AWS Marketplace 模型都以網路隔離方式運作。如需詳細資訊，請參閱[無網路存取](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-security-and-intellectual-property.html#ml-no-network-access)。

## 受管 Spot 訓練
<a name="ml-managed-spot-training"></a>

對於來自 的所有演算法 AWS Marketplace，即使實作[受管 Spot 訓練](https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html) 的檢查點， 的值`MaxWaitTimeInSeconds`也會設為 3，600 秒 (60 分鐘）。無法調整此值。

## Docker 映像和 AWS 帳戶
<a name="ml-docker-images-and-aws-accounts"></a>

若要發佈，映像必須存放在賣方 擁有 AWS 帳戶 的 Amazon ECR 儲存庫中。無法發佈存放在另一個儲存庫中的映像 AWS 帳戶。

## 從內建演算法或 發佈模型套件 AWS Marketplace
<a name="ml-publishing-model-packages-from-built-in-algorithms-or-aws-marketplace"></a>

使用 [Amazon SageMaker AI 內建演算法](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html)或 AWS Marketplace 訂閱演算法從訓練任務建立的模型套件無法發佈。

您仍然可以使用訓練任務中的模型成品，但發佈模型套件需要您自己的推論影像。

## 支援 AWS 區域 發佈
<a name="ml-supported-aws-regions-for-publishing"></a>

AWS Marketplace 支援從 AWS 區域 下列位置發佈模型套件和演算法資源：
+ [ Amazon SageMaker AI 支援的](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) 區域 
+ 預設選擇加入的[可用區域](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) （例如 [ describe-regions](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#ec2-describe-regions) 會傳回 `"OptInStatus": "opt-in-not-required"`) 

發佈模型套件或演算法產品所需的所有資產都必須存放在您選擇發佈的相同區域中。這包含下列項目：
+ 在 Amazon SageMaker AI 中建立的模型套件和演算法資源 
+ 上傳至 Amazon ECR 儲存庫的推論和訓練映像 
+ 存放在 Amazon Simple Storage Service 中並在模型部署期間動態載入模型套件資源的模型成品 （如果有的話） 
+ Amazon S3 中存放的推論和訓練驗證測試資料 

您可以在 SageMaker AI 支援的任何區域中開發和訓練您的產品。但是，您必須先將所有資產複製到 AWS Marketplace 支援從中發佈的區域中並重新建立資源，才能發佈。

# Amazon SageMaker AI 的安全性和智慧財產權
<a name="ml-security-and-intellectual-property"></a>

Amazon SageMaker AI 會針對從中取得的模型和演算法，同時保護您的智慧財產權和買方資料 AWS Marketplace。下列各節提供 SageMaker AI 保護智慧財產權和客戶資料安全性方式的詳細資訊。

**Topics**
+ [保護智慧財產權](#ml-protecting-intellectual-property)
+ [無網路存取](#ml-no-network-access)
+ [客戶資料的安全性](#ml-security-of-customer-data)

## 保護智慧財產權
<a name="ml-protecting-intellectual-property"></a>

 當您建立產品時，程式碼會封裝在 Docker 容器映像中。如需詳細資訊[在 SageMaker AI 中準備您的產品](ml-prepare-your-product-in-sagemaker.md)，請參閱本指南稍後的 。當您上傳容器映像時，映像和成品會在傳輸中和靜態時加密。在發佈之前，也會掃描映像是否有漏洞。

 為了協助保護您的智慧財產權，SageMaker AI 僅允許買方透過 AWS 服務 端點存取您的產品。買方無法直接存取或提取容器映像或模型成品，也無法存取基礎基礎設施。

## 無網路存取
<a name="ml-no-network-access"></a>

 與買方建立的 SageMaker AI 模型和演算法不同，當買方從中啟動您的產品時 AWS Marketplace，模型和演算法無需網路存取即可部署。SageMaker AI 在無法存取網路或 AWS 服務 端點的環境中部署映像。例如，容器映像無法對網際網路、[VPC 端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)或任何其他 上的服務進行傳出 API 呼叫 AWS 服務。

## 客戶資料的安全性
<a name="ml-security-of-customer-data"></a>

 您的產品在買方的 SageMaker AI 中執行 AWS 帳戶。因此，當買方使用您的產品執行資料推論時，身為賣方的您無法存取其資料。

 對於演算法產品，模型成品會在每次訓練任務後由訓練影像輸出。模型成品會存放在買方的帳戶中。當買方使用您的推論映像部署模型時，會使用訓練任務中的模型成品。若要保護模型成品中可能包含的任何智慧財產權，請在輸出前對其進行加密。

**重要**  
 此安全模型可防止您的程式碼在執行時間存取網際網路。因此，您的程式碼無法使用來自網際網路的資源或程式庫，因此請在 Docker 容器映像中封裝您的相依性。如果您選擇加密訓練任務輸出的成品，這尤其重要。無法在執行時間透過網際網路存取用於加密和解密成品的金鑰。它們必須與映像一起封裝。

 如需詳細資訊，請參閱 [Amazon SageMaker AI 中的安全性](https://docs.aws.amazon.com/sagemaker/latest/dg/security.html)。

# 中的機器學習報告 AWS Marketplace
<a name="ml-reporting"></a>

AWS Marketplace 為您的 Amazon SageMaker AI 產品產生報告，其中包含買方、財務、用量和稅金的資料。所有報告都可在 [報告頁面上](https://aws.amazon.com/marketplace/management/reports) AWS Marketplace 管理入口網站 的 中取得。如需詳細資訊，請參閱[賣方報告](https://docs.aws.amazon.com/marketplace/latest/userguide/Reporting.html)。下列各節提供機器學習產品報告的摘要資訊。

**Topics**
+ [每日業務報告](#ml-daily-business-report)
+ [每月收入報告](#ml-monthly-revenue-report)
+ [支出報告](#ml-disbursement-report)
+ [其他報告和分析](#ml-other-reports)

## 每日業務報告
<a name="ml-daily-business-report"></a>

 每日業務報告提供執行個體類型、使用時數、軟體費用收入，以及每個買方和產品的其他詳細資訊。買方可以透過其 AWS 帳戶 ID 來識別。如需詳細資訊，請參閱 [每日業務報告](https://docs.aws.amazon.com/marketplace/latest/userguide/daily-business-report.html)。

## 每月收入報告
<a name="ml-monthly-revenue-report"></a>

 每月收入報告為您提供每月收入，已向您的買方收取使用您的軟體的費用。如需詳細資訊，請參閱 [每月計費營收報告](https://docs.aws.amazon.com/marketplace/latest/userguide/monthly-billed-revenue-report.html)。

## 支出報告
<a name="ml-disbursement-report"></a>

 每月支出報告提供在軟體費用的結算期間代您收取的所有資金明細。報告中反映的總結算金額應與存入您銀行帳戶的金額相符。如需詳細資訊，請參閱 [支出報告](https://docs.aws.amazon.com/marketplace/latest/userguide/monthly-disbursement-report.html)。

## 其他報告和分析
<a name="ml-other-reports"></a>

 如需其他可用的報告，請參閱[賣方報告](https://docs.aws.amazon.com/marketplace/latest/userguide/dashboards.html)。

您也可以使用 [中的賣方交付資料摘要 AWS Marketplace](data-feed-service.md) 提供的 建立自訂報告 AWS Marketplace。

# 在 SageMaker AI 中準備您的產品
<a name="ml-prepare-your-product-in-sagemaker"></a>

您必須先在 Amazon SageMaker AI 中準備產品 AWS Marketplace，才能在 中發佈產品。中列出兩種類型的 SageMaker AI 產品 AWS Marketplace：模型套件和演算法。如需詳細資訊，請參閱[中的機器學習產品 AWS Marketplace](machine-learning-products.md)。本主題概述準備產品所需的三個步驟：

1. [將您的程式碼封裝到 中機器學習產品的映像中 AWS Marketplace](ml-packaging-your-code-into-images.md) – 若要準備模型套件或演算法產品，您必須為產品建立 Docker 容器映像。

1. [將映像上傳至 Amazon Elastic Container Registry](ml-uploading-your-images.md) – 在容器映像中封裝程式碼並在本機測試它們之後，上傳映像並掃描它們是否有已知的漏洞。修正任何漏洞後再繼續。

1.  [建立 Amazon SageMaker AI 資源](ml-creating-your-amazon-sagemaker-resource.md) – 成功掃描映像後，您可以使用它們在 SageMaker AI 中建立模型套件或演算法資源。

# 將您的程式碼封裝到 中機器學習產品的映像中 AWS Marketplace
<a name="ml-packaging-your-code-into-images"></a>

中的機器學習產品 AWS Marketplace 使用 Amazon SageMaker AI 來建立和執行您提供給買方的機器學習邏輯。SageMaker AI 會執行包含邏輯的 Docker 容器映像。SageMaker AI 會在安全且可擴展的基礎設施中執行這些容器。如需詳細資訊，請參閱[Amazon SageMaker AI 的安全性和智慧財產權](ml-security-and-intellectual-property.md)。下列各節提供如何將程式碼封裝至 SageMaker AI 的 Docker 容器映像的相關資訊。

**Topics**
+ [我要建立哪種類型的容器映像？](#ml-which-type-of-container-image-do-i-create)
+ [建立模型套件映像](ml-model-package-images.md)
+ [建立演算法映像](ml-algorithm-images.md)

## 我要建立哪種類型的容器映像？
<a name="ml-which-type-of-container-image-do-i-create"></a>

 容器映像的兩種類型是推論映像和訓練映像。

 若要建立 模型套件產品，您只需要一個推論影像。如需詳細說明，請參閱 [建立模型套件映像](ml-model-package-images.md)。

 若要建立演算法產品，您需要訓練和推論映像。如需詳細說明，請參閱 [建立演算法映像](ml-algorithm-images.md)。

 若要將程式碼正確封裝到容器映像中，容器必須遵循 SageMaker AI 檔案結構。容器必須公開正確的端點，以確保服務可以在您的容器之間傳遞資料。下列各節說明此程序的詳細資訊。

**重要**  
 基於 安全 考量，當  買方 訂閱  您的 容器化產品 時，Docker 容器會在沒有網際網路連線的隔離環境中執行。當您建立容器時，請勿依賴透過網際網路的外撥通話，因為它們會失敗。呼叫 AWS 服務 也會失敗。如需詳細資訊，請參閱 [Amazon SageMaker AI 的安全性和智慧財產權](ml-security-and-intellectual-property.md) 一節。

 或者，建立推論和訓練映像時，請使用[可用深度學習容器映像中的容器](https://aws.amazon.com/releasenotes/available-deep-learning-containers-images/)做為起點。映像已正確封裝不同的機器學習架構。

# 建立模型套件映像
<a name="ml-model-package-images"></a>

Amazon SageMaker AI 模型套件是預先訓練的模型，可進行預測，不需要買方進一步訓練。您可以在 SageMaker AI 中建立模型套件，並在其中發佈您的機器學習產品 AWS Marketplace。下列各節說明如何為其建立模型套件 AWS Marketplace。這包括建立容器映像，以及在本機建置和測試映像。

**Topics**
+ [概觀](#ml-model-package-images-overview)
+ [建立模型套件的推論映像](#ml-creating-an-inference-image-for-model-packages)

## 概觀
<a name="ml-model-package-images-overview"></a>

 模型套件包含下列元件：
+  儲存在 [Amazon Elastic Container Registry](https://aws.amazon.com/ecr/) (Amazon ECR) 中的推論映像 
+  （選用） 模型成品，分別存放在 [Amazon S3](https://aws.amazon.com/s3/) 中 

**注意**  
模型成品是模型用來進行預測的檔案，通常是您自己的訓練程序的結果。成品可以是模型所需的任何檔案類型，但必須使用.tar.gz 壓縮。對於模型套件，它們可以綁定在您的推論映像中，或單獨存放在 Amazon SageMaker AI 中。Amazon S3 中存放的模型成品會在執行時間載入推論容器。發佈模型套件時，這些成品會發佈並存放在買方無法直接存取的 AWS Marketplace 擁有 Amazon S3 儲存貯體中。

**提示**  
如果您的推論模型使用 Gluon、Keras、MXNet、PyTorch、TensorFlow、TensorFlow-Lite 或 ONNX 等深度學習架構建置，請考慮使用 Amazon SageMaker AI Neo。Neo 可以自動最佳化部署到特定系列雲端執行個體類型的推論模型`ml.p2`，例如 `ml.c4`、 和其他。如需詳細資訊，請參閱《*Amazon SageMaker AI 開發人員指南*》中的[使用 Neo 最佳化模型效能](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html)。

下圖顯示發佈和使用模型套件產品的工作流程。

![\[賣方如何建立模型套件映像，以及買方如何使用它的圖表。\]](http://docs.aws.amazon.com/zh_tw/marketplace/latest/userguide/images/ml-model-package-images.png)


為 建立 SageMaker AI 模型套件的工作流程 AWS Marketplace 包括以下步驟：

1. 賣方會建立推論映像 （部署時無法存取網路），並將其推送至 Amazon ECR 登錄檔。

   模型成品可以綁定在推論影像中，也可以單獨存放在 S3 中。

1. 然後，賣方會在 Amazon SageMaker AI 中建立模型套件資源，並發佈其 ML 產品 AWS Marketplace。

1. 買方訂閱 ML 產品並部署模型。
**注意**  
 模型可以部署為即時推論的端點，也可以部署為批次任務，以同時取得整個資料集的預測。如需詳細資訊，請參閱[部署推論模型](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html)。

1. SageMaker AI 會執行推論映像。推論映像中未綁定的任何賣方提供的模型成品都會在執行時間動態載入。

1.  SageMaker AI 使用容器的 HTTP 端點將買方的推論資料傳遞至容器，並傳回預測結果。

## 建立模型套件的推論映像
<a name="ml-creating-an-inference-image-for-model-packages"></a>

本節提供逐步解說，將您的推論程式碼封裝到模型套件產品的推論映像中。程序包含下列步驟：

**Topics**
+ [步驟 1：建立容器映像](#ml-step-1-creating-the-container-image)
+ [步驟 2：在本機建置和測試映像](#ml-step-2-building-and-testing-the-image-locally)

推論映像是包含推論邏輯的 Docker 映像。執行時間的容器公開 HTTP 端點，以允許 SageMaker AI 將資料傳入和傳出您的容器。

**注意**  
 以下是推論映像的封裝程式碼範例。如需詳細資訊，請參閱在 GitHub [上使用 Docker 容器搭配 SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms.html) 和 [AWS Marketplace SageMaker AI 範例](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace)。  
下列範例使用 Web 服務 [Flask](https://pypi.org/project/Flask/) 以簡化操作，而且不視為生產就緒。

### 步驟 1：建立容器映像
<a name="ml-step-1-creating-the-container-image"></a>

 若要讓推論映像與 SageMaker AI 相容，Docker 映像必須公開 HTTP 端點。當您的容器執行時， SageMaker AI 會將要推論的買方輸入傳遞至容器的 HTTP 端點。推論結果會在 HTTP 回應的內文中傳回。

 下列逐步解說使用 Linux Ubuntu 發行版本，在開發環境中使用 Docker CLI。
+ [建立 Web 伺服器指令碼](#ml-create-the-web-server-script)
+ [建立容器執行的指令碼](#ml-create-the-script-for-the-container-run)
+ [建立 `Dockerfile`](#ml-create-the-dockerfile)
+ [封裝或上傳模型成品](#ml-package-or-upload-the-model-artifacts)

#### 建立 Web 伺服器指令碼
<a name="ml-create-the-web-server-script"></a>

 此範例使用稱為 [Flask](https://pypi.org/project/Flask/) 的 Python 伺服器，但您可以使用適用於架構的任何 Web 伺服器。

**注意**  
為了簡化起見，此處使用 [Flask](https://pypi.org/project/Flask/)。它不被視為生產就緒的 Web 伺服器。

 建立 Flask Web 伺服器指令碼，在 SageMaker AI 使用的 TCP 連接埠 8080 上提供兩個 HTTP 端點。以下是兩個預期的端點：
+  `/ping` – SageMaker AI 向此端點發出 HTTP GET 請求，以檢查您的容器是否已準備就緒。當您的容器準備就緒時，它會使用 HTTP 200 回應碼來回應此端點的 HTTP GET 請求。
+  `/invocations` – SageMaker AI 向此端點發出 HTTP POST 請求以進行推論。推論的輸入資料會在請求的內文中傳送。使用者指定的內容類型會在 HTTP 標頭中傳遞。回應的內文是推論輸出。如需逾時的詳細資訊，請參閱 [建立機器學習產品的需求和最佳實務](ml-listing-requirements-and-best-practices.md)。

 **`./web_app_serve.py`** 

```
# Import modules
import json
import re
from flask import Flask
from flask import request
app = Flask(__name__)

# Create a path for health checks
@app.route("/ping")
def endpoint_ping():
  return ""
 
# Create a path for inference
@app.route("/invocations", methods=["POST"])
def endpoint_invocations():
  
  # Read the input
  input_str = request.get_data().decode("utf8")
  
  # Add your inference code between these comments.
  #
  #
  #
  #
  #
  # Add your inference code above this comment.
  
  # Return a response with a prediction
  response = {"prediction":"a","text":input_str}
  return json.dumps(response)
```

在先前的範例中，沒有實際的推論邏輯。針對您的實際推論影像，將推論邏輯新增至 Web 應用程式，以便處理輸入並傳回實際預測。

您的推論映像必須包含所有必要的相依性，因為它將無法存取網際網路，也無法呼叫任何 AWS 服務。

**注意**  
即時和批次推論都會呼叫相同的程式碼

#### 建立容器執行的指令碼
<a name="ml-create-the-script-for-the-container-run"></a>

 建立名為 SageMaker AI `serve` 在執行 Docker 容器映像時執行的指令碼。下列指令碼會啟動 HTTP Web 伺服器。

 **`./serve`** 

```
#!/bin/bash

# Run flask server on port 8080 for SageMaker
flask run --host 0.0.0.0 --port 8080
```

#### 建立 `Dockerfile`
<a name="ml-create-the-dockerfile"></a>

 在建置內容`Dockerfile`中建立 。此範例使用 Ubuntu 18.04，但您可以從適用於架構的任何基礎映像開始。

 `./Dockerfile` 

```
FROM ubuntu:18.04

# Specify encoding
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

# Install python-pip
RUN apt-get update \
&& apt-get install -y python3.6 python3-pip \
&& ln -s /usr/bin/python3.6 /usr/bin/python \
&& ln -s /usr/bin/pip3 /usr/bin/pip;

# Install flask server
RUN pip install -U Flask;

# Add a web server script to the image
# Set an environment to tell flask the script to run
COPY /web_app_serve.py /web_app_serve.py
ENV FLASK_APP=/web_app_serve.py

# Add a script that Amazon SageMaker AI will run
# Set run permissions
# Prepend program directory to $PATH
COPY /serve /opt/program/serve
RUN chmod 755 /opt/program/serve
ENV PATH=/opt/program:${PATH}
```

 會將先前建立的兩個指令碼`Dockerfile`新增至映像。`serve` 指令碼的目錄會新增至 PATH，以便在容器執行時執行。

#### 封裝或上傳模型成品
<a name="ml-package-or-upload-the-model-artifacts"></a>

 從訓練模型到推論影像提供模型成品的兩種方式如下：
+  使用推論映像靜態封裝。
+  在執行時間動態載入。由於它是動態載入的，因此您可以使用相同的映像來封裝不同的機器學習模型。

 如果您想要使用推論影像封裝模型成品，請在 中包含成品`Dockerfile`。

 如果您想要動態載入模型成品，請將這些成品分別存放在 Amazon S3 的壓縮檔案 (.tar.gz) 中。建立模型套件時，請指定壓縮檔案的位置，SageMaker AI 會在執行容器`/opt/ml/model/`時擷取內容並將其複製到容器目錄。發佈模型套件時，這些成品會發佈並存放在買方無法直接存取的擁有 Amazon S3 儲存貯體中 AWS Marketplace 。

### 步驟 2：在本機建置和測試映像
<a name="ml-step-2-building-and-testing-the-image-locally"></a>

 在建置內容中，現在存在下列檔案：
+  `./Dockerfile` 
+  `./web_app_serve.py` 
+  `./serve` 
+  您的推論邏輯和 （選用） 相依性 

 接下來建置、執行和測試容器映像。

#### 建置映像
<a name="ml-build-the-image"></a>

 在建置內容中執行 Docker 命令，以建置和標記映像。此範例使用標籤 `my-inference-image`。

```
sudo docker build --tag my-inference-image ./
```

 執行此 Docker 命令來建置映像後，您應該會看到輸出，因為 Docker 會根據 中的每行建置映像`Dockerfile`。完成後，您應該會看到類似以下內容的內容。

```
Successfully built abcdef123456
Successfully tagged my-inference-image:latest
```

#### 在本機執行
<a name="ml-run-locally"></a>

 建置完成後，您可以在本機測試映像。

```
sudo docker run \
  --rm \
  --publish 8080:8080/tcp \
  --detach \
  --name my-inference-container \
  my-inference-image \
  serve
```

 以下是 命令的詳細資訊：
+ `--rm` – 停止後自動移除容器。
+ `--publish 8080:8080/tcp` – 公開連接埠 8080 以模擬 SageMaker AI 傳送 HTTP 請求的連接埠。
+ `--detach` – 在背景執行容器。
+ `--name my-inference-container` – 為此執行中的容器命名。
+ `my-inference-image` – 執行建置的映像。
+ `serve` – 執行與執行容器時 SageMaker AI 執行的相同指令碼。

 執行此命令後，Docker 會從您建置的推論映像建立容器，並在背景執行。容器會執行`serve`指令碼，這會啟動您的 Web 伺服器以進行測試。

#### 測試 ping HTTP 端點
<a name="ml-test-the-ping-http-endpoint"></a>

 當 SageMaker AI 執行您的容器時，它會定期 ping 端點。 當端點傳回狀態碼為 200 的 HTTP 回應時，它會向 SageMaker AI 發出訊號，表示容器已準備好進行推論。您可以執行下列命令來測試此項目，該命令會測試端點並包含回應標頭。

```
curl --include http://127.0.0.1:8080/ping
```

範例輸出如下所示。

```
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 0
Server: MyServer/0.16.0 Python/3.6.8
Date: Mon, 21 Oct 2019 06:58:54 GMT
```

#### 測試推論 HTTP 端點
<a name="ml-test-the-inference-http-endpoint"></a>

 當容器將 200 狀態碼傳回 ping 表示已準備好時，SageMaker AI 會透過`POST`請求將推論資料傳遞至 `/invocations` HTTP 端點。執行下列命令來測試推論點。

```
curl \
  --request POST \
  --data "hello world" \
  http://127.0.0.1:8080/invocations
```

 範例輸出如下所示。

 `{"prediction": "a", "text": "hello world"}` 

 當這兩個 HTTP 端點正常運作時，推論映像現在與 SageMaker AI 相容。

**注意**  
 模型套件產品的模型有兩種部署方式：即時和批次。在這兩種部署中，SageMaker AI 在執行 Docker 容器時使用相同的 HTTP 端點。

 若要停止容器，請執行下列命令。

```
sudo docker container stop my-inference-container
```

 當您的推論映像準備就緒並經過測試時，您可以繼續 [將映像上傳至 Amazon Elastic Container Registry](ml-uploading-your-images.md)。

# 建立演算法映像
<a name="ml-algorithm-images"></a>

Amazon SageMaker AI 演算法要求買方在進行預測之前，先攜帶自己的資料進行訓練。身為 AWS Marketplace 賣方，您可以使用 SageMaker AI 來建立機器學習 (ML) 演算法和模型，供買方部署 AWS。以下章節說明如何建立演算法映像 AWS Marketplace。這包括建立 Docker 訓練映像以訓練您的演算法，以及包含推論邏輯的推論映像。發佈演算法產品時，需要訓練和推論影像。

**Topics**
+ [概觀](#ml-algorithm-images-overview)
+ [建立演算法的訓練映像](#ml-creating-a-training-image-for-algorithms)
+ [建立演算法的推論映像](#ml-creating-an-inference-image-for-algorithms)

## 概觀
<a name="ml-algorithm-images-overview"></a>

演算法包含下列元件：
+  存放在 [Amazon ECR](https://aws.amazon.com/ecr/) 的訓練映像 
+  儲存在 Amazon Elastic Container Registry (Amazon ECR) 中的推論映像 

**注意**  
 對於演算法產品，訓練容器會產生模型成品，這些成品會在模型部署時載入推論容器中。

下圖顯示發佈和使用演算法產品的工作流程。

![\[賣方如何建立演算法套件映像，以及買方如何使用它的圖表。\]](http://docs.aws.amazon.com/zh_tw/marketplace/latest/userguide/images/ml-algorithm-package-images.png)


為 建立 SageMaker AI 演算法的工作流程 AWS Marketplace 包括以下步驟：

1. 賣方會建立訓練映像和推論映像 （部署時無法存取網路），並將其上傳至 Amazon ECR 登錄檔。

1. 賣方接著會在 Amazon SageMaker AI 中建立演算法資源，並發佈其 ML 產品 AWS Marketplace。

1. 買方訂閱 ML 產品。

1. 買方會使用相容的資料集和適當的超參數值來建立訓練任務。SageMaker AI 會執行訓練映像，並將訓練資料和超參數載入訓練容器。當訓練任務完成時，位於 中的模型成品`/opt/ml/model/`會壓縮並複製到買方的 [Amazon S3](https://aws.amazon.com/s3/) 儲存貯體。

1. 買方會建立模型套件，其中包含 Amazon S3 中所存放訓練的模型成品，並部署模型。

1. SageMaker AI 會執行推論映像、擷取壓縮的模型成品，並將檔案載入推論容器目錄路徑`/opt/ml/model/`，供推論的程式碼使用。

1.  無論模型部署為端點或批次轉換任務，SageMaker AI 都會代表買方將資料傳遞至容器的 HTTP 端點，並傳回預測結果。

**注意**  
 如需詳細資訊，請參閱[訓練模型](https://docs.aws.amazon.com/sagemaker/latest/dg/train-model.html)。

## 建立演算法的訓練映像
<a name="ml-creating-a-training-image-for-algorithms"></a>

 本節提供將訓練程式碼封裝至訓練影像的逐步解說。需要訓練影像才能建立 演算法產品。

 *訓練映像* 是包含訓練演算法的 Docker 映像。容器遵循特定的檔案結構，以允許 SageMaker AI 在您的容器之間複製資料。

 發佈演算法產品時，需要訓練和推論映像。建立訓練映像 之後，您必須建立推論映像。 這兩個映像可以合併為一個映像或保留為個別映像。是否合併或分隔影像由您決定。一般而言，推論比訓練更簡單，您可能想要個別的影像來協助推論效能。

**注意**  
 以下是訓練影像的封裝程式碼範例。如需詳細資訊，請參閱[使用您自己的演算法和模型搭配 AWS Marketplace](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-marketplace.html)  GitHub 上的 和 [AWS Marketplace SageMaker AI 範例](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace)。

**Topics**
+ [步驟 1：建立容器映像](#ml-step-1-creating-the-container-image-1)
+ [步驟 2：在本機建置和測試映像](#ml-step-2-building-and-testing-the-image-locally-1)

### 步驟 1：建立容器映像
<a name="ml-step-1-creating-the-container-image-1"></a>

 為了使訓練映像與 Amazon SageMaker AI 相容，它必須遵守特定檔案結構，以允許 SageMaker AI 將訓練資料和組態輸入複製到容器中的特定路徑。訓練完成時，產生的模型成品會存放在 SageMaker AI 複製來源容器中的特定目錄路徑中。

 以下使用安裝在 Linux Ubuntu 發行版本開發環境中的 Docker CLI。
+ [準備您的程式以讀取組態輸入](#ml-prepare-your-program-to-read-configuration-inputs)
+ [準備您的程式以讀取資料輸入](#ml-prepare-your-program-to-read-data-inputs)
+ [準備您的程式以撰寫訓練輸出](#ml-prepare-your-program-to-write-training-outputs)
+ [建立容器執行的指令碼](#ml-create-the-script-for-the-container-run-1)
+ [建立 `Dockerfile`](#ml-create-the-dockerfile-1)

#### 準備您的程式以讀取組態輸入
<a name="ml-prepare-your-program-to-read-configuration-inputs"></a>

 如果您的訓練計畫需要任何買方提供的組態輸入，則以下是在執行時將這些輸入複製到容器中的位置。如有必要，您的程式必須讀取這些特定檔案路徑。
+  `/opt/ml/input/config` 是 目錄，其中包含控制程式執行方式的資訊。
  +  `hyperparameters.json` 是超參數名稱和值的 JSON 格式字典。這些值是字串，因此您可能需要轉換它們。
  +  `resourceConfig.json` 是 JSON 格式的檔案，描述用於[分散式訓練](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-dist-training)的網路配置。 如果您的訓練映像不支援分散式訓練，您可以忽略此檔案。

**注意**  
 如需組態輸入的詳細資訊，請參閱 [ Amazon SageMaker AI 如何提供訓練資訊](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html)。

#### 準備您的程式以讀取資料輸入
<a name="ml-prepare-your-program-to-read-data-inputs"></a>

 訓練資料可以透過下列兩種模式之一傳送到容器。您在容器中執行的訓練程式會以這兩種模式之一來摘要訓練資料。

 **檔案模式** 
+  `/opt/ml/input/data/<channel_name>/` 包含該頻道的輸入資料。這些頻道是根據對 `CreateTrainingJob`操作的呼叫建立的，但頻道通常必須符合演算法預期的內容。每個頻道的檔案會從 [Amazon S3](https://aws.amazon.com/s3/) 複製到此目錄，保留 Amazon S3 金鑰結構所指示的樹狀結構。

 **管道模式** 
+  `/opt/ml/input/data/<channel_name>_<epoch_number>` 是指定 epoch 的管道。Epoch 從零開始，每次讀取時都會增加 1。您可以執行的 epoch 數目沒有限制，但您必須先關閉每個管道，才能讀取下一個 epoch。

#### 準備您的程式以撰寫訓練輸出
<a name="ml-prepare-your-program-to-write-training-outputs"></a>

 訓練的輸出會寫入下列容器目錄：
+  `/opt/ml/model/` 是您撰寫模型的目錄，或訓練演算法產生的模型成品。您的模型可以是您想要的任何格式。它可以是單一檔案或整個目錄樹狀目錄。SageMaker AI 會將此目錄中的任何檔案封裝為壓縮檔案 (.tar.gz)。此檔案可在 `DescribeTrainingJob` API 操作傳回的 Amazon S3 位置取得。
+  `/opt/ml/output/` 是一個目錄，其中演算法可以撰寫描述任務失敗原因`failure`的檔案。此檔案的內容會在`DescribeTrainingJob`結果的 `FailureReason` 欄位中傳回。對於成功的任務，沒有理由寫入此檔案，因為它會被忽略。

#### 建立容器執行的指令碼
<a name="ml-create-the-script-for-the-container-run-1"></a>

 建立 SageMaker AI 在執行 Docker 容器映像時執行的 `train` Shell 指令碼。當訓練完成且模型成品寫入其個別的目錄時，請結束指令碼。

 **`./train`** 

```
#!/bin/bash

# Run your training program here
#
#
#
#
```

#### 建立 `Dockerfile`
<a name="ml-create-the-dockerfile-1"></a>

 在建置內容`Dockerfile`中建立 。此範例使用 Ubuntu 18.04 作為基礎映像，但您可以從適用於架構的任何基礎映像開始。

 **`./Dockerfile`** 

```
FROM ubuntu:18.04

# Add training dependencies and programs
#
#
#
#
#
# Add a script that SageMaker AI will run
# Set run permissions
# Prepend program directory to $PATH
COPY /train /opt/program/train
RUN chmod 755 /opt/program/train
ENV PATH=/opt/program:${PATH}
```

 會將先前建立的`train`指令碼`Dockerfile`新增至映像。指令碼的目錄會新增至 PATH，以便在容器執行時執行。

 在上一個範例中，沒有實際的訓練邏輯。針對您的實際訓練影像，將訓練相依性新增至 `Dockerfile`，並新增邏輯以讀取訓練輸入，以訓練和產生模型成品。

 您的訓練映像必須包含所有必要的相依性，因為它將無法存取網際網路。

 如需詳細資訊，請參閱[使用您自己的演算法和模型搭配 AWS Marketplace](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-marketplace.html)  GitHub 上的 和 [AWS Marketplace SageMaker AI 範例](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace)。

### 步驟 2：在本機建置和測試映像
<a name="ml-step-2-building-and-testing-the-image-locally-1"></a>

 在建置內容中，現在存在下列檔案：
+ `./Dockerfile`
+ `./train`
+ 您的訓練相依性和邏輯

 接下來，您可以建置、執行和測試此容器映像。

#### 建置映像
<a name="ml-build-the-image-1"></a>

 在建置內容中執行 Docker 命令，以建置和標記映像。此範例使用標籤 `my-training-image`。

```
sudo docker build --tag my-training-image ./
```

 執行此 Docker 命令來建置映像後，您應該會看到輸出，因為 Docker 會根據 中的每行建置映像`Dockerfile`。完成後，您應該會看到類似以下內容的內容。

```
Successfully built abcdef123456
Successfully tagged my-training-image:latest
```

#### 在本機執行
<a name="ml-run-locally-1"></a>

 完成後，請在本機測試映像，如下列範例所示。

```
sudo docker run \
  --rm \
  --volume '<path_to_input>:/opt/ml/input:ro' \
  --volume '<path_to_model>:/opt/ml/model' \
  --volume '<path_to_output>:/opt/ml/output' \
  --name my-training-container \
  my-training-image \
  train
```

 以下是命令詳細資訊：
+  `--rm` – 停止後自動移除容器。
+  `--volume '<path_to_input>:/opt/ml/input:ro'` – 讓容器可使用測試輸入目錄做為唯讀。
+  `--volume '<path_to_model>:/opt/ml/model'` – 訓練測試完成時，繫結掛載模型成品存放在主機機器的路徑。
+  `--volume '<path_to_output>:/opt/ml/output'` – 繫結掛載在主機機器上寫入`failure`檔案中失敗原因的路徑。
+  `--name my-training-container` – 為此執行中的容器命名。
+  `my-training-image` – 執行建置的映像。
+  `train` – 在執行容器時執行相同的指令碼 SageMaker AI 執行。

 執行此命令後，Docker 會從您建置的訓練映像建立容器並執行它。容器會執行`train`指令碼，以啟動您的訓練程式。

 訓練程式完成且容器結束之後，請檢查輸出模型成品是否正確。此外，請檢查日誌輸出以確認它們未產生您不希望的日誌，同時確保提供有關訓練任務的足夠資訊。

 這會完成演算法產品的訓練程式碼封裝。由於演算法產品也包含推論影像，請繼續前往下一節 [建立演算法的推論映像](#ml-creating-an-inference-image-for-algorithms)。

## 建立演算法的推論映像
<a name="ml-creating-an-inference-image-for-algorithms"></a>

 本節提供逐步解說，將您的推論程式碼封裝到演算法 產品的推論映像中。

 推論映像是包含推論邏輯的 Docker 映像。執行時間的容器公開 HTTP 端點，以允許 SageMaker AI 將資料傳入和傳出您的容器。

 發佈演算法產品時，需要訓練和推論映像。 如果您尚未這麼做，請參閱上一節關於 [建立演算法的訓練映像](#ml-creating-a-training-image-for-algorithms)。這兩個影像可以合併為一個影像，或保留為個別影像。是否合併或分隔影像由您決定。一般而言，推論比訓練更簡單，您可能想要個別的影像來協助推論效能。

**注意**  
 以下是推論映像的封裝程式碼範例。如需詳細資訊，請參閱[使用您自己的演算法和模型搭配 AWS Marketplace](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-marketplace.html)  GitHub 上的 和 [AWS Marketplace SageMaker AI 範例](https://github.com/aws/amazon-sagemaker-examples/tree/master/aws_marketplace)。  
下列範例使用 Web 服務 [Flask](https://pypi.org/project/Flask/) 以簡化操作，而且不視為生產就緒。

**Topics**
+ [步驟 1：建立推論映像](#ml-step-1-creating-the-inference-image)
+ [步驟 2：在本機建置和測試映像](#ml-step-2-building-and-testing-the-image-locally-2)

### 步驟 1：建立推論映像
<a name="ml-step-1-creating-the-inference-image"></a>

 若要讓推論映像與 SageMaker AI 相容，Docker 映像必須公開 HTTP 端點。當您的容器執行時， SageMaker AI 會將買方提供的推論輸入傳遞到容器的 HTTP 端點。推論的結果會在 HTTP 回應的內文中傳回。

 以下使用安裝在 Linux Ubuntu 發行版本開發環境中的 Docker CLI。
+ [建立 Web 伺服器指令碼](#ml-create-the-web-server-script-1) 
+ [建立容器執行的指令碼](#ml-create-the-script-for-the-container-run-2)
+ [建立 `Dockerfile`](#ml-create-the-dockerfile-2)
+ [準備您的程式以動態載入模型成品](#ml-preparing-your-program-to-dynamically-load-model-artifacts)

#### 建立 Web 伺服器指令碼
<a name="ml-create-the-web-server-script-1"></a>

 此範例使用稱為 [Flask](https://pypi.org/project/Flask/) 的 Python 伺服器，但您可以使用適用於架構的任何 Web 伺服器。

**注意**  
為了簡化起見，此處使用 [Flask](https://pypi.org/project/Flask/)。它不被視為生產就緒的 Web 伺服器。

 建立 Flask Web 伺服器指令碼，在 SageMaker AI 使用的 TCP 連接埠 8080 上提供兩個 HTTP 端點。以下是兩個預期的端點：
+  `/ping` – SageMaker AI 向此端點發出 HTTP GET 請求，以檢查您的容器是否已準備就緒。當您的容器準備就緒時，它會使用 HTTP 200 回應碼來回應此端點的 HTTP GET 請求。
+  `/invocations` – SageMaker AI 向此端點發出 HTTP POST 請求以進行推論。推論的輸入資料會在請求的內文中傳送。使用者指定的內容類型會在 HTTP 標頭中傳遞。回應的內文是推論輸出。

 **`./web_app_serve.py`** 

```
# Import modules
import json
import re
from flask import Flask
from flask import request
app = Flask(__name__)

# Create a path for health checks
@app.route("/ping")
def endpoint_ping():
  return ""
 
# Create a path for inference
@app.route("/invocations", methods=["POST"])
def endpoint_invocations():
  
  # Read the input
  input_str = request.get_data().decode("utf8")
  
  # Add your inference code here.
  #
  #
  #
  #
  #
  # Add your inference code here.
  
  # Return a response with a prediction
  response = {"prediction":"a","text":input_str}
  return json.dumps(response)
```

 在先前的範例中，沒有實際的推論邏輯。針對您的實際推論影像，將推論邏輯新增至 Web 應用程式，以便處理輸入並傳回預測。

 您的推論映像必須包含所有必要的相依性，因為它將無法存取網際網路。

#### 建立容器執行的指令碼
<a name="ml-create-the-script-for-the-container-run-2"></a>

 建立名為 SageMaker AI `serve` 在執行 Docker 容器映像時執行的指令碼。在此指令碼中，啟動 HTTP Web 伺服器。

 **`./serve`** 

```
#!/bin/bash

# Run flask server on port 8080 for SageMaker AI
flask run --host 0.0.0.0 --port 8080
```

#### 建立 `Dockerfile`
<a name="ml-create-the-dockerfile-2"></a>

 在建置內容`Dockerfile`中建立 。此範例使用 Ubuntu 18.04，但您可以從適用於架構的任何基礎映像開始。

 **`./Dockerfile`** 

```
FROM ubuntu:18.04

# Specify encoding
ENV LC_ALL=C.UTF-8
ENV LANG=C.UTF-8

# Install python-pip
RUN apt-get update \
&& apt-get install -y python3.6 python3-pip \
&& ln -s /usr/bin/python3.6 /usr/bin/python \
&& ln -s /usr/bin/pip3 /usr/bin/pip;

# Install flask server
RUN pip install -U Flask;

# Add a web server script to the image
# Set an environment to tell flask the script to run
COPY /web_app_serve.py /web_app_serve.py
ENV FLASK_APP=/web_app_serve.py

# Add a script that Amazon SageMaker AI will run
# Set run permissions
# Prepend program directory to $PATH
COPY /serve /opt/program/serve
RUN chmod 755 /opt/program/serve
ENV PATH=/opt/program:${PATH}
```

 會將先前建立的兩個指令碼`Dockerfile`新增至映像。`serve` 指令碼的目錄會新增至 PATH，以便在容器執行時執行。

#### 準備您的程式以動態載入模型成品
<a name="ml-preparing-your-program-to-dynamically-load-model-artifacts"></a>

 對於演算法產品，買方會使用自己的資料集搭配您的訓練映像來產生唯一的模型成品。當訓練程序完成時，您的訓練容器會將模型成品輸出至容器目錄` /opt/ml/model/`。SageMaker AI 會將該目錄中的內容壓縮為 .tar.gz 檔案，並將其存放在買方的 Amazon S3 AWS 帳戶 中。

 當模型部署時，SageMaker AI 會執行您的推論映像、從存放在 Amazon S3 中買方帳戶中的 .tar.gz 檔案擷取模型成品，並將其載入 `/opt/ml/model/`目錄中的推論容器中。在執行時間，您的推論容器程式碼會使用模型資料。

**注意**  
 若要保護模型成品檔案中可能包含的任何智慧財產權，您可以選擇先加密檔案再輸出。如需詳細資訊，請參閱[Amazon SageMaker AI 的安全性和智慧財產權](ml-security-and-intellectual-property.md)。

### 步驟 2：在本機建置和測試映像
<a name="ml-step-2-building-and-testing-the-image-locally-2"></a>

 在建置內容中，現在存在下列檔案：
+ `./Dockerfile`
+ `./web_app_serve.py`
+ `./serve`

 接下來，您可以建置、執行和測試此容器映像。

#### 建置映像
<a name="ml-build-the-image-2"></a>

 執行 Docker 命令來建置和標記映像。此範例使用標籤 `my-inference-image`。

```
sudo docker build --tag my-inference-image ./
```

 執行此 Docker 命令來建置映像後，您應該會看到輸出，因為 Docker 會根據 中的每行建置映像`Dockerfile`。完成後，您應該會看到類似以下內容的內容。

```
Successfully built abcdef123456
Successfully tagged my-inference-image:latest
```

#### 在本機執行
<a name="ml-run-locally-2"></a>

 建置完成後，您可以在本機測試映像。

```
sudo docker run \
  --rm \
  --publish 8080:8080/tcp \
  --volume '<path_to_model>:/opt/ml/model:ro' \
  --detach \
  --name my-inference-container \
  my-inference-image \
  serve
```

 以下是命令詳細資訊：
+  `--rm` – 停止後自動移除容器。
+  `--publish 8080:8080/tcp` – 公開連接埠 8080 以模擬 SageMaker AI 傳送 HTTP 請求的連接埠。
+  `--volume '<path_to_model>:/opt/ml/model:ro'` – 將測試模型成品存放在主機機器上的路徑繫結為唯讀，以便可供容器中的推論程式碼使用。
+  `--detach` – 在背景執行容器。
+  `--name my-inference-container` – 為此執行中的容器命名。
+  `my-inference-image` – 執行建置的映像。
+  `serve` – 在執行容器時執行相同的指令碼 SageMaker AI 執行。

 執行此命令後，Docker 會從推論映像建立容器，並在背景執行。容器會執行`serve`指令碼，這會啟動您的 Web 伺服器以進行測試。

#### 測試 ping HTTP 端點
<a name="ml-test-the-ping-http-endpoint-1"></a>

 當 SageMaker AI 執行您的容器時，它會定期 ping 端點。 當端點傳回狀態碼為 200 的 HTTP 回應時，它會向 SageMaker AI 發出訊號，表示容器已準備好進行推論。

 執行下列命令來測試端點並包含回應標頭。

```
curl --include http://127.0.0.1:8080/ping
```

 範例輸出如下列範例所示。

```
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 0
Server: MyServer/0.16.0 Python/3.6.8
Date: Mon, 21 Oct 2019 06:58:54 GMT
```

#### 測試推論 HTTP 端點
<a name="ml-test-the-inference-http-endpoint-1"></a>

 當容器傳回 200 狀態碼表示已準備好時，SageMaker AI 會透過`POST`請求將推論資料傳遞至 `/invocations` HTTP 端點。

 執行下列命令來測試推論端點。

```
curl \
  --request POST \
  --data "hello world" \
  http://127.0.0.1:8080/invocations
```

 範例輸出如下列範例所示。

```
{"prediction": "a", "text": "hello world"}
```

 當這兩個 HTTP 端點正常運作時，推論映像現在與 SageMaker AI 相容。

**注意**  
 演算法產品的模型有兩種部署方式：即時和批次。對於這兩種部署，SageMaker AI 在執行 Docker 容器時使用相同的 HTTP 端點。

 若要停止容器，請執行下列命令。

```
sudo docker container stop my-inference-container
```

 準備好並測試演算法產品的訓練和推論映像後，請繼續 [將映像上傳至 Amazon Elastic Container Registry](ml-uploading-your-images.md)。

# 將映像上傳至 Amazon Elastic Container Registry
<a name="ml-uploading-your-images"></a>

建立推論和訓練映像之後，您可以將它們上傳至 Amazon Elastic Container Registry。[Amazon ECR](https://aws.amazon.com/ecr/)  是全受管 Docker 登錄檔。 Amazon SageMaker AI 會從 Amazon ECR 提取映像，以建立用於推論的模型套件或訓練任務的演算法。 AWS Marketplace 也會從 Amazon ECR 擷取這些映像，以發佈模型套件和演算法產品。本主題提供將推論和訓練映像上傳至 Amazon ECR 的逐步解說

**Topics**
+ [我需要上傳哪些影像？](#ml-which-images-must-i-upload)
+ [需要哪些 IAM 許可？](#ml-what-iam-permissions-are-required)
+ [將您的 Docker 用戶端登入 AWS](#ml-log-in-your-docker-client)
+ [建立儲存庫並上傳映像](#ml-create-repository-and-upload-image)
+ [掃描上傳的映像](#ml-scan-your-uploaded-image)

## 我需要上傳哪些影像？
<a name="ml-which-images-must-i-upload"></a>

 如果您要發佈模型套件，請僅上傳推論映像。如果您要發佈演算法，請同時上傳推論影像和訓練影像。如果推論和訓練映像已合併，則僅上傳合併映像一次。

## 需要哪些 IAM 許可？
<a name="ml-what-iam-permissions-are-required"></a>

 下列步驟假設本機電腦具有賣方中 AWS Identity and Access Management (IAM) 角色或使用者的正確 AWS 登入資料 AWS 帳戶。角色或使用者必須同時為 AWS Marketplace 和 Amazon ECR 設定正確的政策。例如，您可以使用下列 AWS 受管政策：
+  [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSMarketplaceSellerProductsFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSMarketplaceSellerProductsFullAccess.html) – 用於存取 AWS Marketplace 
+  [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ContainerRegistryFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEC2ContainerRegistryFullAccess.html) – 用於存取 Amazon ECR 

**注意**  
這些連結會帶您前往 *AWS 受管政策參考*。

## 將您的 Docker 用戶端登入 AWS
<a name="ml-log-in-your-docker-client"></a>

 為您要從中發佈 AWS 區域 的 設定變數 （請參閱 [支援 AWS 區域 發佈](ml-service-restrictions-and-limits.md#ml-supported-aws-regions-for-publishing))。在此範例中，請使用美國東部 （俄亥俄） 區域。

```
region=us-east-2
```

 執行下列命令，以您的 AWS 帳戶 ID 設定變數。此範例假設 current AWS Command Line Interface (AWS CLI) 登入資料屬於賣方的 AWS 帳戶。

```
account=$(aws sts get-caller-identity --query Account --output text)
```

 若要使用您區域的 AWS 帳戶 Amazon ECR Docker 登錄檔來驗證 Docker CLI 用戶端，請執行下列命令。

```
aws ecr get-login-password \
--region ${region} \
| sudo docker login \
--username AWS \
--password-stdin \
${account}.dkr.ecr.${region}.amazonaws.com
```

## 建立儲存庫並上傳映像
<a name="ml-create-repository-and-upload-image"></a>

 為上傳影像的標籤設定變數，並為上傳影像儲存庫的名稱設定另一個變數。

```
image=my-inference-image
repo=my-inference-image
```

**注意**  
 在本指南先前建置推論和訓練影像的章節中，它們分別標記為 **my-inference-image** 和 **my-training-image**。在此範例中，建立推論映像並將其上傳至同名的儲存庫。

 執行下列命令以在 Amazon ECR 中建立映像儲存庫。

```
aws ecr --region ${region} create-repository --repository-name "${repo}"
```

 Amazon ECR 儲存庫位置的完整名稱由下列部分組成： ` <account-id>.dkr.ecr.<region>.amazonaws.com/<image-repository-name>`

 若要將映像推送至儲存庫，您必須使用儲存庫位置的完整名稱來標記映像。

 為映像儲存庫位置的完整名稱以及 `latest`標籤設定變數。

```
fullname="${account}.dkr.ecr.${region}.amazonaws.com/${repo}:latest"
```

 使用完整名稱標記映像。

```
sudo docker tag ${image} ${fullname}
```

 最後，將推論映像推送至 Amazon ECR 中的儲存庫。

```
sudo docker push ${fullname}
```

 上傳完成後，映像會出現在您發佈所在區域中[的 Amazon ECR 主控台儲存庫清單中](https://console.aws.amazon.com/ecr/repositories?region=us-east-2) 。在先前的範例中，映像已推送到美國東部 （俄亥俄） 區域的儲存庫。

## 掃描上傳的映像
<a name="ml-scan-your-uploaded-image"></a>

 在 [Amazon ECR 主控台](https://console.aws.amazon.com/ecr/repositories?region=us-east-2)中，選擇您要從中發佈 AWS 區域 的 ，然後開啟上傳映像的儲存庫。選取您上傳的映像，並開始掃描以檢查已知漏洞。 會在發佈前 AWS Marketplace 檢查 Amazon SageMaker AI 資源中所用容器映像的 Amazon ECR 掃描結果。您必須先修正具有嚴重或高嚴重性漏洞的容器映像，才能建立產品。

 成功掃描映像之後，即可用來建立模型套件或演算法資源。

如果您認為您的產品在掃描中有誤報的錯誤，請聯絡 [AWS Marketplace 賣方營運](https://aws.amazon.com/marketplace/management/contact-us)團隊，並提供錯誤的相關資訊。

 **後續步驟** 
+  請參閱 中的大小限制 [建立機器學習產品的需求和最佳實務](ml-listing-requirements-and-best-practices.md) 
+  繼續前往 [建立 Amazon SageMaker AI 資源](ml-creating-your-amazon-sagemaker-resource.md) 

# 建立 Amazon SageMaker AI 資源
<a name="ml-creating-your-amazon-sagemaker-resource"></a>

 若要發佈模型套件或演算法產品，您必須在 Amazon SageMaker AI 中建立個別[的模型套件資源](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-creating-your-amazon-sagemaker-resource.html#ml-creating-your-model-package-product)或[演算法資源](https://docs.aws.amazon.com/marketplace/latest/userguide/ml-creating-your-amazon-sagemaker-resource.html#ml-creating-your-algorithm-product)。當您為 AWS Marketplace 產品建立資源時，必須透過驗證步驟進行認證。驗證步驟需要您提供資料來測試模型套件或演算法資源，才能發佈。下列各節說明如何建立 SageMaker AI 資源，可以是模型套件資源或演算法資源。這包括設定驗證規格，告知 SageMaker AI 如何執行驗證。

**注意**  
如果您尚未為產品建立映像並將其上傳至 Amazon Elastic Container Registry (Amazon ECR)，請參閱 [將您的程式碼封裝到 中機器學習產品的映像中 AWS Marketplace](ml-packaging-your-code-into-images.md)和 [將映像上傳至 Amazon Elastic Container Registry](ml-uploading-your-images.md) 以取得如何執行此操作的資訊。

**Topics**
+ [建立模型套件](#ml-creating-your-model-package-product)
+ [建立您的演算法](#ml-creating-your-algorithm-product)

## 建立模型套件
<a name="ml-creating-your-model-package-product"></a>

 以下是為 建立模型套件的要求 AWS Marketplace：
+  儲存在 [Amazon ECR](https://aws.amazon.com/ecr/) 中的推論映像 
+  （選用） 模型成品，分別存放在 [Amazon S3](https://aws.amazon.com/s3/) 中 
+ 用於推論的測試資料，存放在 Amazon Simple Storage Service 中 

**注意**  
 以下是關於建立模型套件產品。如需 SageMaker AI 中模型套件的詳細資訊，請參閱[建立模型套件資源](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-create-model-package.html)。

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

下列程序會逐步引導您建立模型套件資源。

**步驟 1：建立模型套件資源**

1. 開啟 [Amazon SageMaker AI 主控台](https://us-east-2.console.aws.amazon.com/sagemaker/home)。

1. 查看頁面右上角 AWS ，確保您位於要從中發佈的區域。如需發佈，請參閱 [支援 AWS 區域 發佈](ml-service-restrictions-and-limits.md#ml-supported-aws-regions-for-publishing)一節。您在先前步驟中上傳至 Amazon ECR 的推論映像必須位於相同的區域。

1. 在左側導覽功能表中，選擇**模型套件**。

1. 選擇 **Create model package (建立模型套件)**。

建立套件之後，您需要設定推論套件的規格。

**步驟 2：設定推論規格**

1.  為您的模型套件提供**名稱** （例如 *my-model-package*)。

1.  針對**推論影像的位置**，輸入已上傳至 Amazon ECR 的 推論影像的 URI。您可以在 [Amazon ECR 主控台](https://us-east-2.console.aws.amazon.com/ecr/repositories)中放置映像來擷取 URI。

1.  如果您的訓練模型成品與推論映像中的邏輯綁定在一起，請將**模型資料成品的位置**保留空白。否則，請指定模型成品壓縮檔案 (.tar.gz) 的完整 Amazon S3 位置。

1.  使用下拉式清單，為即時推論 （也稱為*端點*) 和批次轉換任務選擇支援的推論映像執行個體類型。

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

 在建立和發佈模型套件之前，需要驗證以確保其如預期般運作。這需要您使用測試資料來執行批次轉換任務，以進行您提供的推論。驗證規格會告知 SageMaker AI 如何執行驗證。

**步驟 3：設定驗證規格**

1.  將 **中的發佈此模型套件 AWS Marketplace**設定為**是**。如果您將此設定為**否**，您稍後就無法發佈此模型套件。選擇**是**[可驗證](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-CertifyForMarketplace) 的模型套件 AWS Marketplace ，且需要驗證步驟。

1.  如果這是第一次完成此程序，請選擇為 IAM **角色建立新**角色。 ****Amazon SageMaker AI 會在部署模型套件時使用此角色。這包括動作，例如從 Amazon ECR 提取影像，以及從 Amazon S3 提取成品。檢閱設定，然後選擇**建立角色**。在此 建立角色會將 [ AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) IAM 政策所述的許可授予您建立的角色。

1.  在驗證設定檔中編輯 **JSON**。 如需允許值的詳細資訊，請參閱 [TransformJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html)。

   1.  `TransformInput.DataSource.S3Uri`：將 設定為存放推論測試資料的位置。

   1.  `TransformInput.ContentType`：指定您的測試資料內容類型 （例如 `application/json`、`image/png `、 `text/plain`或任何其他值）。SageMaker AI 不會驗證實際的輸入資料。此值會傳遞至 `Content-type`標頭值中的容器 HTTP 端點。

   1.  `TransformInput.CompressionType`：`None`如果 Amazon S3 中的推論測試資料未壓縮，請將 設定為 。

   1.  `TransformInput.SplitType`：設定為 `None`以將 Amazon S3 中的每個物件整體傳遞以進行推論。

   1.  `TransformOutput.S3OutputPath`：將 設定為存放推論輸出的位置。

   1.  `TransformOutput.AssembleWith`：將 設定為 `None`，將每個推論輸出為 Amazon S3 中的個別物件。

1.  選擇 **Create model package (建立模型套件)**。

 SageMaker AI 從 Amazon ECR 提取推論映像、將任何成品複製到推論容器，並使用測試資料執行批次轉換任務以進行推論。驗證成功後，狀態會變更為**已完成**。

**注意**  
 驗證步驟不會使用您的測試資料評估模型的準確性。驗證步驟會檢查容器是否如預期執行和回應。

 您已完成建立模型產品資源。繼續進行[在 中列出您的產品 AWS Marketplace](ml-publishing-your-product-in-aws-marketplace.md)。

## 建立您的演算法
<a name="ml-creating-your-algorithm-product"></a>

 以下是為 建立演算法的要求 AWS Marketplace：
+ 儲存在 Amazon ECR 中的推論映像 
+ 存放在 Amazon ECR 的訓練映像 
+  您的訓練測試資料，存放在 Amazon S3 中 
+ 您的推論測試資料，存放在 Amazon S3 中 

**注意**  
 下列逐步解說會建立演算法產品。如需詳細資訊，請參閱[建立演算法資源](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-create-algo.html)。

### 建立演算法資源
<a name="ml-create-algorithm"></a>

下列程序會逐步引導您在演算法套件中建立資源。

**步驟 1：建立演算法資源**

1.  開啟 [Amazon SageMaker AI 主控台](https://us-east-2.console.aws.amazon.com/sagemaker/home)。

1.  查看頁面右上角 AWS ，確保您位於要從中發佈的區域 （請參閱 [支援 AWS 區域 發佈](ml-service-restrictions-and-limits.md#ml-supported-aws-regions-for-publishing))。您在先前步驟中上傳至 Amazon ECR 的訓練和推論映像必須位於相同的區域。

1.  在左側導覽功能表中，選擇**演算法**。

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

建立演算法套件之後，您必須設定模型訓練和調校的規格。

**步驟 2：設定訓練和調校規格**

1.  輸入演算法**的名稱** （例如 *my-algorithm*)。

1.  對於**訓練映像**，請貼上 已上傳至 Amazon ECR 的訓練映像的完整 URI 位置。您可以在 [Amazon ECR 主控台](https://us-east-2.console.aws.amazon.com/ecr/repositories)中放置映像來擷取 URI。

1.  使用下拉式方塊，選擇訓練映像支援的訓練**執行個體類型**。

1.  在**頻道規格**區段下，為您的演算法支援的每個輸入資料集新增頻道，最多 20 個頻道的輸入來源。如需詳細資訊，請參閱[輸入資料組態](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-inputdataconfig)。

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

1. 如果您的演算法支援超參數和超參數調校，您必須指定調校參數。

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

**注意**  
 我們強烈建議您的演算法支援超參數調校，並讓適當的參數可調校。這可讓資料科學家調校模型，以取得最佳結果。

設定調校參數之後，如果有，您必須設定推論映像的規格。

**步驟 3：設定推論影像規格**

1.  針對**推論映像的位置**，貼上上傳至 Amazon ECR 的 推論映像的 URI。您可以在 [Amazon ECR 主控台](https://us-east-2.console.aws.amazon.com/ecr/repositories)中放置映像來擷取 URI。

1.  使用下拉式清單，為您的即時推論 （也稱為*端點*) 和批次轉換任務的推論映像選擇支援的執行個體類型。

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

 在建立和發佈您的演算法之前，需要驗證以確保其如預期般運作。這需要您使用訓練的測試資料執行訓練任務，並使用測試資料執行批次轉換任務，以進行您提供的推論。驗證規格會告知 SageMaker AI 如何執行驗證。

**步驟 4：設定驗證規格**

1.  將 **中的發佈此演算法 AWS Marketplace**設定為**是**。如果您將此設定為**否**，您稍後就無法發佈此演算法。選擇**是**[可驗證](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html#sagemaker-CreateAlgorithm-request-CertifyForMarketplace)您的演算法， AWS Marketplace 且需要驗證規格。

1.  如果這是您第一次為 建立機器學習套件 AWS Marketplace，請選擇為 IAM **角色建立新**角色。 ****Amazon SageMaker AI 會在訓練您的演算法和部署後續模型套件時使用此角色。這包括從 Amazon ECR 提取映像、在 Amazon S3 中存放成品，以及從 Amazon S3 複製訓練資料等動作。檢閱設定，然後選擇**建立角色**。在此 建立角色會將 [ AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess) IAM 政策所述的許可授予您建立的角色。

1.  在**訓練任務定義的**驗證設定檔中編輯 **JSON** 檔案。如需允許值的詳細資訊，請參閱 [ TrainingJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html)。

   1.  `InputDataConfig`：在此 JSON 陣列中，為您在訓練規格步驟中指定的每個頻道新增[頻道物件](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Channel.html)。針對每個頻道，指定訓練的測試資料存放 位置。

   1.  `OutputDataConfig`：訓練完成後，訓練容器目錄路徑中的模型成品`/opt/ml/model/`會壓縮並複製到 Amazon S3。指定存放壓縮檔案 (.tar.gz) 的 Amazon S3 位置。

1.  在**轉換 任務定義的**驗證設定檔中編輯 JSON 檔案。如需允許值的詳細資訊，請參閱 [ TransformJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html)。

   1.  `TransformInput.DataSource.S3Uri`：將 設定為存放推論測試資料的位置。

   1.  `TransformInput.ContentType`：指定您的測試資料內容類型。例如，`application/json`、`image/png`、 `text/plain`或任何其他值。Amazon SageMaker AI 不會驗證實際輸入資料。此值會傳遞至 `Content-type`標頭值中的容器 HTTP 端點。

   1.  `TransformInput.CompressionType`：`None`如果 Amazon S3 中的推論測試資料未壓縮，請將 設定為 。

   1.  `TransformInput.SplitType`：選擇您希望 S3 分割中物件的方式。例如， 會將 Amazon S3 中的每個物件整體`None`傳遞以進行推論。如需詳細資訊，請參閱《Amazon SageMaker AI API 參考》中的 [ SplitType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformInput.html#sagemaker-Type-TransformInput-SplitType)。

   1.  `TransformOutput.S3OutputPath`：將 設定為存放推論輸出的位置。

   1.  `TransformOutput.AssembleWith`：將 設定為 `None`，將每個推論輸出為 Amazon S3 中的個別物件。

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

 SageMaker AI 從 Amazon ECR 提取訓練映像，使用您的資料執行測試訓練任務，並將模型成品存放在 Amazon S3 中。然後，它會從 Amazon ECR 提取推論映像、將成品從 Amazon S3 複製到推論容器中，並使用測試資料執行批次轉換任務以進行推論。驗證成功後，狀態會變更為**已完成**。

**注意**  
 驗證步驟不會使用您的測試資料評估訓練或模型的準確性。驗證步驟會檢查容器是否如預期執行和回應。  
驗證步驟只會驗證批次處理。您可以自行驗證即時處理是否適用於您的產品。

 您已完成建立演算法產品資源。繼續進行[在 中列出您的產品 AWS Marketplace](ml-publishing-your-product-in-aws-marketplace.md)。

# 在 中列出您的產品 AWS Marketplace
<a name="ml-publishing-your-product-in-aws-marketplace"></a>

將程式碼封裝成模型套件映像或演算法映像、上傳映像並建立 Amazon SageMaker AI 資源後，您可以在 中發佈機器學習產品 AWS Marketplace。以下各節會逐步引導您完成發佈程序，其中包括建立您的產品清單、測試您的產品，以及簽署以進行發佈。發佈產品後，您可以請求變更以更新您的清單。如需詳細資訊，請參閱[管理您的機器學習產品](ml-product-management.md)。

**Topics**
+ [先決條件](ml-publishing-prereq.md)
+ [步驟 1：建立新的清單](create-new-listing.md)
+ [步驟 2：提供產品資訊](provide-general-info.md)
+ [步驟 3：新增初始產品版本](add-initial-version.md)
+ [步驟 4：設定定價模型](set-pricing-model.md)
+ [步驟 5：設定退款政策](configure-refund-policy.md)
+ [步驟 6：設定 EULA](configure-eula.md)
+ [步驟 7：設定允許清單](configure-allowlist.md)

# 先決條件
<a name="ml-publishing-prereq"></a>

在 中發佈模型套件或演算法之前 AWS Marketplace，您必須具有下列項目：
+  已註冊為 AWS Marketplace 賣方 AWS 帳戶 的 。您可以在 中執行此操作[AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/)。
+  中[設定](https://aws.amazon.com/marketplace/management/seller-settings)頁面下的已完成賣方設定檔 AWS Marketplace 管理入口網站。
+  若要發佈付費產品，您必須完成稅務面試和銀行表單。這對於發佈免費產品並非必要。如需詳細資訊，請參閱[賣方註冊程序](https://docs.aws.amazon.com/marketplace/latest/userguide/registration-process.html)。
+ 您必須具有存取 AWS Marketplace 管理入口網站 和 Amazon SageMaker AI 的許可。如需詳細資訊，請參閱[所需的 許可](#ml-permissions-required)。

## 所需的 許可
<a name="ml-permissions-required"></a>

若要發佈 Amazon SageMaker AI 產品，您必須指定與服務 AWS Marketplace 委託人具有信任關係的有效 IAM 角色 ARN。此外，您以 身分登入的 IAM 使用者或角色需要必要的許可。

**設定登入許可**
+  將下列許可新增至 IAM 角色：

  1. **sagemaker：DescribeModelPackage** — 用於列出模型套件 

  1.  **sagemaker：DescribeAlgorithm** — 用於列出演算法 

------
#### [ JSON ]

****  

     ```
     { 
         "Version":"2012-10-17",		 	 	 
         "Statement": [ 
             { 
                 "Effect": "Allow", 
                 "Action": [ 
                     "sagemaker:DescribeModelPackage", 
                     "sagemaker:DescribeAlgorithm"
                 ],
                 "Resource": "*"  
            }
         ] 
     }
     ```

------

**設定 IAM 角色 AddVersion/Create 產品**

1. 依照步驟建立具有自訂信任政策的角色。如需詳細資訊，請參閱[使用自訂信任政策建立 IAM 角色 （主控台）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-custom.html)。

1. 針對自訂信任政策陳述式輸入下列內容：

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Principal": {
                   "Service": "assets.marketplace.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. 輸入下列許可政策：

------
#### [ JSON ]

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
       "Statement": [ 
           { 
               "Effect": "Allow", 
               "Action": [ 
                   "sagemaker:DescribeModelPackage", 
                   "sagemaker:DescribeAlgorithm"
               ],
               "Resource": "*"  
          }
       ] 
   }
   ```

------

1. 請求時提供角色 ARN。角色應該遵循格式：`arn:aws:iam::<account-id>:role/<role-name>`。

 如需管理賣方帳戶所需的 AWS Marketplace 許可，或 ，請參閱[AWS Marketplace 賣方的政策和許可](https://docs.aws.amazon.com/marketplace/latest/userguide/detailed-management-portal-permissions.html)。

## 必要的資產
<a name="ml-required-assets"></a>

在建立機器學習產品清單之前，請確定您擁有下列必要資產：
+ **Amazon Resource Name (ARN)** — 在您從中發佈的 中提供模型套件或演算法資源 AWS 區域 的 ARN （請參閱 [支援 AWS 區域 發佈](ml-service-restrictions-and-limits.md#ml-supported-aws-regions-for-publishing))。
  +  模型套件的 ARN 具有以下表單： `arn:aws:sagemaker:<region>:<account-id>:model-package/<model-package-name>`

     若要尋找您的模型套件 ARN，請參閱[我的市集模型套件](https://console.aws.amazon.com/sagemaker/home#/model-packages/my-resources)。
  +  演算法的 ARN 具有以下形式： `arn:aws:sagemaker:<region>:<account-id>:algorithm/<algorithm-name>`

     若要尋找您的演算法資源 ARN，請參閱[我的演算法](https://console.aws.amazon.com/sagemaker/home#/algorithms/my-resources)。
+ [用量資訊的需求](ml-listing-requirements-and-best-practices.md#ml-requirements-for-usage-information) — 提供有關輸入、輸出和程式碼範例的詳細資訊。
+  [輸入和輸出的需求](ml-listing-requirements-and-best-practices.md#ml-requirements-for-inputs-and-outputs) — 提供檔案或文字。
+ [Jupyter 筆記本的需求](ml-listing-requirements-and-best-practices.md#ml-requirements-for-jupyter-notebook) — 示範完整的產品用量。

# 步驟 1：建立新的清單
<a name="create-new-listing"></a>

 若要開始使用機器學習產品，您可以透過設定產品名稱、新增組織的選用資源標籤，以及產生產品 ID 來啟動列出程序。產品 ID 用於追蹤您產品的整個生命週期。

**注意**  
 建立清單之前，請確定您擁有 中指定的必要資源[建立機器學習產品的需求和最佳實務](ml-listing-requirements-and-best-practices.md)。

1. 登入您的賣方 AWS 帳戶 並前往 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management)。

1.  在頂端選單中，前往**產品**，然後選擇**機器學習**。

1.  選擇**建立機器學習產品**。

1. 在**產品名稱**下，輸入將向買方顯示在產品清單頁面頂端和搜尋結果中的唯一產品名稱。

1.  （選用） 在**標籤**下，輸入您要與產品建立關聯的任何標籤。如需詳細資訊，請參閱[標記 AWS 資源](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)。

1.  在**產品 ID 和程式碼**下，選擇**產生產品 ID 和程式碼**。

1.  選擇**繼續精靈**。您將開始在精靈中新增詳細產品資訊的程序。

# 步驟 2：提供產品資訊
<a name="provide-general-info"></a>

 在 中列出您的機器學習產品時 AWS Marketplace，提供完整且準確的產品資訊至關重要。使用精靈中的**提供產品資訊**步驟來擷取您產品的基本詳細資訊，例如產品類別和支援資訊。

1.  輸入產品的相關資訊。

1.  選擇**下一步**以移至精靈中的下一個步驟。

# 步驟 3：新增初始產品版本
<a name="add-initial-version"></a>

 此頁面會引導您新增產品的初始版本。您的產品在其整個生命週期中可能有多個版本，每個版本都由唯一的 SageMaker AI ARN 識別。

1.  在 **Amazon Resource Name (ARNs**下：

   1.  輸入模型或演算法 Amazon SageMaker AI ARN。
      +  範例模型套件 ARN： `arn:aws:sagemaker:<region>:<account-id>:model-package/<model-package-name>`

         若要尋找您的模型套件 ARN，請參閱[我的市集模型套件](https://console.aws.amazon.com/sagemaker/home#/model-packages/my-resources)。
      +  演算法 ARN 範例： `arn:aws:sagemaker:<region>:<account-id>:algorithm/<algorithm-name>`

         若要尋找您的演算法資源 ARN，請參閱[我的演算法](https://console.aws.amazon.com/sagemaker/home#/algorithms/my-resources)。

   1.  輸入 IAM 存取角色 ARN。

       IAM ARN 範例： `arn:aws:iam::<account-id>:role/<role-name>`

1.  在**版本資訊**下，輸入**版本名稱**和**版本備註。**

1.  在**模型輸入詳細資訊**下，輸入模型輸入的摘要，並提供即時和批次任務輸入的範例輸入資料。或者，您可以提供任何輸入限制。

1.  （選用） 在**輸入參數**下，提供產品支援的每個輸入參數的詳細資訊。您可以提供參數名稱、描述、限制條件，並指定 參數為必要或選用。您最多可以提供 24 個輸入參數。

1.  （選用） 在**自訂屬性**下，提供產品支援的任何自訂調用參數。對於每個屬性，您可以提供名稱、描述、限制條件，並指定屬性為必要或選用。

1.  在**模型輸出詳細資訊**下，輸入模型輸出的摘要，並提供即時和批次任務輸出的範例輸出資料。或者，您可以提供任何輸出限制。

1.  （選用） 在**輸出參數**下，提供產品支援的每個輸出參數的詳細資訊。您可以提供參數名稱、描述、限制條件，並指定 參數為必要或選用。您最多可以提供 24 個輸出參數。

1.  在**使用說明**下，提供有效使用模型的明確指示，例如最佳實務、如何處理常見的邊緣案例或效能最佳化建議。

1.  在 **Git 儲存庫和筆記本連結**下，提供範例筆記本和 Git 儲存庫的連結。範例筆記本應包含如何叫用您的模型。您的 Git 儲存庫應包含筆記本、資料檔案和其他開發人員工具。

1.  在**建議的執行個體類型**下，為您的產品選取建議的執行個體類型。

   對於*模型套件*，您將為批次轉換和即時推論選取建議的執行個體類型。

   對於*演算法套件*，您將為訓練任務選取建議的執行個體類型。
**注意**  
 可供選取的執行個體類型僅限於模型或演算法套件支援的執行個體類型。當您最初在 Amazon SageMaker AI 中建立資源時，會決定這些支援的執行個體類型。這可確保您的產品僅與可有效執行機器學習解決方案的硬體組態相關聯。

1. 選擇**下一步**以移至精靈中的下一個步驟。

# 步驟 4：設定定價模型
<a name="set-pricing-model"></a>

 設定產品的定價模式時，您可以免費提供產品，或實作以用量為基礎的定價。發佈產品後，無法變更您的定價模型。

1.  選擇定價模型。批次轉換和演算法訓練產品只能免費或按小時計費。
   +  如果您選擇免費提供產品，請選擇**下一步**並繼續精靈。
   +  如果您選擇用量定價，請繼續這些步驟。

1.  如果您選擇根據用量收費，您可以輸入用量成本。您可以選擇輸入適用於所有執行個體類型的價格，或輸入每個執行個體類型的價格，以取得更精細的定價。

1.  選取**是，如果您想要提供產品的免費試用**，請提供免費試用。

1. 選擇**下一步**以移至精靈中的下一個步驟。

# 步驟 5：設定退款政策
<a name="configure-refund-policy"></a>

 雖然您不需要提供退款，但您必須向 提交官方退款政策 AWS Marketplace。

1. 輸入退款政策。

1.  選擇**下一步**以移至精靈中的下一個步驟。

# 步驟 6：設定 EULA
<a name="configure-eula"></a>

 在此步驟中，您將選擇法律協議，以控管客戶如何使用您的產品。您可以選取 AWS標準合約條款，或上傳自己的自訂最終使用者授權合約 (EULA)。

1.  選取標準合約或提供自訂最終使用者授權合約。

1.  選擇**下一步**以移至精靈中的下一個步驟。

# 步驟 7：設定允許清單
<a name="configure-allowlist"></a>

 在提交您的產品之前，您需要指定哪些 AWS 帳戶 可以存取它。此選用步驟可控制產品的初始可見性，限制存取您自己的 帳戶 AWS 帳戶 ，以及您新增至允許清單的任何特別授權。

1.  輸入您要存取產品的 AWS 帳戶 IDs。

1.  選擇**提交**以提交您的產品。

    您的產品將具有**有限可見**性狀態，而且只有 AWS 帳戶 建立產品和其他允許清單的 才能看見 AWS 帳戶。

    如需狀態的詳細資訊，請參閱 [機器學習產品狀態](ml-product-lifecycle.md#ml-product-status)。

 您可以在產品清單的**可見性有限**時檢視和測試產品清單。當您準備好變更產品的可見性時，請參閱 [更新產品可見性](ml-update-visibility.md)。

# 管理您的機器學習產品
<a name="ml-product-management"></a>

在 AWS Marketplace 管理入口網站中，選擇**請求變更**以修改產品或版本 AWS Marketplace。當您提交變更時，系統會處理它們。處理時間會因分鐘到天而異，取決於修改類型。您可以在 AWS Marketplace 管理入口網站中監控變更的狀態。

**Topics**
+ [更新產品資訊](ml-update-product.md)
+ [更新產品可見性](ml-update-visibility.md)
+ [更新允許清單](ml-update-allowlist.md)
+ [管理產品版本](ml-manage-product-version.md)
+ [更新產品定價](ml-update-public-offer.md)
+ [更新您的退款政策](ml-update-refund-policy.md)
+ [更新您的 EULA](ml-update-eula.md)
+ [移除產品](ml-remove-a-product.md)

**注意**  
 除了透過 AWS Marketplace 管理入口網站進行變更之外，您也可以使用 進行變更[AWS Marketplace Catalog API](https://docs.aws.amazon.com/marketplace/latest/APIReference/welcome.html)。

# 更新產品資訊
<a name="ml-update-product"></a>

 建立機器學習 (ML) 產品後，您可以在 中修改特定產品資訊 AWS Marketplace，例如描述、重點、標題、SKU、類別和關鍵字。

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的目標產品。

1.  選擇**請求變更**，然後選取**更新產品資訊**。

1.  視需要更新欄位。
**注意**  
 如需標誌規格，請參閱 [公司和產品標誌要求](product-submission.md#seller-and-product-logos)。

1.  選擇**提交**。

 您可以從**機器學習**產品頁面的請求索引標籤監控您的**請求**。如需狀態的詳細資訊，請參閱 [機器學習產品狀態](ml-product-lifecycle.md#ml-product-status)。

# 更新產品可見性
<a name="ml-update-visibility"></a>

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的產品。

1.  選擇**請求變更**，選取**更新產品可見性**，然後選取**公開**或**限制**。

1.  檢閱您的變更，然後選擇**提交**。

 您可以從**機器學習**產品頁面的請求索引標籤監控您的**請求**。如需狀態的詳細資訊，請參閱 [機器學習產品狀態](ml-product-lifecycle.md#ml-product-status)。

# 更新允許清單
<a name="ml-update-allowlist"></a>

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的產品。

1.  選擇**請求變更**，然後選取**更新允許清單**。

1.  修改您需要變更的資訊，然後選擇**提交**。如需詳細資訊，請參閱[步驟 7：設定允許清單](configure-allowlist.md)。

 您可以從**機器學習**產品頁面的請求索引標籤監控您的**請求**。如需狀態的詳細資訊，請參閱 [機器學習產品狀態](ml-product-lifecycle.md#ml-product-status)。

# 管理產品版本
<a name="ml-manage-product-version"></a>

 身為賣方，您可以透過更新現有版本資訊、新增新版本或移除不再支援的版本， AWS Marketplace 在 中管理您的產品版本。每個版本都有唯一的 SageMaker AI ARN 和相關資訊，供買方用來評估和部署您的產品。

**注意**  
 新增版本之前，請先建立產品 ID 並建立定價。如需詳細資訊，請參閱[步驟 1：建立新的清單](create-new-listing.md)。

## 更新版本資訊
<a name="ml-updating-versions"></a>

 建立版本後，您可以修改其相關資訊，例如版本備註、使用說明和執行個體建議。

**注意**  
 版本名稱和 ARNs 無法修改。這些變更需要建立新的版本。

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的產品。

1.  選擇**請求變更**，然後選取**更新版本資訊**。

1.  選取您要更新的版本。

1.  選擇**編輯版本**。

1.  修改必要欄位，然後選擇**下一步**。

1.  輸入您的定價資訊，然後選擇**提交**。如需詳細資訊，請參閱[步驟 4：設定定價模型](set-pricing-model.md)。

 您可以從**機器學習**產品頁面的請求索引標籤監控您的**請求**。如需狀態的詳細資訊，請參閱 [機器學習產品狀態](ml-product-lifecycle.md#ml-product-status)。

## 新增新版本
<a name="ml-adding-new-versions"></a>

 您可以新增產品的新版本，以引進功能、更新或改進，同時保持對舊版的存取。

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的產品。

1.  選擇**版本**，然後選擇**新增版本**。

1.  依照中的步驟輸入新版本的資訊[步驟 3：新增初始產品版本](add-initial-version.md)。

1.  輸入您的定價資訊，然後選擇**提交**。如需詳細資訊，請參閱[步驟 4：設定定價模型](set-pricing-model.md)。

當您成功新增新版本時，買方會收到電子郵件通知，告知有新版本可用。

## 限制版本
<a name="ml-restricting-versions"></a>

 當版本過期或您想要停止其可用性時，您可以限制買方存取該版本，同時維持對其他版本的存取。

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的產品。

1.  選擇**版本**，然後選擇**限制版本**。
**注意**  
 您必須至少有一個可用的版本。

1.  選擇**提交**。

 當您成功限制版本時，買方會收到該版本受到限制的電子郵件通知。

# 更新產品定價
<a name="ml-update-public-offer"></a>

 您可以修改機器學習產品的費率和免費試用期 AWS Marketplace，但定價模型本身無法變更。請注意，對於付費模型，價格上漲會在 90 天的通知期間之後，於下個月的第一天生效。無法在此通知期間進行其他價格變更。

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的產品。

1.  選擇**請求變更**，選取**更新公開優惠**，然後選取**編輯優惠資訊**。

1.  修改您需要變更的資訊，然後選擇**提交**。

 您可以從**機器學習**產品頁面的請求索引標籤監控您的**請求**。如需狀態的詳細資訊，請參閱 [機器學習產品狀態](ml-product-lifecycle.md#ml-product-status)。

# 更新您的退款政策
<a name="ml-update-refund-policy"></a>

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的產品。

1.  選擇**請求變更**，選取**更新公開優惠**，然後選取**更新退款政策**。

1.  修改您需要變更的資訊，然後選擇**提交**。

 您可以從**機器學習**產品頁面的請求索引標籤監控您的**請求**。如需狀態的詳細資訊，請參閱 [機器學習產品狀態](ml-product-lifecycle.md#ml-product-status)。

# 更新您的 EULA
<a name="ml-update-eula"></a>

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的產品。

1.  選擇**請求變更**，選取**更新公開優惠**，然後選取**更新 EULA**。

1.  修改您需要變更的資訊，然後選擇**提交**。

 您可以從**機器學習**產品頁面的請求索引標籤監控您的**請求**。如需狀態的詳細資訊，請參閱 [機器學習產品狀態](ml-product-lifecycle.md#ml-product-status)。

# 移除產品
<a name="ml-remove-a-product"></a>

 您可以從中移除 （隨機） 已發佈的產品 AWS Marketplace。一旦移除，新客戶就無法訂閱，但您必須支援現有客戶至少 90 天。

 以下是從中移除產品的條件 AWS Marketplace：
+  產品將從 AWS Marketplace 搜尋和探索工具中移除。
+  訂閱功能將會停用。
+  產品詳細資訊頁面仍可透過直接 URL 存取。
+  目前的訂閱者會保留存取權，直到取消訂閱為止。
+  AWS Marketplace 通知目前的買方有關移除。

**若要移除您的機器學習產品：**

1.  在 [AWS Marketplace 管理入口網站](https://aws.amazon.com/marketplace/management/tour/)中登入您的賣方帳戶。

1.  前往**機器學習產品**頁面，然後選取您的產品。

1.  選擇**請求變更**，選取**更新產品可見性**，然後選取**限制**。

1.  （選用） 輸入替代產品 ID。

1.  檢閱變更，然後選擇**提交**。

 您可以從**機器學習**產品頁面的請求索引標籤監控您的**請求**。如需狀態的詳細資訊，請參閱 [機器學習產品狀態](ml-product-lifecycle.md#ml-product-status)。

 移除後，產品會出現在**目前產品**清單中，您只能下載產品試算表。如果您對移除產品有任何疑問，請聯絡[AWS Marketplace 賣方營運](https://aws.amazon.com/marketplace/management/contact-us/)團隊。

# 為機器學習產品建立私有優惠
<a name="machine-learning-private-offers"></a>

 您可以為機器學習產品直接交涉並提供私有優惠給客戶。如需私有優惠的詳細資訊，請參閱 [為您的 AWS Marketplace 產品準備私有優惠](private-offers-overview.md)。

**事前準備：**
+  您必須擁有其中的付費清單 AWS Marketplace。
+  您必須擁有 AWS Marketplace Management Portal (AMMP) 的存取權。

**若要為機器學習產品建立私有優惠：**

1.  登入 AWS Marketplace 管理入口網站。

1. 選擇**優惠**，然後選擇**建立私有優惠**

1.  在**建立私有優惠**頁面上，選取要為其建立私有優惠的產品。您只能為可用的產品建立優惠。

1.  在**優惠詳細資訊**頁面上：

   1.  輸入優惠名稱和描述。

   1.  選取續約選項。

   1.  設定優惠過期日期。優惠會在設定日期 UTC 的 23：59：59 過期。

1. 選擇 **Next** (下一步) 兩次。

1.  在**設定優惠定價和持續時間**頁面上，指定：
   +  定價選項

     （如需詳細資訊，請參閱 [ML 產品的私有優惠](https://docs.aws.amazon.com/marketplace/latest/userguide/private-offers-supported-product-types.html#ml-private-offers))
   + 用量或合約持續時間
   + 報價貨幣
   + 定價維度。

     （對於用量定價，用量型費率僅適用於優惠期間。 對於合約，以用量為基礎的費率僅適用於合約期限到期且永久有效時。)
**注意**  
如需分期付款計劃的詳細資訊，請參閱 [私有優惠分期付款計劃](installment-plans.md)。

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

1. 在**新增買方**頁面上，輸入買方 AWS 帳戶 IDs。然後選擇**下一步**。
**重要**  
若要讓連結帳戶受益於私有優惠：  
包含付款人 AWS 帳戶 ID。
付款人帳戶必須先接受私有優惠的每小時條款。
付款人帳戶接受之後，連結的帳戶就可以接受私有優惠。

1. 在**設定法律條款和優惠文件**頁面上，新增任何自訂條款，然後選擇**下一步**。
**注意**  
 您最多可以新增五個檔案 （法律條款、工作說明、物料清單、定價表或附錄）。系統會將這些合併為一份文件。

1. 在**檢閱和建立**頁面上，驗證優惠詳細資訊，然後選擇**建立優惠**。

1. 優惠顯示在**管理私有優惠**頁面上後，開啟**動作**選單，選擇**複製優惠 URL**，然後透過電子郵件傳送給買方。
**注意**  
 優惠可能需要一些時間才能發佈。您可以在**管理私有優惠**頁面上編輯優惠，直到買方接受為止。

# 建立機器學習產品的需求和最佳實務
<a name="ml-listing-requirements-and-best-practices"></a>

您的買方務必能輕鬆測試模型套件和演算法產品。下列各節說明 ML 產品的最佳實務。如需需求和建議的完整摘要，請參閱 [ML 產品清單的需求和建議摘要](#ml-summary-table-of-requirements-and-recommendations)。

**注意**  
如果您的已發佈產品不符合這些要求， AWS Marketplace 代表可能會與您聯絡，協助您滿足這些要求。

**Topics**
+ [ML 產品的一般最佳實務](#ml-general-best-practices)
+ [用量資訊的需求](#ml-requirements-for-usage-information)
+ [輸入和輸出的需求](#ml-requirements-for-inputs-and-outputs)
+ [Jupyter 筆記本的需求](#ml-requirements-for-jupyter-notebook)
+ [ML 產品清單的需求和建議摘要](#ml-summary-table-of-requirements-and-recommendations)

## ML 產品的一般最佳實務
<a name="ml-general-best-practices"></a>

 為您的機器學習產品提供下列資訊：
+  如需產品說明，請包含 下列項目：
  +  模型的功能 
  +  目標客戶是誰 
  +  最重要的使用案例是什麼 
  +  模型的訓練方式或已使用的資料量 
  +  什麼是效能指標，以及使用的驗證資料 
  +  如果是醫療，無論您的模型是否用於診斷用途 
+ 根據預設，機器學習產品會設定為具有公有可見性。不過，您可以建立可見性有限的產品。如需詳細資訊，請參閱[步驟 7：設定允許清單](configure-allowlist.md)。
+  （選用） 針對付費產品，提供 14–30 天的免費試用，讓客戶試用您的產品。如需詳細資訊，請參閱[的機器學習產品定價 AWS Marketplace](machine-learning-pricing.md)。

## 用量資訊的需求
<a name="ml-requirements-for-usage-information"></a>

描述您產品的預期輸入和輸出 （使用範例） 的明確用量資訊 對於推動正面買方體驗至關重要。

對於您新增至產品清單的每個新版本資源，您必須提供用量資訊。

若要編輯特定版本的現有用量資訊，請參閱 [更新版本資訊](ml-manage-product-version.md#ml-updating-versions)。

## 輸入和輸出的需求
<a name="ml-requirements-for-inputs-and-outputs"></a>

使用範例清楚說明支援的輸入參數和傳回的輸出參數，對於協助您的買方了解和使用您的產品至關重要。此了解可協助您的買方對輸入資料執行任何必要的轉換，以取得最佳推論結果。

將 Amazon SageMaker AI 資源新增至產品清單時，系統會提示您輸入下列項目。

### 推論輸入和輸出
<a name="ml-inference-inputs-and-outputs"></a>

針對推論輸入，提供產品對即時端點和批次轉換任務預期之輸入資料的描述。包含用於任何必要預先處理資料的程式碼片段。如果適用，請包含限制。提供 [GitHub](https://github.com) 上託管的輸入範例。

針對推論輸出，提供產品針對即時端點和批次轉換任務所傳回輸出資料的描述。如果適用，請包含限制。提供 [GitHub](https://github.com) 上託管的輸出範例。

針對範例，請提供可搭配您產品的 輸入檔案。如果您的模型執行多類別分類，請為每個類別提供至少一個範例輸入檔案。

### 訓練輸入
<a name="ml-training-inputs"></a>

在**訓練模型的資訊**區段中，提供輸入資料格式和程式碼片段，以進行任何必要的資料預先處理。如果適用，請包含值和限制的描述。提供 [GitHub](https://github.com) 上託管的輸入範例。

說明買方可以提供的選用和強制性功能，並指定是否支援`PIPE`輸入模式。如果支援[分散式訓練](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-dist-training) （使用超過 1 個 CPU/GPU 執行個體進行訓練），請指定此選項。針對調校，請列出建議的超參數。

## Jupyter 筆記本的需求
<a name="ml-requirements-for-jupyter-notebook"></a>

將 SageMaker AI 資源新增至產品清單時，請提供 [GitHub](https://github.com) 上託管的範例 Jupyter 筆記本的連結，示範完整的工作流程，而不會要求買方上傳或尋找任何資料。

使用 適用於 Python (Boto) 的 AWS SDK。精心開發的範例筆記本可讓買方更輕鬆地嘗試和使用您的清單。

對於 模型套件產品，您的範例筆記本示範準備輸入資料、建立用於即時推論的端點，以及批次轉換任務的效能。如需詳細資訊，請參閱 GitHub 上的[模型套件清單和範例筆記本](https://github.com/aws/amazon-sagemaker-examples/tree/main/aws_marketplace/curating_aws_marketplace_listing_and_sample_notebook/ModelPackage)。如需範例筆記本，請參閱 [auto\$1management](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_marketplace/using_model_packages/auto_insurance)。筆記本適用於所有 AWS 區域，無需輸入任何參數，也不需要買方尋找範例資料。

**注意**  
未顯示多個可能輸入和資料預先處理步驟的未開發範例 Jupyter 筆記本，可能會讓買方難以完全了解產品的價值主張。

對於演算法產品，範例筆記本示範完整的訓練、調校、建立模型、建立用於即時推論的端點，以及批次轉換任務的效能。如需詳細資訊，請參閱 GitHub [上的演算法清單和範例筆記本](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_marketplace/curating_aws_marketplace_listing_and_sample_notebook/Algorithm)。如需範例筆記本，請參閱 GitHub 上的 [amazon\$1demo\$1product](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_marketplace/using_algorithms/amazon_demo_product) 和 [automl](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_marketplace/using_algorithms/automl)。這些範例筆記本適用於所有 區域，無需輸入任何參數，也不需要買方尋找範例資料。

**注意**  
缺少範例訓練資料可能會使您的買方無法成功執行 Jupyter 筆記本。未開發的範例筆記本可能會讓您的買方無法使用您的產品並阻礙採用。

## ML 產品清單的需求和建議摘要
<a name="ml-summary-table-of-requirements-and-recommendations"></a>

下表提供機器學習產品清單頁面的需求和建議摘要。


|  **詳細資訊**  |  **對於模型套件清單**  |  **對於演算法清單**  | 
| --- |--- |--- |
| **Product descriptions** | 
| --- |
| Explain in detail what the product does for supported content types (for example, “detects X in images").  |  Required  |  Required  | 
| Provide compelling and differentiating information about the product (avoid adjectives like "best" or unsubstantiated claims).  |  Recommended  |  Recommended  | 
| List most important use case(s) for this product.  |  Required  |  Required  | 
| Describe the data (source and size) it was trained on and list any known limitations.  |  Required  |  Not applicable | 
| Describe the core framework that the model was built on.  |  Recommended  |  Recommended  | 
| Summarize model performance metric on validation data (for example, "XX.YY percent accuracy benchmarked using the Z dataset").  |  Required  |  Not applicable | 
| Summarize model latency and/or throughput metrics on recommended instance type.  |  Required  |  Not applicable | 
| Describe the algorithm category. For example, “This decision forest regression algorithm is based on an ensemble of tree-structured classifiers that are built using the general technique of bootstrap aggregation and a random choice of features.”  |  Not applicable |  Required  | 
| **Usage information** | 
| --- |
| For inference, provide a description of the expected input format for both the real-time endpoint and batch transform job. Include limitations, if applicable. See [輸入和輸出的需求](#ml-requirements-for-inputs-and-outputs).  |  Required  |  Required  | 
| For inference, provide input samples for both the real-time endpoint and batch transform job. Samples must be hosted on GitHub. See [輸入和輸出的需求](#ml-requirements-for-inputs-and-outputs).  |  Required  |  Required  | 
| For inference, provide the name and description of each input parameter. Provide details about the its limitations and specify if it is required or optional. | Recommended | Recommended | 
| For inference, provide details about the output data your product returns for both the real-time endpoint and batch transform job. Include any limitations, if applicable. See [輸入和輸出的需求](#ml-requirements-for-inputs-and-outputs).  |  Required  |  Required  | 
| For inference, provide output samples for both the real-time endpoint and batch transform job. Samples must be hosted on GitHub. See [輸入和輸出的需求](#ml-requirements-for-inputs-and-outputs).  |  Required  |  Required  | 
| For inference, provide an example of using an endpoint or batch transform job. Include a code example using the AWS Command Line Interface (AWS CLI) commands or using an AWS SDK.  |  Required  |  Required  | 
| For inference, provide the name and description of each output parameter. Specify if it is always returned.  | Recommended | Recommended | 
| For training, provide details about necessary information to train the model such as minimum rows of data required. See [輸入和輸出的需求](#ml-requirements-for-inputs-and-outputs).  |  Not applicable |  Required  | 
| For training, provide input samples hosted on GitHub. See [輸入和輸出的需求](#ml-requirements-for-inputs-and-outputs).  |  Not applicable |  Required  | 
| For training, provide an example of performing training jobs. Describe the supported hyperparameters, their ranges, and their overall impact. Specify if the algorithm supports hyperparameter tuning, distributed training, or GPU instances. Include code example such as AWS CLI commands or using an AWS SDK, for example.  |  Not applicable |  Required  | 
| Provide a Jupyter notebook hosted on GitHub demonstrating complete use of your product. See [Jupyter 筆記本的需求](#ml-requirements-for-jupyter-notebook).  |  Required  |  Required  | 
| Provide technical information related to the usage of the product, including user manuals and sample data.  |  Recommended  |  Recommended  | 

# 故障診斷機器學習產品的問題
<a name="ml-troubleshooting"></a>

 本節提供說明，說明您在發佈機器學習產品過程中可能遇到的一些常見錯誤。如果您的問題未列出，請聯絡[AWS Marketplace 賣方營運](https://aws.amazon.com/marketplace/management/contact-us/)團隊。

## 一般：當我在 中新增模型套件或演算法的 Amazon Resource Name (ARN) 時，收到 400 錯誤 AWS Marketplace 管理入口網站
<a name="troubleshooting_error_code_400"></a>

### 常見原因
<a name="troubleshooting_common_cause"></a>

 在 SageMaker AI 中建立機器學習產品時，您未選擇在其中發佈產品 AWS Marketplace。

### Resolution
<a name="troubleshooting_resolution"></a>

 如果您使用 Amazon SageMaker AI 主控台來建立資源，則必須在**發佈此模型套件 AWS Marketplace**的程序最後一頁選擇**是**，或在**其中發佈此演算法 AWS Marketplace**時選擇**是**。您無法選擇 **否**，也無法稍後發佈。選取**是**不會發佈模型套件或演算法。不過，它會在建立模型套件或演算法資源時對其進行驗證，這是在 中使用的必要項目 AWS Marketplace。

 如果您使用 AWS SDK [建立模型套件](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-CertifyForMarketplace)或[建立演算法](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html#sagemaker-CreateAlgorithm-request-CertifyForMarketplace)，請確定 參數`CertifyForMarketplace`設定為 `true`。

重新建立已驗證和已驗證的模型套件或演算法資源後，請在 中新增新的 ARN AWS Marketplace 管理入口網站。

## 一般：當我在 中新增模型套件或演算法的 ARN 時，收到 404 錯誤 AWS Marketplace 管理入口網站
<a name="troubleshooting_error_code_404"></a>

### 常見原因
<a name="troubleshooting_common_cause"></a>

 此錯誤可能發生的原因有幾個：
+  ARN 可能無效。
+  模型套件或演算法資源未在 AWS 帳戶 與賣方帳戶相同的 中建立。
+  您用於發佈的使用者或角色沒有存取模型套件或演算法資源的正確 IAM 許可。

### Resolution
<a name="troubleshooting_resolution"></a>

1.  檢查 ARN 以確保其為正確的 ARN 且為預期的格式：

    對於模型套件，ARNs看起來應該類似於 `arn:aws:sagemaker:us-east-2:000123456789:model-package/my-model-package-name`。

    對於演算法，ARNs看起來應該類似於 `arn:aws:sagemaker:us-east-2:000123456789:algorithm/my-algorithm`。

1.  確定要發佈的所有資源和資產都位於您要發佈的賣方帳戶中。

1.  確保您的使用者或角色具有下列許可：

    對於模型套件，必須允許模型套件資源`sagemaker:DescribeModelPackage`上的 動作。

    對於演算法，必須允許演算法資源`sagemaker:DescribeAlgorithm`上的 動作。

## Amazon SageMaker AI：當我建立模型套件或演算法資源時，收到「用戶端錯誤：登錄檔存取遭拒」失敗訊息
<a name="troubleshooting_error_sm_access_denied"></a>

### 常見原因
<a name="troubleshooting_common_cause"></a>

當用於建立模型套件或演算法的映像存放在屬於另一個模型套件的 [Amazon ECR](https://aws.amazon.com/ecr/) 儲存庫中時，可能會發生此錯誤 AWS 帳戶。模型套件或演算法驗證不支援跨帳戶映像。

### Resolution
<a name="troubleshooting_resolution"></a>

將映像複製到您用來發佈的 所擁有 AWS 帳戶 的 Amazon ECR 儲存庫。然後，繼續使用新的映像位置建立資源。

## Amazon SageMaker AI：我收到「未開始」和「用戶端錯誤：無掃描排程...」 當我建立模型套件或演算法資源時的失敗訊息
<a name="troubleshooting_error_sm_failure"></a>

### 常見原因
<a name="troubleshooting_common_cause"></a>

當 SageMaker AI 無法開始掃描存放在 Amazon ECR 中的 Docker 容器映像時，可能會發生此錯誤。

### Resolution
<a name="troubleshooting_resolution"></a>

如果發生這種情況，請開啟 [ Amazon ECR 主控台](https://console.aws.amazon.com/ecr/repositories?region=us-east-2)，尋找上傳映像的儲存庫，選擇映像，然後選擇**掃描**。