

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

# SageMaker Autopilot
<a name="autopilot-automate-model-development"></a>

**重要**  
自 2023 年 11 月 30 日起，Autopilot 的使用者介面將移至 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html)，作為更新的 [Amazon SageMaker Studio](studio-updated.md) 體驗的一部分。SageMaker Canvas 為分析師和公民資料科學家提供無程式碼功能，例如資料準備、特徵工程、演算法選擇、訓練和調校、推論等。使用者可以利用內建視覺效果和假設分析，探索其資料和不同案例，並透過自動化預測輕鬆產生模型。Canvas 支援各種使用案例，包括電腦視覺、需求預測、智慧搜尋和生成式 AI。  
 [Amazon SageMaker Studio Classic](studio.md) ([Studio](studio-updated.md) 的先前體驗) 的使用者可以繼續使用 Studio Classic 的 Autopilot 使用者介面。具編碼經驗的使用者可以繼續使用任何支援 SDK 中的 [API 參考](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)，以進行技術實作。  
如果您在 Studio Classic 中一直使用 Autopilot，並且想遷移至 SageMaker Canvas，您可能需要將其他許可授予使用者設定檔或 IAM 角色，以建立和使用 SageMaker Canvas 應用程式。如需詳細資訊，請參閱[(選用) 從 Studio Classic 中的 Autopilot 遷移至 SageMaker Canvas](studio-updated-migrate-ui.md#studio-updated-migrate-autopilot)。  
本指南中所有使用者介面相關的指示，均涉及移至 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) 之前的 Autopilot 獨立功能。遵循這些指示的使用者應使用 [Studio Classic](studio.md)。

Amazon SageMaker Autopilot 是一種功能集，可透過自動化建置和部署機器學習模型 (AutoML) 的程序，簡化並加速機器學習工作流程的各個階段。下頁說明 Amazon SageMaker Autopilot 的重要資訊。

Autopilot 會執行下列可在 Autopilot 上使用的關鍵任務，或是在不同程度的人工指引下使用執行下列關鍵任務：
+ **資料分析和預先處理：**Autopilot 可識別您的特定問題類型、處理缺少值、標準化資料、選取功能，並準備總體資料進行模型訓練。
+ **模型選取：**Autopilot 探索各種演算法，並使用交叉驗證重新取樣技術來產生指標，這些指標根據預先定義的目標指標來評估演算法的預測品質。
+ **超參數最佳化：**Autopilot 可自動化搜尋最佳的超參數組態。
+ **模型訓練與評估：**Autopilot 可自動化訓練和評估各種模型候選項目的程序。它會將資料分割成訓練集和驗證集，使用訓練資料來訓練選取的模型候選項目，並評估驗證集看不到之資料上的效能。最後，它會根據效能對最佳化模型候選項目進行排名，並識別最佳執行模型。
+ **模型部署：**Autopilot 已識別最佳執行模型後，會產生模型成品和公開 API 的端點，提供自動部署模型的選項。外部應用程式可以將資料傳送到端點，並收到相對應的預測或推論。

Autopilot 支援在高達數百 GB 的大型資料集建立機器學習模型。

下圖概述了由 Autopilot 管理的此 AutoML 程序的任務。

![\[Amazon SageMaker Autopilot AutoML 程序概觀。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/Autopilot-process-graphic-1.png)


取決於您對機器學習程序和編碼體驗的舒適程度，您可以以不同方式使用 Autopilot：
+ **使用 Studio Classic 使用者介面**，使用者可以選擇無需編寫程式碼的操作體驗，也可以保留一定程度的人為輸入。
**注意**  
只有建立來源是迴歸或分類等問題類型之表格式資料的實驗，才能透過 Studio Classic 使用者介面取得。
+ **使用 AutoML API**，具有編寫程式碼經驗的使用者可以使用提供的 SDK 來建立 AutoML 任務。此方法提供更大的彈性和自訂選項，適用於所有問題類型。

Autopilot 目前支援下列問題類型：

**注意**  
針對涉及表格式資料的迴歸或分類問題，使用者可以在兩個選項之間進行選擇：使用 Studio Classic 使用者介面或 [API 參考](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)。  
文字和影像分類、時間序列預測以及大型語言模型的微調等任務，僅能透過 [AutoML REST API](autopilot-reference.md) 第 2 版獨家取得。如果您選擇的語言是 Python，您可以直接參考 [適用於 Python (Boto3) 的 AWS SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html) 或 Amazon SageMaker Python SDK 的 [AutoMLV2 物件](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2)。  
偏好使用者介面便利性的使用者，可以使用 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) 存取預先訓練的模型、生成式 AI 基礎模型，或建立針對特定文字、影像分類、預測需求或生成式 AI 量身打造的自訂模型。
+ 具有表格式資料格式為 CSV 或 Parquet 檔案的**迴歸、二元分類和多類別分類**，其中每一欄都包含具有特定資料類型的特徵，且每一列都包含一個觀察。已接受的欄位資料類型包含由逗號分隔數字字串組成的數字、分類、文字和時間序列。
  + 若要使用 SageMaker API 參考建立 Autopilot 任務做為試驗實驗，請參閱[使用 AutoML API 建立表格式資料的迴歸或分類任務](autopilot-automate-model-development-create-experiment.md)。
  + 若要使用 Studio Classic 使用者介面建立 Autopilot 任務作為試點實驗，請參閱[使用 Studio Classic 使用者介面為表格式資料建立迴歸或分類 Autopilot 實驗](autopilot-automate-model-development-create-experiment-ui.md)。
  + 如果您是想要在 Studio Classic 使用者介面預先設定 Autopilot 實驗的預設基礎結構、網路或安全性參數的管理員，請參閱[設定 Autopilot 實驗的預設參數 (適用於管理員)](autopilot-set-default-parameters-create-experiment.md)。
+ 具有資料格式為 CSV 或 Parquet 檔案的**文字分類**，其中一欄會提供要分類的句子，而另一欄則應提供對應的類別標籤。請參閱 [使用 API 建立用於文字分類的 AutoML 任務](autopilot-create-experiment-text-classification.md)。
+ 具有 PNG、JPEG 或兩者組合等影像格式的**影像分類**。請參閱[使用 AutoML API 建立影像分類任務](autopilot-create-experiment-image-classification.md)。
+ 使用格式化為 CSV 或 Parquet 檔案的時間序列資料進行**時間序列預測**。請參閱[使用 API 建立用於時間序列預測的 AutoML 任務](autopilot-create-experiment-timeseries-forecasting.md)。
+ 使用格式為 CSV 或 Parquet 檔案的資料對大型語言模型 (LLM) 進行微調，以**產生文字**。請參閱[使用 API 建立微調文字生成模型的 AutoML 任務](autopilot-create-experiment-finetune-llms.md)。

此外，Autopilot 透過自動產生顯示每個單獨功能之重要性的報告，協助使用者了解模型如何進行預測。這對影響預測的因素提供透明度和深入分析，風險和合規團隊以及外部監管機構可以使用這些因素。Autopilot 也提供模型效能報告，其中包含評估指標總結、混淆矩陣、接收器操作特性曲線和精確重新呼叫曲線等各種視覺化等。每份報告的具體內容取決於 Autopilot 實驗的問題類型而有所不同。

Autopilot 實驗中最佳模型候選的可解釋性和效能報告適用於文字、圖像和表格資料分類問題類型。

針對迴歸或分類等表格式資料使用案例，Autopilot 透過產生包含用於探索資料並尋找最佳執行模型程式碼的筆記本，提供資料如何編寫以及如何選取、訓練和調校模型候選項目的額外可見性。這些筆記本提供互動式探索環境，可協助您了解各種輸入的影響或在實驗中取得的權衡。您可以自行修改 Autopilot 所提供的資料探勘和候選定義筆記本，進一步實驗較高的執行模型候選項目。

使用 Amazon SageMaker AI，您只需按實際用量付費。根據您的用量，您需要支付 SageMaker AI 或其他 AWS 服務中的基礎運算和儲存資源。如需使用 SageMaker AI 成本的詳細資訊，請參閱 [Amazon SageMaker AI 定價](https://aws.amazon.com/sagemaker/pricing)。

**Topics**
+ [使用 AutoML API 建立表格式資料的迴歸或分類任務](autopilot-automate-model-development-create-experiment.md)
+ [使用 AutoML API 建立影像分類任務](autopilot-create-experiment-image-classification.md)
+ [使用 API 建立用於文字分類的 AutoML 任務](autopilot-create-experiment-text-classification.md)
+ [使用 API 建立用於時間序列預測的 AutoML 任務](autopilot-create-experiment-timeseries-forecasting.md)
+ [使用 API 建立微調文字生成模型的 AutoML 任務](autopilot-create-experiment-finetune-llms.md)
+ [使用 Studio Classic 使用者介面為表格式資料建立迴歸或分類 Autopilot 實驗](autopilot-automate-model-development-create-experiment-ui.md)
+ [Amazon SageMaker Autopilot 範例筆記本](autopilot-example-notebooks.md)
+ [影片：使用 Autopilot 自動化並探索機器學習程序](autopilot-videos.md)
+ [Autopilot 配額](autopilot-quotas.md)
+ [Autopilot 的 API 參考指南](autopilot-reference.md)

# 使用 AutoML API 建立表格式資料的迴歸或分類任務
<a name="autopilot-automate-model-development-create-experiment"></a>

您可以透過以 Autopilot 或 AWS CLI支援的任何語言呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) API 動作，以程式設計方式為表格式資料建立 Autopilot 迴歸或分類任務。以下是 `CreateAutoMLJobV2` API 作業的強制性和選用輸入請求參數的集合。您可以找到此操作先前版本的替代資訊 `CreateAutoMLJob`。不過，我們建議您使用 `CreateAutoMLJobV2`。

有關此 API 動作如何以您選擇的語言轉換為函式的詳細資訊，請參閱 `CreateAutoMLJobV2` 的[另請參閱](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso)章節，並選擇 SDK。例如，對於 Python 使用者，請參閱 適用於 Python (Boto3) 的 AWS SDK中 `[create\$1auto\$1ml\$1job\$1v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)` 的完整要求語法。

**注意**  
[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) 與 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) 是 [CreateAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html) 及 [DescribeAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) 的新版本，提供向後相容性。  
我們建議使用 `CreateAutoMLJobV2`。`CreateAutoMLJobV2` 可以管理與舊版本 `CreateAutoMLJob` 相同的表格問題類型，以及非表格問題類型，例如影像或文字分類，或時間序列預測。

表格式資料上的所有實驗至少都需要實驗名稱的規格、提供輸入和輸出資料的位置，以及指定要預測的目標資料。或者，您也可以選擇指定要解決的問題類型 (迴歸、分類、多類別分類)、選擇建模策略 (*堆疊整合*或*超參數最佳化*)、選取 Autopilot 任務用來訓練資料的演算法清單等等。

 實驗執行之後，您可以比較試驗，並深入研究每個模型的預處理步驟、演算法和超參數範圍的詳細資訊。您還可以選擇下載他們的[可解釋性](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-explainability.html)與[效能](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-insights.html)報告。使用提供的[筆記本](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-notebook-output.html )來查看自動化資料探索或候選模型定義的結果。

尋找有關如何將 [將 CreateAutoMLJob 移轉到 CreateAutoMLJobV2](#autopilot-create-experiment-api-migrate-v1-v2) 的 `CreateAutoMLJob` 移轉到 `CreateAutoMLJobV2` 的指南。

## 必要參數
<a name="autopilot-create-experiment-api-required-params"></a>

------
#### [ CreateAutoMLJobV2 ]

當呼叫 `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` 建立表格式資料的 Autopilot 實驗時，您必須提供下列值：
+ 用 `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)` 指定您的任務名稱。
+ 在 `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)` 中至少有一個 `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)` 來指定您的資料來源。
+ `[AutoMLJobObjective](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobObjective)` 指標及 `AutoMLProblemTypeConfig` 內您選擇的監督學習問題類型 (二進位分類、多類分類、迴歸)，或根本沒有。對於表格式資料，您必須選擇 `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` 作為 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 的類型。您在 `TabularJobConfig` 的 `ProblemType` 屬性設定了監督學習問題。
+ `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)` 用於指定存放 AutoML 任務成品的 Amazon S3 輸出路徑。
+ `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)` 用來指定用於存取您的資料的角色的 ARN。

------
#### [ CreateAutoMLJob ]

當呼叫 `[CreateAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html)` 建立 AutoML 實驗時，您必須提供以下四個值：
+ `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-AutoMLJobName)` 用來指定工作名稱。
+ 在 `[AutoMLChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html)` 中至少有一個 `[InputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-InputDataConfig)` 來指定您的資料來源。
+ `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)` 用於指定存放 AutoML 任務成品的 Amazon S3 輸出路徑。
+ `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)` 用來指定用於存取您的資料的角色的 ARN。

------

所有其他參數都是選用參數。

## 選用的參數
<a name="autopilot-create-experiment-api-optional-params"></a>

下列各節提供一些選用參數的詳細資訊，您可以在使用表格式資料時傳送至 `CreateAutoMLJobV2` API 作業。您可以找到此操作先前版本的替代資訊 `CreateAutoMLJob`。不過，我們建議您使用 `CreateAutoMLJobV2`。

### 如何設定 AutoML 任務的訓練模式
<a name="autopilot-set-training-mode"></a>

對於表格式資料，在資料上執行訓練模型候選模型的演算法集取決於您的建模策略 (`ENSEMBLING` 或 `HYPERPARAMETER_TUNING`)。以下詳細說明如何設定此訓練模式。

如果您保留空白 (或 `null`)，則會根據您的資料集大小來推論 `Mode`。

如需 Autopilot 的*堆疊式整合*與*超參數最佳化*訓練方法的資訊，請參閱[訓練模式與演算法支援](autopilot-model-support-validation.md)

------
#### [ CreateAutoMLJobV2 ]

對於表格式資料，您必須選擇 `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` 作為 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 的類型。

您可以使用 `[TabularJobConfig.Mode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` 參數設定 AutoML 任務 V2 的[訓練方法](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html)。

------
#### [ CreateAutoMLJob ]

您可以使用 `[AutoMLJobConfig.Mode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-Mode)` 參數設定 AutoML 任務的[訓練方法](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html)。

------

### 如何選取用於訓練 AutoML 任務的特徵與演算法
<a name="autopilot-feature-selection"></a>

#### 特徵選取
<a name="autopilot-automl-job-feature-selection-api"></a>

Autopilot 提供自動資料預處理步驟，包括特徵選擇和特徵擷取。但是，您可以手動提供要在訓練 `FeatureSpecificatioS3Uri` 屬性時使用的特徵。

選取的特徵應包含在以下格式的 JSON 檔案中：

```
{ "FeatureAttributeNames":["col1", "col2", ...] }
```

`["col1", "col2", ...]` 中所列出的值會區分大小寫。它們應該是包含唯一值的字串清單，這些值是輸入資料中列名稱的子集。

**注意**  
提供為特徵的欄位清單不能包含目標欄位。

------
#### [ CreateAutoMLJobV2 ]

對於表格式資料，您必須選擇 `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` 作為 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 的類型。

您可以使用 `[TabularJobConfig.FeatureSpecificationS3Uri](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` 參數將 URL 設定為您選取的特徵。

------
#### [ CreateAutoMLJob ]

您可以使用以下格式在 [CreateAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html) 中設定 [AutoMLCandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html) 的 `FeatureSpecificatioS3Uri` 屬性：

```
{
    "[AutoMLJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-AutoMLJobConfig)": {
        "[CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-CandidateGenerationConfig)": {
            "[FeatureSpecificationS3Uri](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html#sagemaker-Type-AutoMLCandidateGenerationConfig-FeatureSpecificationS3Uri)":"string"
            },
       }
  }
```

------

#### 演算法選擇
<a name="autopilot-automl-job-algorithms-selection-api"></a>

預設情況下，您的 Autopilot 任務會在您的資料集執行預先定義的演算法清單來訓練候選模型。演算法清單取決於任務所使用的訓練模式 (`ENSEMBLING` 或 `HYPERPARAMETER_TUNING`)。

您可以提供預設演算法選取的子集。

------
#### [ CreateAutoMLJobV2 ]

對於表格式資料，您必須選擇 `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` 作為 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 的類型。

您可以在 [CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html) 的 `AlgorithmsConfig` 屬性指定選定的 `AutoMLAlgorithms` 陣列。

下面是 `AlgorithmsConfig` 屬性的例子，在其 `AutoMLAlgorithms` 欄位恰好列出了三種演算法 (”xgboost”、“fastai”、“catboost”)，用於整合訓練模式。

```
{
   "[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)": {
        "[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)": {
          "[Mode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)": "ENSEMBLING",
          "[CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html)": {
            "[AlgorithmsConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html#sagemaker-Type-CandidateGenerationConfig-AlgorithmsConfig)":[
               {"[AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html)":["xgboost", "fastai", "catboost"]}
            ]
         },
       },
     },
  }
```

------
#### [ CreateAutoMLJob ]

您可以在 [AutoMLCandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html) 的 `AlgorithmsConfig` 屬性指定選定的 `AutoMLAlgorithms` 的陣列。

下面是 `AlgorithmsConfig` 屬性的例子，在其 `AutoMLAlgorithms` 欄位恰好列出了三種演算法 (「XGBoost」、「fastai」、「catboost」)，用於整合訓練模式。

```
{
   "[AutoMLJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-AutoMLJobConfig)": {
        "[CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-CandidateGenerationConfig)": {
            "[AlgorithmsConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html#sagemaker-Type-AutoMLCandidateGenerationConfig-AlgorithmsConfig)":[
               {"[AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms)":["xgboost", "fastai", "catboost"]}
            ]
         },
     "Mode": "ENSEMBLING" 
  }
```

------

如需每項訓練的可用演算法清單 `Mode`，請參閱 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms)。如需每個演算法的詳細資訊，請參閱[訓練模式與演算法支援](autopilot-model-support-validation.md)。

### 如何指定 AutoML 任務的訓練與驗證資料集
<a name="autopilot-data-sources-training-or-validation"></a>

您可以提供自己的驗證資料集和自訂資料分割比例，或讓 Autopilot自動分割資料集。

------
#### [ CreateAutoMLJobV2 ]

每個 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html) 物件 (請參閱 [AutomlJobinputDataConfig](https://docs.aws.amazon.com/sagemaker-api/src/AWSSageMakerAPIDoc/build/server-root/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig) 所需的參數) 都有一個 `ChannelType`，可以設定為 `training` 或 `validation` 值，指定建構機器學習模型時如何使用資料。至少必須提供一個資料來源，最多允許兩個資料來源：一個用於訓練資料，另一個用於驗證資料。

將資料分割為訓練和驗證資料集的方式，取決於您有一個或兩個資料來源。
+ 如果您只有**一個資料來源**，則`ChannelType`依預設會將其設定為`training`，且必須具有此值。
  + 如果未設定 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) 中的 `ValidationFraction` 值，則預設會使用來自此來源的 0.2 (20%) 資料進行驗證。
  + 如果設定`ValidationFraction`為介於 0 和 1 之間的值，則會根據指定的值來分割資料集，其中值會指定用於驗證的資料集分數。
+ 如果您有**兩個資料來源**，則必須將其中一個`AutoMLJobChannel`物件的`ChannelType`設定為`training`，即預設值。其他資料來源的`ChannelType`必須設定為`validation`。這兩個資料來源必須具有相同的格式 (CSV 或 Parquet)，以及相同的結構描述。在這種情況下，您不得設定`ValidationFraction`的值，因為每個來源的所有資料都會用於訓練或驗證。設定此值會導致錯誤。

------
#### [ CreateAutoMLJob ]

每個 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html) 物件 (請參閱 [InputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-InputDataConfig) 所需的參數) 都有一個 `ChannelType`，可以設定為 `training` 或 `validation` 值，指定在建立機器學習模型時如何使用資料。至少必須提供一個資料來源，且最多允許兩個資料來源：一個用於訓練資料，另一個用於驗證資料。

將資料分割為訓練和驗證資料集的方式，取決於您有一個或兩個資料來源。
+ 如果您只有**一個資料來源**，則`ChannelType`依預設會將其設定為`training`，且必須具有此值。
  + 如果未設定 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) 中的 `ValidationFraction` 值，則預設會使用來自此來源的 0.2 (20%) 資料進行驗證。
  + 如果設定`ValidationFraction`為介於 0 和 1 之間的值，則會根據指定的值來分割資料集，其中值會指定用於驗證的資料集分數。
+ 如果您有**兩個資料來源**，則必須將其中一個`AutoMLChannel`物件的`ChannelType`設定為`training`，即預設值。其他資料來源的`ChannelType`必須設定為`validation`。這兩個資料來源必須具有相同的格式 (CSV 或 Parquet)，以及相同的結構描述。在這種情況下，您不得設定`ValidationFraction`的值，因為每個來源的所有資料都會用於訓練或驗證。設定此值會導致錯誤。

------

如需 Autopilot 中的拆分與交叉驗證的相關資訊，請參閱[Autopilot 的交叉驗證](autopilot-metrics-validation.md#autopilot-cross-validation)。

### 如何設定 AutoML 任務的問題類型
<a name="autopilot-set-problem-type-api"></a>

------
#### [ CreateAutoMLJobV2 ]

對於表格式資料，您必須選擇 `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` 作為 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 的類型。

您可以使用 `[TabularJobConfig.ProblemType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` 參數進一步指定 AutoML 任務 V2 的模型候選項可用的監督學習問題類型 (二進位分類、多類別分類、迴歸)。

------
#### [ CreateAutoMLJob ]

您可以使用 `[CreateAutoPilot.ProblemType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-ProblemType)` 參數設定 AutoML 作業的[問題類型](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types)。這限制了 Autopilot 嘗試的預處理類型和演算法。任務完成後，如果您已設定 `[CreateAutoPilot.ProblemType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-ProblemType)`，則 `[ResolvedAttribute.ProblemType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResolvedAttributes.html)` 會符合您設定的 `ProblemType`。如果您將其保留空白 (或 `null`)，則代表您推論出來的 `ProblemType`。

------

**注意**  
在某些情況下，Autopilot 無法以夠高的可信度推論 `ProblemType`，在這種情況下，您必須提供值，任務才會成功。

### 如何在 AutoML 任務新增樣本權重
<a name="autopilot-add-sample-weights-api"></a>

您可以將範例權重欄位新增至表格式資料集，然後將其傳遞至 AutoML 任務，以請求在訓練及評估期間對資料集行進行加權。

僅在[整合模式](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-training-mode)下支援樣本權重。你的權重應該是數字且非負數。排除無效或沒有權重值的資料點。如需可用目標指標的詳細資訊，請參閱[Autopilot 加權指標](autopilot-metrics-validation.md#autopilot-weighted-metrics)。

------
#### [ CreateAutoMLJobV2 ]

對於表格式資料，您必須選擇 `[TabularJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)` 作為 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 的類型。

若要在建立實驗時設定樣本權重 (請參閱 [CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)) ，您可以在 `TabularJobConfig` 物件的 `SampleWeightAttributeName` 屬性傳遞範本權重欄位的名稱。這可確保您的目標指標使用權重來訓練、評估及選擇候選模型。

------
#### [ CreateAutoMLJob ]

若要在建立實驗時設定樣本權重 (請參閱 [CreateAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html))，您可以在 [AutoMLChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html) 物件的 `SampleWeightAttributeName` 屬性傳遞樣本權重欄位名稱。這可確保您的目標指標使用權重來訓練、評估及選擇候選模型。

------

### 如何設定 AutoML 在大型資料集的 EMR Serverless 上啟動遠端任務
<a name="autopilot-set-emr-serverless-api-tabular"></a>

您可以設定 AutoML 任務 V2，以便在需要額外的運算資源來處理大型資料集時，在 Amazon EMR Serverless 上自動啟動遠端任務。透過在需要時無縫轉換為 EMR Serverless，AutoML 任務可以處理原本會超過最初佈建資源的資料集，而無需您進行任何手動介入。EMR Serverless 適用於表格式和時間序列問題類型。我們建議為大於 5 GB 的表格式資料集設定此選項。

若要允許 AutoML 任務 V2 自動轉換為適用於大型資料集的 EMR Serverless，您需要將包含 `ExecutionRoleARN` 欄位的 `EmrServerlessComputeConfig` 物件提供給 AutoML 任務 V2 輸入請求的 `AutoMLComputeConfig`。

`ExecutionRoleARN` 是 IAM 角色的 ARN，授予 AutoML 任務 V2 執行 EMR Serverless 任務所需的許可。

此角色應具有下列信任關係：

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

****  

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

------

並授予許可給：
+ 建立、列出和更新 EMR Serverless 應用程式。
+ 在 EMR Serverless 應用程式上啟動、列出、取得或取消任務執行。
+ 標記 EMR Serverless 資源。
+ 將 IAM 角色傳遞至 EMR Serverless 服務以進行執行。

  透過授予 `iam:PassRole` 許可，AutoML 任務 V2 可以暫時擔任該 `EMRServerlessRuntimeRole-*` 角色並將其傳遞給 EMR Serverless 服務。這些是 EMR Serverless 任務執行環境用來存取執行時間所需 AWS 其他服務和資源的 IAM 角色，例如用於資料存取的 Amazon S3、用於記錄的 CloudWatch、用於 AWS Glue 資料目錄的存取，或其他根據您的工作負載需求的服務。

  如需此角色許可的詳細資訊，請參閱 [Amazon EMR Serverless 的任務執行時期角色](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html)。

所提供 JSON 文件中定義的 IAM 政策會授予這些許可：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "EMRServerlessCreateApplicationOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:CreateApplication",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessListApplicationOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:ListApplications",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessApplicationOperations",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:UpdateApplication",
                "emr-serverless:GetApplication"
            ],
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessStartJobRunOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:StartJobRun",
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessListJobRunOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:ListJobRuns",
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessJobRunOperations",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:GetJobRun",
                "emr-serverless:CancelJobRun"
            ],
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessTagResourceOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:TagResource",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "IAMPassOperationForEMRServerless",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/EMRServerlessRuntimeRole-*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "emr-serverless.amazonaws.com",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
         }
    ]
}
```

------

## 將 CreateAutoMLJob 移轉到 CreateAutoMLJobV2
<a name="autopilot-create-experiment-api-migrate-v1-v2"></a>

我們建議 `CreateAutoMLJob` 的使用者移轉至 `CreateAutoMLJobV2`。

本節透過重點介紹兩個版本之間輸入請求的物件及屬性的位置、名稱或結構的變化，說明 [CreateAutoMLJob](https://docs.aws.amazon.com/sagemaker-api/src/AWSSageMakerAPIDoc/build/server-root/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#API_CreateAutoMLJob_RequestSyntax) 與 [CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax) 在輸入參數上的差異。
+ **請求在版本之間未變更的屬性。**

  ```
  {
     "AutoMLJobName": "string",
     "AutoMLJobObjective": { 
        "MetricName": "string"
     },
     "ModelDeployConfig": { 
        "AutoGenerateEndpointName": boolean,
        "EndpointName": "string"
     },
     "OutputDataConfig": { 
        "KmsKeyId": "string",
        "S3OutputPath": "string"
     },
     "RoleArn": "string",
     "Tags": [ 
        { 
           "Key": "string",
           "Value": "string"
        }
     ]
  }
  ```
+ **請求在版本之間變更位置與結構的屬性。**

  下列屬性變更了位置：`DataSplitConfig`、`Security Config`、`CompletionCriteria`、`Mode`、`FeatureSpecificationS3Uri`、`SampleWeightAttributeName`、`TargetAttributeName`。

------
#### [ CreateAutoMLJob ]

  ```
  { 
      "AutoMLJobConfig": { 
          "Mode": "string",
          "CompletionCriteria": { 
              "MaxAutoMLJobRuntimeInSeconds": number,
              "MaxCandidates": number,
              "MaxRuntimePerTrainingJobInSeconds": number
          },
          "DataSplitConfig": { 
              "ValidationFraction": number
          },
          "SecurityConfig": { 
              "EnableInterContainerTrafficEncryption": boolean,
              "VolumeKmsKeyId": "string",
              "VpcConfig": { 
              "SecurityGroupIds": [ "string" ],
              "Subnets": [ "string" ]
              }
          },
          "CandidateGenerationConfig": { 
              "FeatureSpecificationS3Uri": "string"
          }
      },
      "GenerateCandidateDefinitionsOnly": boolean,
      "ProblemType": "string"
  }
  ```

------
#### [ CreateAutoMLJobV2 ]

  ```
  {       
      "AutoMLProblemTypeConfig": {
          "TabularJobConfig": {
              "Mode": "string",
              "ProblemType": "string",
              "GenerateCandidateDefinitionsOnly": boolean,
              "CompletionCriteria": { 
                  "MaxAutoMLJobRuntimeInSeconds": number,
                  "MaxCandidates": number,
                  "MaxRuntimePerTrainingJobInSeconds": number
              },
              "FeatureSpecificationS3Uri": "string",
              "SampleWeightAttributeName": "string",
              "TargetAttributeName": "string"
          }
      },
      "DataSplitConfig": { 
          "ValidationFraction": number
      },
      "SecurityConfig": { 
          "EnableInterContainerTrafficEncryption": boolean,
          "VolumeKmsKeyId": "string",
          "VpcConfig": { 
              "SecurityGroupIds": [ "string" ],
              "Subnets": [ "string" ]
          }
      }
  }
  ```

------
+ **下列屬性會變更版本之間的位置與結構。**

  以下 JSON 說明了 V2 中 [AutoMLCandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html) 類型的 [AutoMLJobConfig.CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html#sagemaker-Type-AutoMLJobConfig-CandidateGenerationConfig) 如何移至 [CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html) 類型的 [AutoMLProblemTypeConfig.TabularJobConfig.CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)。

------
#### [ CreateAutoMLJob ]

  ```
  {
     "AutoMLJobConfig": { 
        "CandidateGenerationConfig": { 
           "AlgorithmsConfig": [ 
              { 
                 "AutoMLAlgorithms": [ "string" ]
              }
           ],
           "FeatureSpecificationS3Uri": "string"
        }
  }
  ```

------
#### [ CreateAutoMLJobV2 ]

  ```
  {
      "AutoMLProblemTypeConfig": {
          "TabularJobConfig": {
              "CandidateGenerationConfig": { 
                  "AlgorithmsConfig": [ 
                      { 
                      "AutoMLAlgorithms": [ "string" ]
                      }
                  ],
              },
          }
      },
  }
  ```

------
+ **請求變更名稱與結構的屬性。**

  以下 JSON 說明了 V2 中 [InputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-InputDataConfig) ([AutoMLChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html) 陣列) 如何變更為 [AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig) ([AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html) 陣列)。請注意，屬性 `SampleWeightAttributeName` 與 `TargetAttributeName` 已從 `InputDataConfig` 移出並移入 `AutoMLProblemTypeConfig`。

------
#### [ CreateAutoMLJob ]

  ```
  {    
      "InputDataConfig": [ 
          { 
              "ChannelType": "string",
              "CompressionType": "string",
              "ContentType": "string",
              "DataSource": { 
                  "S3DataSource": { 
                      "S3DataType": "string",
                      "S3Uri": "string"
                  }
              },
              "SampleWeightAttributeName": "string",
              "TargetAttributeName": "string"
          }
      ]
  }
  ```

------
#### [ CreateAutoMLJobV2 ]

  ```
  {    
      "AutoMLJobInputDataConfig": [ 
          { 
              "ChannelType": "string",
              "CompressionType": "string",
              "ContentType": "string",
              "DataSource": { 
                  "S3DataSource": { 
                      "S3DataType": "string",
                      "S3Uri": "string"
                  }
              }
          }
      ]
  }
  ```

------

# Autopilot 資料集與問題類型
<a name="autopilot-datasets-problem-types"></a>

對於表格式資料 (即每一欄包含具有特定資料類型的特徵，且每一列都包含觀察值的資料)，Autopilot 可讓您選擇指定 AutoML 工作模型候選項可用的監督學習問題類型，例如二進位分類或迴歸，或者根據您提供的資料代表您進行偵測。Autopilot 也支援多種資料格式和資料類型。

**Topics**
+ [Autopilot 資料集、資料類型與格式](#autopilot-datasets)
+ [Autopilot 問題類型](#autopilot-problem-types)

## Autopilot 資料集、資料類型與格式
<a name="autopilot-datasets"></a>

Autopilot 支援格式為 CSV 檔案或 Parquet 檔案的表格式資料：每列包含具有特定資料類型的要素，每行包含一個觀測值。這兩種檔案格式的屬性差異很大。
+ **CSV** (逗號分隔值) 是基於行的檔案格式，以人類可讀的純文字格式儲存資料，這是資料交換的流行選擇，因為它們受到廣泛的應用程式的支援。
+ **Parquet** 是一種基於列的文件格式，其中資料存放和處理比基於行的文件格式更有效。這使它們成為解決大數據問題的更好選擇。

欄位接受的**資料類型**包括數字、分類、文字及由逗號分隔的數字字串組成的時間序列。如果 Autopilot 偵測到它正在處理**時間序列**序列，它會透過 [tsfresh](https://tsfresh.readthedocs.io/en/latest/text/list_of_features.html) 程式庫提供的專用特徵轉換器來進行處理。該程式庫將時間序列作為輸入並輸出諸如時間序列的最高絕對值或自相關的描述性統計之類的特徵。然後，這些輸出的特徵會用作三種問題類型之一的輸入。

Autopilot 支援在高達數百 GB 的大型資料集建立機器學習模型。有關輸入資料集的預設資源限制以及如何增加這些限制的詳細資訊，請參閱 [Autopilot 配額](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-quotas.html)。

## Autopilot 問題類型
<a name="autopilot-problem-types"></a>

對於表格式資料，您可以進一步指定候選模型可用的監督學習問題的類型，如下所示：

### 迴歸
<a name="autopilot-automate-model-development-problem-types-regression"></a>

迴歸會根據相互關聯的一或多個其他變數或屬性，估計相依目標變數的值。房價預測就是一個例子，它會使用浴室和臥室數量、房子和花園的平方英尺等特徵來進行預測。迴歸分析可建立使用一或多個這類特徵做為輸入並預測房價的模型。

### 二進位分類
<a name="autopilot-automate-model-development-problem-types-binary-classification"></a>

二進位分類是一種監督式學習，它會根據其屬性將個人指派給兩個預先定義項目的其中之一和互斥的類別。它會受到監督，因為模型會使用範例進行訓練，而範例中為屬性提供正確標籤物件。醫療診斷是二進位分類的一個例子，根據診斷檢驗的結果判斷個人是否患有疾病。

### 多類別分類
<a name="autopilot-automate-model-development-problem-types-multiclass-classification"></a>

多類別分類是一種監督式學習，會根據其屬性將個人指派給多個類別的其中之一。它會受到監督，因為模型會使用範例進行訓練，而範例中為屬性提供正確標籤物件。與文字文件最相關的主題預測就是一個例子。一個文件可能會歸類為宗教、政治或金融相關，或與多個其他預先定義主題類別的其中之一相關。

# 訓練模式與演算法支援
<a name="autopilot-model-support-validation"></a>

Autopilot 支援不同的訓練模式及演算法來解決機器學習問題、報告品質以及目標指標，並在需要時自動使用交叉驗證。

## 訓練模式
<a name="autopilot-training-mode"></a>

SageMaker Autopilot 可以根據資料集大小自動選取訓練方法，也可以手動選取訓練方法。選擇如下：
+ **整合**–Autopilot 使用 [AutoGluon](https://auto.gluon.ai/scoredebugweight/tutorials/tabular_prediction/index.html) 程式庫來訓練多個基本模型。為了找到適合您的資料集最佳組合，整合模式會以不同的模型與中繼參數設定來執行 10 次試驗。然後，Autopilot 會使用堆疊整合方法結合這些模型，以建立最佳的預測模型。如需 Autopilot 在表格式資料的整合模式下支援的演算法清單，請參閱下列**演算法支援**區段。
+ **超參數最佳化 (HPO)**–Autopilot 在您的資料集執行訓練任務時，使用 Bayesian 最佳化或多逼真度最佳化調整超參數，找到模型的最佳版本。HPO 模式選擇與您的資料集最相關的演算法，並選擇最佳的超參數範圍來調整您的模型。若要調整模型，HPO 模式最多可執行 100 次試驗 (預設值)，以尋找所選範圍內的最佳超參數設定。如果您的資料集大小小於 100 MB，Autopilot 將使用 Bayesian 最佳化。如果您的資料集大於 100 MB，Autopilot 會選擇多逼真度最佳化。

  在多逼真度最佳化中，指標會持續從訓練容器中發出。針對選取的目標指標，效能不佳的試驗會提早停止。執行良好的試驗會分配更多資源。

  如需 Autopilot 在 HPO 模式下支援的演算法清單，請參閱下列**演算法支援**區段。
+ **自動**–Autopilot 會根據您的資料集大小自動選擇整合模式或 HPO 模式。如果您的資料集大於 100 MB，Autopilot 會選擇 HPO。否則，它會選擇整合模式。在下列情況下，Autopilot 可能無法讀取您的資料集大小。
  + 如果您為 AutoML 任務啟用 Virtual Private Cloud (VPC) 模式，但包含資料集的 S3 儲存貯體僅允許從 VPC 存取。
  + 您的資料集的輸入 [S3DataType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLS3DataSource.html#sagemaker-Type-AutoMLS3DataSource-S3DataType) 為 `ManifestFile`。
  + 輸入的 [S3Uri](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLS3DataSource.html#sagemaker-Type-AutoMLS3DataSource-S3Uri) 包含超過 1000 個項目。

  如果 Autopilot 無法讀取您的資料集大小，則預設會選擇 HPO 模式。

**注意**  
若要取得最佳執行時期與效能，請針對小於 100 MB 的資料集使用整合訓練模式。

## 演算法支援
<a name="autopilot-algorithm-support"></a>

在 **HPO 模式**，Autopilot 支援下列類型的機器學習演算法：
+  [線性學習器](https://docs.aws.amazon.com/sagemaker/latest/dg/linear-learner.html)–可以解決分類或迴歸問題的監督式學習演算法。
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)–藉由結合一組較簡單且較脆弱的模型之預估值集合來嘗試精確預測目標變數的監督式學習演算法。
+ 深度學習演算法–多層感知器 (MLP) 和前饋人工神經網路。此演算法可以處理不可線性分隔的資料。

**注意**  
您不需要指定用於處理機器學習問題的演算法。Autopilot 會自動選擇合適的算法進行訓練。

在**整合模式下**，Autopilot 支援以下類型的機器學習演算法：
+ [LightGbM](https://docs.aws.amazon.com/sagemaker/latest/dg/lightgbm.html)–使用具有梯度提升的樹型演算法的最佳化架構。該演算法使用在廣度而非深度上生長的樹，並且針對速度進行了高度最佳化。
+ [CatBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/catboost.html)–使用樹型演算法與梯度提升的架構。針對處理分類變數進行最佳化。
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)–使用樹型演算法與梯度提升的架構，深度增長，而不是廣度。
+ [隨機樹系](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html)–在資料的隨機子樣本使用多個決策樹並進行取代的樹型演算法。這些樹在每個層級被分成最佳節點。每棵樹的決策被平均在一起，以防止過度學習並改善預測。
+ [Extra Tree](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html#sklearn.ensemble.ExtraTreesClassifier)–在整個資料集使用多個決策樹的樹型演算法。樹在每個層級隨機分割。對每棵樹的決定進行平均，以防止過度學習並改善預測。與隨機樹系演算法相比，額外的樹會增加一定程度的隨機化。
+ [線性模型](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model)–使用線性方程式對觀測資料中兩個變數之間關係進行建模的架構。
+ 神經網路火炬 – 使用 [Pytorch](https://pytorch.org/) 實作的神經網路模型。
+ 神經網路 fast.ai–使用 [fast.ai](https://www.fast.ai/) 實作的神經網路模型。

# 指標與驗證
<a name="autopilot-metrics-validation"></a>

本指南顯示可用於測量機器學習模型效能的指標和驗證技術。Amazon SageMaker Autopilot 會產生指標，以測量機器學習模型候選項的預測品質。針對候選項計算的指標，是使用指標 [MetricDatum](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDatum.html) 類型的陣列來指定。

## Autopilot 指標
<a name="autopilot-metrics"></a>

下列清單包含目前可用來測量 Autopilot 模型效能的指標名稱。

**注意**  
Autopilot 支援樣本權重。若要進一步了解樣本權重和可用物件指標，請參閱[Autopilot 加權指標](#autopilot-weighted-metrics)。

下列是可用的指標。

**`Accuracy`**  
 正確分類項目的數量與 (正確和不正確) 的分類項目總數的比率。它用於二進位和多類別分類。準確性衡量預測的類別值與實際值的接近程度。準確性指標的值在零 (0) 和一 (1) 之間變化。值 1 表示完美的準確性，0 表示完美的不準確性。

**`AUC`**  
 曲線下面積 (AUC) 指標用於比較和評估二元分類，適用於傳回機率的演算法，例如邏輯迴歸。若要將機率對應至分類，會將這些機率與閾值進行比較。  
相關曲線是接收者的操作特性曲線。該曲線繪製了預測 (或召回) 的真陽性率 (TPR) 與假陽性率 (FPR) 作為閾值的函式，這個閾值以上的預測會被認為是正值。增加閾值結果會導致較少的誤報，但漏報率會增加。  
AUC 是此接收者操作特性曲線下的區域。因此，AUC 會針對所有可能的分類閾值，提供模型效能的彙總度量。AUC 評分在 0 和 1 之間變化。評分為 1 表示完美的準確性，評分為一半 (0.5) 表示預測結果不比隨機分類器更好。

**`BalancedAccuracy`**  
`BalancedAccuracy`是衡量準確預測與所有預測比率的指標。這個比率是把真陽性 (TP) 和真陰性 (TN)，按照陽性 (P) 和陰性 (N) 的總數標準化之後計算出來的。其用於二元和多類別分類，定義如下：0.5\$1((TP/P)\$1(TN/N))，其值範圍從 0 到 1。在不平衡資料集之中，當陽性或陰性相互差異很大時，例如只有 1％ 的電子郵件是垃圾郵件時，`BalancedAccuracy` 可以更準確地衡量準確性。

**`F1`**  
`F1` 分數是精確度和召回率的諧波平均值，定義如下：F1 = 2\$1(精確度 \$1 召回率)/(精確度 \$1 召回率)。它用於二元分類成類別，傳統上被稱為陽性和陰性。當他們配對到實際 (正確) 類別時，我們可以說預測為真，如果它們配對失敗，則預測為假。  
精確度是真正的陽性預測之於所有陽性預測的比率，它包括資料集中的誤報。精確度是用來測量當預測出陽性類別的時候，其預測成果的品質。  
召回率 (或敏感度) 是真正陽性預測佔所有實際陽性執行個體的比率。召回率衡量模型在資料集中，預測實際類別成員的完整程度。  
F1 評分在 0 和 1 之間變化。評分 1 表示效能已達可能性的上限，0 表示最差。

**`F1macro`**  
`F1macro`分數會將 F1 評分套用至多類別分類問題。它透過計算精確度和召回率來做到這一點，然後取他們的諧波平均值來計算每個類別的 F1 分數。最後，`F1macro`將個別分數做平均，以獲得`F1macro`分數。`F1macro`分數在 0 和 1 之間變化。評分 1 表示效能已達可能性的上限，0 表示最差。

**`InferenceLatency`**  
推論延遲是指提出模型預測請求後，到從部署模型的即時端點接收模型預測之間的大約時間。此指標以秒為單位測量，且僅適用於集成模式。

**`LogLoss`**  
對數損失，也稱為跨熵損失，是一種用於評估機率輸出品質的指標，而不是輸出本身。它用於二元和多類別分類以及神經網路。它也是邏輯迴歸的成本函式。對數損失是一項重要指標，能指出模型何時有高機率發生錯誤預測。其數值介於 0 到無限大之間。如數值為 0，代表完美預測資料的模型。

**`MAE`**  
平均絕對誤差 (MAE) 是衡量預測值和實際值的不同程度，將它們與所有值進行平均。MAE 通常用於迴歸分析，以了解模型預測誤差。如為線性迴歸，MAE 表示從預測線到實際值的平均距離。MAE 被定義為絕對值誤差的總和，除以觀測值的數量。其數值範圍從 0 到無限大，數字越小，表示模型越適合資料。

**`MSE`**  
均方錯誤 (MSE) 是預測值和實際值之間的平方差異之平均值。它用於迴歸。MSE 值始終為正值。MSE 值越小，模型預測實際值的能力越好。

**`Precision`**  
精確度衡量演算法在所有找到的陽性結果中，預測出真陽性 (TP) 的成效。它的定義如下：精確度 = TP/(TP\$1FP)，其數值範圍從零 (0) 到一 (1)，並在二元分類中使用。當假陽性的成本高時，精確度是一個重要的指標。舉例來說，一個飛機安全系統被錯誤地判定為可安全飛行，這個假陽性的成本就非常高。假陽性 (FP) 反映了資料中實際上是陰性的陽性預測。

**`PrecisionMacro`**  
精確度巨集會計算多類別分類問題的精確度。它透過計算每個類別的精確度，平均這些分數以獲得多個類別的精確度來達成此目的。`PrecisionMacro` 分數範圍是從零 (0) 到一 (1)。分數高表示這個模型在所有找到的陽性結果中，預測出真陽性 (TP) 的成效顯著，而且是在好幾個類別裡平均算出來的。

**`R2`**  
R2，也稱為決定係數，在迴歸分析中，它被用來量化模型能解釋因變數變異程度的多少。數值的範圍從一 (1) 到負一 (-1)。數字越大，表示解釋的變異性越大。`R2` 值接近零 (0) 的話，就表示這模型對因變數的解釋能力很小。負值表示與資料契合度不佳，且常數函式的效能優於模型。如為線性迴歸，這是一條水平線。

**`Recall`**  
召回率衡量演算法在資料集內，正確預測所有的真陽性 (TP) 的表現。真陽性代表其為一個陽性預測，同時也是資料中的實際陽性。召回率定義如下：召回率 = TP/(TP\$1FN)，數值範圍從 0 到 1。分數越高，代表模型在資料中預測出真陽性 (TP) 的能力越好。它是在二元分類中使用。  
召回率在檢測癌症時很重要，因為它會用來找到所有的真陽性。假陰性 (FN) 反映出資料中實際上為陽性的陰性預測。通常只測量召回率是不夠的, 因為只要預測每個輸出都是真陽性，就能獲得完美的召回率分數。

**`RecallMacro`**  
在多類別分類問題中，`RecallMacro` 透過為每個類別計算召回率並將得分平均，以計算出多個類別的召回率。`RecallMacro`數值範圍從 0 到 1。分數越高，就表示這模型預測出資料集裡的真陽性 (TP) 能力越強。真陽性指的是其預測是陽性，而在資料裡實際上也是陽性。通常只測量召回率是不夠的, 因為只要預測每個輸出都是真陽性，就能獲得完美的召回率分數。

**`RMSE`**  
均方根誤差 (RMSE) 測量預測值和實際值之間，平方差異值的平方根，並對所有值進行平均。其用於迴歸分析，以了解模型預測誤差。這是能指出存在大型模型錯誤和極端值的重要指標。其數值範圍從零 (0) 到無限大，數字越小，表示模型越適合資料。RMSE 依賴於規模，因此不應該用來比較大小不同的資料集。

對模型候選項自動計算的指標，是由要解決的問題類型決定。

如需 Autopilot 支援的可用指標清單，請參閱 [Amazon SageMaker API 參考文件](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html)。

## Autopilot 加權指標
<a name="autopilot-weighted-metrics"></a>

**注意**  
除了 `Balanced Accuracy` 和 `InferenceLatency` 以外，Autopilot 僅在集成模式下支援所有[可用指標](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html#autopilot-metrics)的樣本權重。`BalanceAccuracy` 具備專屬的權重方案，用於不需要進行樣本權重的不平衡資料集。 `InferenceLatency` 不支援樣本權重。在訓練和評估模型時，目標 `Balanced Accuracy` 和 `InferenceLatency` 指標都會忽略任何現有的樣本權重。

使用者可以在自己的資料裡加上一列樣本權重，如此一來，就能確保訓練機器學習模型時，每個觀察到的資料都根據它對模型的重要性進行加權。這在一些情況下特別實用，比如說資料集裡的觀察結果重要性不一時，或者資料集裡某一類別的樣本數量跟其他的比起來特別多的時候。根據每個觀察結果的重要性，或是對少數類別的更大重要性進行加權，可以幫助提高模型的整體表現，或確保模型不會偏向多數類別。

有關如何在 Studio Classic 使用者介面中建立實驗時傳遞樣本權重的資訊，請參閱[使用 Studio Classic 建立自動執行實驗](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html)中的*步驟 7*。

有關如何在使用 API 建立自動執行實驗時以程式設計方式傳遞樣本權重的詳細資訊，請參閱[以程式設計方式建立一個 Autopilot 實驗](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html)中的*如何將樣本權重新增至 AutoML 任務*。

## Autopilot 的交叉驗證
<a name="autopilot-cross-validation"></a>

交叉驗證被用來減少模型選取中的過度契合和偏差。如果驗證資料集是從同一個群體中抽出，它也能用來評估模型對未知驗證資料集內數值的預測能力。對訓練執行個體數量有限的資料集進行訓練時，此方法尤其重要。

Autopilot 使用交叉驗證，以超參數最佳化 (HPO) 和整體訓練模式建立模型。Autopilot 交叉驗證程序的第一步，是將資料分割成 k 折疊。

### K-折疊分割
<a name="autopilot-cross-validation-kfold"></a>

K 折分割是一種將輸入訓練資料集分成多個訓練和驗證資料集的方法。該資料集被分成`k`個大小相同的子樣本，並稱為折疊。接下來，在`k-1`折疊上訓練模型，並針對剩餘的 k 個折疊 (即驗證資料集) 進行測試。該過程使用不同的資料集重複`k`次以進行驗證。

下列影像描述當 k = 4 折疊的 K 折分割。每個折疊表示為一列。深色調方塊代表訓練中使用的資料部分。剩餘的淺色方塊表示驗證資料集。

![\[用 4 折的 K 折分割，畫成盒子的樣子：深色是使用的資料，淺色的是驗證資料集。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-metrics-kfold-splits.png)


Autopilot 在超參數最佳化 (HPO) 模式和集成模式皆使用 k 折交叉驗證。

您可以像使用任何其他 Autopilot 或 SageMaker AI 模型一樣，部署使用交叉驗證建立的 Autopilot 模型。

### HPO 模式
<a name="autopilot-cross-validation-hpo"></a>

K 折交叉驗證使用 k 折分割法進行交叉驗證。在 HPO 模式下，Autopilot 會針對具有 50,000 個或更少訓練執行個體的小型資料集，自動套用 K 折交叉驗證。在訓練小型資料集時，執行交叉驗證尤其重要，因為它可以防止過度契合和選取偏差。

HPO 模式對每個用來對資料集建模的候選項演算法，都設定了*k*值為 5。多個模型在不同的分割上進行訓練，並且模型分開儲存。訓練完成後，會平均每個模型的驗證指標，以產生單一的估計指標。最後，Autopilot 將試用中的模型與最佳驗證指標結合成一個整體模型。Autopilot 使用此整體模型進行預測。

Autopilot 訓練模型的驗證指標，會顯示為模型排行榜中的目標指標。除非您另有指定，否則 Autopilot 會針對其處理的每種問題類型使用預設驗證指標。有關 Autopilot 使用的所有指標清單，請參閱[Autopilot 指標](#autopilot-metrics)。

舉例來說，[波士頓住房資料集](http://lib.stat.cmu.edu/datasets/boston)僅包含 861 個樣本。如果您建立模型來預測使用此資料集，而未對房屋銷售價格進行交叉驗證，訓練出的波士頓房價資料集就有可能不具代表性。如果您只將資料分割成訓練和驗證子集一次，則訓練折疊可能只包含主要來自郊區的資料。因此，您用來訓練的資料無法代表城市其他地方。在此範例中，由於選取結果產生偏差，您的模型可能會出現過度契合的情形。K 折交叉驗證能減少這種錯誤的風險，因為它會把可用的資料全面且隨機地用在訓練和驗證上。

交叉驗證平均會增加 20% 的訓練時間。如果資料集複雜，訓練時間也可能會大幅增加。

**注意**  
您可以查看每個折疊的訓練和驗證指標，請參閱`/aws/sagemaker/TrainingJobs`CloudWatch Logs。如需 CloudWatch Logs 的詳細資訊，請參閱[Amazon SageMaker AI 的 CloudWatch Logs](logging-cloudwatch.md)。

### 集成模式
<a name="autopilot-cross-validation-ensemble"></a>

**注意**  
Autopilot 可在集成模式下支援樣本權重。如需支援樣本權重的可用指標的清單，請參閱[Autopilot 指標](#autopilot-metrics)。

在集成模式下，無論資料集大小為何，都會執行交叉驗證。客戶可以提供自己的驗證資料集和自訂資料分割比例，或讓 Autopilot 自動將資料集分割成 80-20% 比例。然後，訓練資料會分割成 `k` 折以交叉驗證，其中的 `k` 值由 AutoGluon 引擎決定。集成由多個機器學習模型組成，其中每個模型稱為基礎模型。在 (`k`-1) 折疊上訓練單一基礎模型，並在剩餘折疊上進行折疊預測。這個過程會在所有 `k` 折疊上重複進行，而折外 (OF) 預測會被連接起來，形成單一組預測。集成中的所有基本模型，都遵循產生 OF 預測的相同過程。

下列影像描述當 `k` = 4 折疊的 K 折驗證。每個折疊表示為一列。深色調方塊代表訓練中使用的資料部分。剩餘的淺色方塊表示驗證資料集。

在映像的上半部分的每個折疊中，第一個基礎模型會在訓練資料集上進行訓練後，對驗證資料集進行預測。在每個後續折疊中，資料集都會變更角色。先前用於訓練的資料集現在用於驗證，反之亦然。在`k`折疊結束時，所有預測都會連接串連形成一組稱為折疊式 (OOF) 預測的預測。每個 `n` 基礎模型都會重複此程序。

![\[k 折驗證：四行框描述生成 OF 預測行的 4 折疊。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-metrics-kfold.PNG)


然後，將每個基本模型的 OF 預測用作訓練堆疊模型的功能。堆疊模型會學習每個基本模型的重要性。這些權重用於結合 OF 預測以形成最終預測。驗證資料集的效能會決定哪個基礎模型或堆疊模型最佳，而此模型會以最終模型的傳回。

在集成模式下，您可以提供自己的驗證資料集，或讓 Autopilot 自動執行將輸入資料集分割為 80% 的訓練和 20% 的驗證資料集。然後將訓練資料分成 `k` 折以進行交叉驗證，並為每個折疊產生 OF 預測和基礎模型。

這些 OF 預測可做為訓練堆疊模型的功能，同時學習每個基本模型的權重。這些權重用於結合 OF 預測以形成最終預測。每個折疊的驗證資料集用於所有基礎模型和堆疊模型的超參數調校。驗證資料集的效能會決定哪個基礎模型或堆疊模型是最佳模型，而此模型會以最終模型的形式傳回。

# Autopilot 模型部署與預測
<a name="autopilot-deploy-models"></a>

這份 Amazon SageMaker Autopilot 指南內的步驟，適用於進行模型部署、設定即時推論，以及用批次任務執行推論。

Autopilot 模型訓練完成後，您就可以透過以下兩種方法之一部署模型以獲得預測結果：

1. 使用 [部署用於即時推論的模型](autopilot-deploy-models-realtime.md) 設定端點並以互動方式取得預測。即時推論非常適合您具有即時、互動、低延遲需求的推論工作負載。

1. 使用 [執行批次推論任務](autopilot-deploy-models-batch.md) 對整個資料集的批次觀察進行平行預測。對於大型資料集來說，或者如果您不需要立即回應模型預測請求，批次推論是不錯的選擇。

**注意**  
為避免產生不必要的費用：不再需要從模型部署建立的端點和資源之後，您可以將其刪除。如需有關依區域劃分之執行個體定價的資訊，請參閱 [Amazon SageMaker 定價](https://aws.amazon.com/sagemaker/pricing/)。

# 部署用於即時推論的模型
<a name="autopilot-deploy-models-realtime"></a>

即時推論非常適合具有即時、互動、低延遲需求的推論工作負載。本節說明如何使用即時推論，以互動方式從模型取得預測。

若要在 Autopilot 實驗中部署產生最佳驗證指標的模型，您有多種選項。例如，在 SageMaker Studio Classic 中使用 Autopilot 時，您可以自動或手動部署模型。您也可以使用 SageMaker API 手動部署 Autopilot 模型。

以下索引標籤顯示三個用於部署模型的選項。這些指示假設您已在 Autopilot 中建立模型。如果您沒有模型，則請參閱[使用 AutoML API 建立表格式資料的迴歸或分類任務](autopilot-automate-model-development-create-experiment.md)。若要查看每個選項的範例，請開啟每個索引標籤。

## 使用 Autopilot 使用者介面 (UI) 進行部署
<a name="autopilot-deploy-models-realtime-ui"></a>

Autopilot 使用者介面包含實用的下拉式功能表、切換、工具提示等，可協助您完成模型部署。您可以使用下列程序之一部署：自動或手動。
+ **自動部署**：將 Autopilot 實驗中的最佳模型自動部署到端點

  1. 在 SageMaker Studio Classic 中[建立實驗](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html)。

  1. 將**自動部署**值切換為**是**。
**注意**  
**如果區域中端點執行個體的預設資源配額或客戶配額過於限制，則自動部署將會失敗。**在超參數最佳化 (HPO) 模式中，您至少需要有兩個 ml.m5.2xlarge 執行個體。在集成模式中，您必須至少有一個 ml.m5.12xlarge 執行個體。如果發生與配額相關的失敗，您可以[要求提高 SageMaker AI 端點執行個體的服務限制](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)。
+ **手動部署**：將 Autopilot 實驗中的最佳模型手動部署到端點

  1. 在 SageMaker Studio Classic 中[建立實驗](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html)。

  1. 將**自動部署**值切換為**否**。

  1. 在**模型名稱**下選取您想要部署的模型。

  1. 選取位於排行榜右側的橘色**部署和進階設定**按鈕。隨即開啟新索引索引標籤。

  1. 設定端點名稱、執行個體類型和其他選用資訊。

  1.  選取橘色的**部署模型**，部署到端點。

  1. 瀏覽至端點區段，在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 檢查端點建立程序的進度。該區段位於導覽面板的**推論**下拉式功能表。

  1. 端點狀態從**建立**變更為 **InService** (如下所示) 之後，返回 Studio Classic 並調用端點。  
![\[SageMaker AI 主控台：用於建立端點或檢查端點狀態的端點頁面。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-check-progress.PNG)

## 使用 SageMaker API 進行部署
<a name="autopilot-deploy-models-api"></a>

您也可以使用 **API 呼叫**部署模型，取得即時推論。本節顯示此程序使用 AWS Command Line Interface (AWS CLI) 程式碼片段的五個步驟。

如需適用於 Python (boto3) 的 AWS CLI 命令和 AWS SDK 的完整程式碼範例，請直接依照下列步驟開啟索引標籤。

1. **取得候選定義**

   從 [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers) 取得候選容器定義。這些候選定義可用來建立 SageMaker AI 模型。

   下列範例使用 [DescribeAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) API 取得最佳模型候選項目的候選定義。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker describe-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

1. **列出候選項目**

   下列範例使用 [ListCandidatesForAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidatesForAutoMLJob.html) API 列出所有候選項目。請參閱 AWS CLI 命令作為範例。

   ```
   aws sagemaker list-candidates-for-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

1. **建立 SageMaker AI 模型**

   使用上一個步驟中的容器定義，利用 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API 建立一個 SageMaker AI 模型。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker create-model --model-name '<your-custom-model-name>' \
                       --containers ['<container-definition1>, <container-definition2>, <container-definition3>]' \
                       --execution-role-arn '<execution-role-arn>' --region '<region>
   ```

1. **建立一個端點組態** 

   下列範例使用 [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html) API 建立一個端點組態。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker create-endpoint-config --endpoint-config-name '<your-custom-endpoint-config-name>' \
                       --production-variants '<list-of-production-variants>' \
                       --region '<region>'
   ```

1. **建立端點** 

   下列 AWS CLI 範例使用 [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) API 來建立端點。

   ```
   aws sagemaker create-endpoint --endpoint-name '<your-custom-endpoint-name>' \
                       --endpoint-config-name '<endpoint-config-name-you-just-created>' \
                       --region '<region>'
   ```

   使用 [DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) API來檢查端點部署的進度。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker describe-endpoint —endpoint-name '<endpoint-name>' —region <region>
   ```

   `EndpointStatus`變更為後`InService`，端點即可用於即時推論。

1. **調用端點** 

   下列命令結構會調用端點以進行即時推論。

   ```
   aws sagemaker invoke-endpoint --endpoint-name '<endpoint-name>' \ 
                     --region '<region>' --body '<your-data>' [--content-type] '<content-type>' <outfile>
   ```

下列索引標籤包含完整的程式碼範例，說明如何使用適用於 Python 的 AWS SDK (boto3) 或 AWS CLI部署模型。

------
#### [ AWS SDK for Python (boto3) ]

1. 使用下列程式碼範例**取得候選定義**。

   ```
   import sagemaker 
   import boto3
   
   session = sagemaker.session.Session()
   
   sagemaker_client = boto3.client('sagemaker', region_name='us-west-2')
   job_name = 'test-auto-ml-job'
   
   describe_response = sm_client.describe_auto_ml_job(AutoMLJobName=job_name)
   # extract the best candidate definition from DescribeAutoMLJob response
   best_candidate = describe_response['BestCandidate']
   # extract the InferenceContainers definition from the caandidate definition
   inference_containers = best_candidate['InferenceContainers']
   ```

1. 使用下列程式碼範例**建立模型**。

   ```
   # Create Model
   model_name = 'test-model' 
   sagemaker_role = 'arn:aws:iam:444455556666:role/sagemaker-execution-role'
   create_model_response = sagemaker_client.create_model(
      ModelName = model_name,
      ExecutionRoleArn = sagemaker_role,
      Containers = inference_containers 
   )
   ```

1. 使用下列程式碼範例**建立端點組態**。

   ```
   endpoint_config_name = 'test-endpoint-config'
                                                           
   instance_type = 'ml.m5.2xlarge' 
   # for all supported instance types, see 
   # https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProductionVariant.html#sagemaker-Type-ProductionVariant-InstanceType    # Create endpoint config
   
   endpoint_config_response = sagemaker_client.create_endpoint_config(
      EndpointConfigName=endpoint_config_name, 
      ProductionVariants=[
          {
              "VariantName": "variant1",
              "ModelName": model_name, 
              "InstanceType": instance_type,
              "InitialInstanceCount": 1
          }
      ]
   )
   
   print(f"Created EndpointConfig: {endpoint_config_response['EndpointConfigArn']}")
   ```

1. 使用下列程式碼範例**建立端點**並部署模型。

   ```
   # create endpoint and deploy the model
   endpoint_name = 'test-endpoint'
   create_endpoint_response = sagemaker_client.create_endpoint(
                                               EndpointName=endpoint_name, 
                                               EndpointConfigName=endpoint_config_name)
   print(create_endpoint_response)
   ```

   使用下列程式碼範例**檢查建立端點的狀態**。

   ```
   # describe endpoint creation status
   status = sagemaker_client.describe_endpoint(EndpointName=endpoint_name)["EndpointStatus"]
   ```

1. 使用下列命令結構，**調用端點**進行即時推論。

   ```
   # once endpoint status is InService, you can invoke the endpoint for inferencing
   if status == "InService":
     sm_runtime = boto3.Session().client('sagemaker-runtime')
     inference_result = sm_runtime.invoke_endpoint(EndpointName='test-endpoint', ContentType='text/csv', Body='1,2,3,4,class')
   ```

------
#### [ AWS Command Line Interface (AWS CLI) ]

1. 使用下列程式碼範例**取得候選定義**。

   ```
   aws sagemaker describe-auto-ml-job --auto-ml-job-name 'test-automl-job' --region us-west-2
   ```

1. 使用下列程式碼範例**建立模型**。

   ```
   aws sagemaker create-model --model-name 'test-sagemaker-model'
   --containers '[{
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3", amzn-s3-demo-bucket1
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/output/model.tar.gz",
       "Environment": {
           "AUTOML_SPARSE_ENCODE_RECORDIO_PROTOBUF": "1",
           "AUTOML_TRANSFORM_MODE": "feature-transform",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "application/x-recordio-protobuf",
           "SAGEMAKER_PROGRAM": "sagemaker_serve",
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code"
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/output/model.tar.gz",
       "Environment": {
           "MAX_CONTENT_LENGTH": "20971520",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv",
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,probabilities" 
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3", aws-region
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/output/model.tar.gz", 
       "Environment": { 
           "AUTOML_TRANSFORM_MODE": "inverse-label-transform", 
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv", 
           "SAGEMAKER_INFERENCE_INPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,labels,probabilities", 
           "SAGEMAKER_PROGRAM": "sagemaker_serve", 
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code"
       } 
   }]' \
   --execution-role-arn 'arn:aws:iam::1234567890:role/sagemaker-execution-role' \ 
   --region 'us-west-2'
   ```

   如需其他詳細資訊，請參閱[建立模型](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-model.html)。

   `create model` 命令以下列格式傳回回應。

   ```
   {
       "ModelArn": "arn:aws:sagemaker:us-west-2:1234567890:model/test-sagemaker-model"
   }
   ```

1. 使用下列程式碼範例**建立端點組態**。

   ```
   aws sagemaker create-endpoint-config --endpoint-config-name 'test-endpoint-config' \
   --production-variants '[{"VariantName": "variant1", 
                           "ModelName": "test-sagemaker-model",
                           "InitialInstanceCount": 1,
                           "InstanceType": "ml.m5.2xlarge"
                          }]' \
   --region us-west-2
   ```

   `create endpoint` 組態命令會以下列格式傳回回應。

   ```
   {
       "EndpointConfigArn": "arn:aws:sagemaker:us-west-2:1234567890:endpoint-config/test-endpoint-config"
   }
   ```

1. 使用下列程式碼範例**建立端點**。

   ```
   aws sagemaker create-endpoint --endpoint-name 'test-endpoint' \    
   --endpoint-config-name 'test-endpoint-config' \                 
   --region us-west-2
   ```

   `create endpoint` 命令以下列格式傳回回應。

   ```
   {
       "EndpointArn": "arn:aws:sagemaker:us-west-2:1234567890:endpoint/test-endpoint"
   }
   ```

   使用下列[描述端點](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-endpoint.html) CLI 程式碼範例，檢查端點部署的進度。

   ```
   aws sagemaker describe-endpoint --endpoint-name 'test-endpoint' --region us-west-2
   ```

   先前的進度檢查會以下列格式傳回回應。

   ```
   {
       "EndpointName": "test-endpoint",
       "EndpointArn": "arn:aws:sagemaker:us-west-2:1234567890:endpoint/test-endpoint",
       "EndpointConfigName": "test-endpoint-config",
       "EndpointStatus": "Creating",
       "CreationTime": 1660251167.595,
       "LastModifiedTime": 1660251167.595
   }
   ```

   `EndpointStatus` 變更為 `InService` 後，端點即可用於即時推論。

1. 使用下列命令結構，**調用端點**進行即時推論。

   ```
   aws sagemaker-runtime invoke-endpoint --endpoint-name 'test-endpoint' \
   --region 'us-west-2' \
   --body '1,51,3.5,1.4,0.2' \
   --content-type 'text/csv' \
   '/tmp/inference_output'
   ```

   如需更多選項，請參閱[調用端點](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker-runtime/invoke-endpoint.html)。

------

## 從不同帳戶部署模型
<a name="autopilot-deploy-models-realtime-across-accounts"></a>

您可以使用與產生模型之原始帳戶不同的帳戶部署 Autopilot 模型。本節說明如何執行下列操作，實作跨帳戶模型部署：   授予許可，扮演您要當成部署來源之帳戶 (產生帳戶) 角色。   從部署帳戶撥打電話至 `DescribeAutoMLJob`，取得模型資訊。   從產生帳戶授予模型成品的存取權限。   

1. **授予部署帳戶的許可** 

   若要扮演產生帳戶的角色，您必須授予許可至部署帳戶。這可讓部署帳戶描述產生帳戶中的 Autopilot 任務。

   下列範例使用具有受信任 `sagemaker-role` 實體的產生帳戶。此範例顯示如何授予部署帳戶識別碼 111122223333 的許可，扮演產生帳戶的角色。

   ```
   "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "sagemaker.amazonaws.com"
                   ],
                   "AWS": [ "111122223333"]
               },
               "Action": "sts:AssumeRole"
           }
   ```

   識別碼 111122223333 的新帳戶現在可以扮演產生帳號的角色。

   接下來，從部署帳戶呼叫 `DescribeAutoMLJob` API，取得產生帳戶所建立之任務的描述。

   下列程式碼範例描述部署帳戶的模型。

   ```
   import sagemaker 
   import boto3
   session = sagemaker.session.Session()
   
   sts_client = boto3.client('sts')
   sts_client.assume_role
   
   role = 'arn:aws:iam::111122223333:role/sagemaker-role'
   role_session_name = "role-session-name"
   _assumed_role = sts_client.assume_role(RoleArn=role, RoleSessionName=role_session_name)
   
   credentials = _assumed_role["Credentials"]
   access_key = credentials["AccessKeyId"]
   secret_key = credentials["SecretAccessKey"]
   session_token = credentials["SessionToken"]
   
   session = boto3.session.Session()
           
   sm_client = session.client('sagemaker', region_name='us-west-2', 
                              aws_access_key_id=access_key,
                               aws_secret_access_key=secret_key,
                               aws_session_token=session_token)
   
   # now you can call describe automl job created in account A 
   
   job_name = "test-job"
   response= sm_client.describe_auto_ml_job(AutoMLJobName=job_name)
   ```

1. 將**部署帳戶的存取權授予產生帳戶**中的模型成品。

   部署帳戶僅需要產生帳戶中模型成品的存取權即可部署成品。這些位於模型產生期間在原始 `CreateAutoMLJob` API 呼叫中指定的 [S3OutPutPath](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html#sagemaker-Type-AutoMLOutputDataConfig-S3OutputPath)。

   若要授予部署帳戶模型成品的存取權，請選擇下列其中一個選項：

   1. 從產生帳戶將 `ModelDataUrl` 的[存取權授予](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/)部署帳戶。

      接下來，您必須授予部署帳戶扮演該角色的許可。請遵循[即時推論步驟](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-deploy-models.html#autopilot-deploy-models-realtime)進行部署。

   1. 將產生帳戶之原始 [S3OutputPath](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html#sagemaker-Type-AutoMLOutputDataConfig-S3OutputPath) 的[模型成品](https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/)複製到產生帳戶。

      若要授予模型成品的存取權，您必須定義 `best_candidate` 模型，並將模型容器重新指派給新帳戶。

      下列範例顯示如何定義 `best_candidate` 模型並重新指派 `ModelDataUrl`。

      ```
      best_candidate = automl.describe_auto_ml_job()['BestCandidate']
      
      # reassigning ModelDataUrl for best_candidate containers below
      new_model_locations = ['new-container-1-ModelDataUrl', 'new-container-2-ModelDataUrl', 'new-container-3-ModelDataUrl']
      new_model_locations_index = 0
      for container in best_candidate['InferenceContainers']:
          container['ModelDataUrl'] = new_model_locations[new_model_locations_index++]
      ```

      指派此容器之後，請遵循 [使用 SageMaker API 進行部署](#autopilot-deploy-models-api) 中的步驟進行部署。

若要在即時推論構建承載，請參閱筆記本範例，[定義測試承載](https://aws.amazon.com/getting-started/hands-on/machine-learning-tutorial-automatically-create-models)。若要從 CSV 檔案建立承載並調用端點，請參閱[自動建立機器學習模型](https://aws.amazon.com/getting-started/hands-on/create-machine-learning-model-automatically-sagemaker-autopilot/#autopilot-cr-room)中的**使用模型預測**一節。

# 執行批次推論任務
<a name="autopilot-deploy-models-batch"></a>

批次推論 (也稱為離線推論) 會根據觀察批次產生模型預測。對於大型資料集來說，或者如果您不需要立即回應模型預測請求，批次推論是不錯的選擇。相反地，線上推論 ([即時推論](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-deploy-models.html#autopilot-deploy-models-realtime)) 可即時產生預測。您可以使用 [SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/)、Autopilot 使用者介面 (UI)、適用於 [AWS Python 的 SDK (boto3)](https://aws.amazon.com/sdk-for-python/) 或 AWS Command Line Interface ()，從 Autopilot 模型進行批次推論[AWS CLI](https://docs.aws.amazon.com/cli/)。

下列索引索引標籤顯示三個部署模型的選項：使用 API、Autopilot 使用者介面，或使用 API 從不同帳戶進行部署。這些指示假設您已在 Autopilot 中建立模型。如果您沒有模型，則請參閱[使用 AutoML API 建立表格式資料的迴歸或分類任務](autopilot-automate-model-development-create-experiment.md)。若要查看每個選項的範例，請開啟每個索引標籤。

## 使用 Autopilot 使用者介面部署模型
<a name="autopilot-deploy-models-batch-ui"></a>

Autopilot 使用者介面包含實用的下拉式功能表、切換、工具提示等，可協助您完成模型部署。

下列步驟顯示如何部署 Autopilot 實驗的模型進行批次預測。

1. 在 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 登入，然後從導覽窗格選取 **Studio**。

1. 在左側導覽窗格上，選擇 **Studio**。

1. 在**開始使用**下，選取您要在其中啟動 Studio 應用程式的網域。如果您的使用者設定檔只屬於一個網域，您將看不到選取網域的選項。

1. 選取您要啟動 Studio Classic 應用程式的使用者設定檔。如果網域中沒有使用者設定檔，請選取**建立使用者設定檔**。如需更多詳細資訊，請參閱[新增使用者設定檔](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-user-profile-add.html)。

1. 選擇**啟動 Studio**。如果使用者設定檔屬於共用空間，請選擇**開放空間**。

1. SageMaker Studio Classic 主控台開啟時，選擇**啟動 SageMaker Studio Classic** 按鈕。

1. 從左側導覽窗格選取 **AutoML**。

1. 在**名稱**下，選取與您要部署之模型對應的 Autopilot 實驗。隨即會開啟新的 ** Autopilot 任務**索引標籤。

1. 在**模型名稱**區段中，選取您要部署的模型。

1. 選擇**部署模型**。隨即開啟新索引索引標籤。

1. 選擇頁面最上方的**進行批次預測**。

1. 針對**批次轉換工作組態**，請輸入**執行個體類型**、**執行個體計數**和其他選用資訊。

1. 在**輸入資料組態**區段中，開啟下拉式功能表。

   1. 針對 **S3 資料類型**，請選擇 **ManifestFile** 或 **S3Prefix**。

   1. 針對**分割類型**，請選擇**線**、**RecordIO**、**TFRecord** 或**無**。

   1. 針對**壓縮**，請選擇 **GZIP** 或**無**。

1. 針對 **S3 位置**，請輸入輸入資料的 Amazon S3 儲存貯體位置和其他選用資訊。

1. 在**輸出資料組態**下，請輸入輸出資料的 S3 儲存貯體，然後選擇[組合任務輸出](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformOutput.html#sagemaker-Type-TransformOutput-AssembleWith)的方式。

   1. 針對**其他組態 (選用)**，您可以輸入 MIME 類型和 **S3 加密金鑰**。

1. 針對**輸入/輸出篩選和資料聯結 (選用)**，您可以輸入 JSONPath 運算式篩選輸入資料、將輸入來源資料與輸出資料聯結，然後輸入 JSONPath 運算式篩選輸出資料。

   1. 如需每種篩選條件類型的範例，請參閱 [DataProcessing API](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataProcessing.html#sagemaker-Type-DataProcessing-InputFilter)。

1. 若要對輸入資料集執行批次預測，請選取**建立批次轉換任務**。新的**批次轉換任務**索引標籤隨即出現。

1. 在**批次轉換任務**索引標籤：在**狀態**區段尋找任務的名稱。然後檢查任務的進度。

## 使用 SageMaker API 進行部署
<a name="autopilot-deploy-models-batch-steps"></a>

若要使用 SageMaker API 進行批次推論，有三個步驟：

1. **取得候選定義** 

   [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers) 的候選定義可用來建立 SageMaker AI 模型。

   下列範例顯示如何使用 [DescribeAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) API 取得最佳模型候選項目的候選定義。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker describe-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

   使用 [ListCandidatesForAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidatesForAutoMLJob.html) API 列出所有候選項目。請參閱 AWS CLI 命令作為範例。

   ```
   aws sagemaker list-candidates-for-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

1. **建立 SageMaker AI 模型**

   若要使用 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API 建立 SageMaker AI 模型，請使用先前步驟中的容器定義。請參閱 AWS CLI 命令作為範例。

   ```
   aws sagemaker create-model --model-name '<your-custom-model-name>' \
                       --containers ['<container-definition1>, <container-definition2>, <container-definition3>]' \
                       --execution-role-arn '<execution-role-arn>' --region '<region>
   ```

1. **建立 SageMaker AI 轉換任務** 

   下列範例使用 [CreateTransformJob](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-transform-job.html) API 建立 SageMaker AI 轉換任務。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker create-transform-job --transform-job-name '<your-custom-transform-job-name>' --model-name '<your-custom-model-name-from-last-step>'\
   --transform-input '{
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix", 
                   "S3Uri": "<your-input-data>" 
               }
           },
           "ContentType": "text/csv",
           "SplitType": "Line"
       }'\
   --transform-output '{
           "S3OutputPath": "<your-output-path>",
           "AssembleWith": "Line" 
       }'\
   --transform-resources '{
           "InstanceType": "<instance-type>", 
           "InstanceCount": 1
       }' --region '<region>'
   ```

使用 [DescribeTransformJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTransformJob.html) API 檢查轉換任務的進度。請參閱下列 AWS CLI 命令做為範例。

```
aws sagemaker describe-transform-job --transform-job-name '<your-custom-transform-job-name>' --region <region>
```

任務完成後，`<your-output-path>` 會提供預測的結果。

輸出檔案名稱的格式如下：`<input_data_file_name>.out`。例如，如果輸入檔案是 `text_x.csv`，則輸出名稱將是 `text_x.csv.out`。

下列索引標籤顯示 SageMaker Python SDK、 AWS SDK for Python (boto3) 和 的程式碼範例 AWS CLI。

------
#### [ SageMaker Python SDK ]

下列範例使用 **[SageMaker Python SDK ](https://sagemaker.readthedocs.io/en/stable/overview.html)** 進行批次預測。

```
from sagemaker import AutoML

sagemaker_session= sagemaker.session.Session()

job_name = 'test-auto-ml-job' # your autopilot job name
automl = AutoML.attach(auto_ml_job_name=job_name)
output_path = 's3://test-auto-ml-job/output'
input_data = 's3://test-auto-ml-job/test_X.csv'

# call DescribeAutoMLJob API to get the best candidate definition
best_candidate = automl.describe_auto_ml_job()['BestCandidate']
best_candidate_name = best_candidate['CandidateName']

# create model
model = automl.create_model(name=best_candidate_name, 
               candidate=best_candidate)

# create transformer
transformer = model.transformer(instance_count=1, 
    instance_type='ml.m5.2xlarge',
    assemble_with='Line',
    output_path=output_path)

# do batch transform
transformer.transform(data=input_data,
                      split_type='Line',
                       content_type='text/csv',
                       wait=True)
```

------
#### [ AWS SDK for Python (boto3) ]

 下列範例使用**適用於 Python 的AWS SDK (boto3)** 進行批次預測。

```
import sagemaker 
import boto3

session = sagemaker.session.Session()

sm_client = boto3.client('sagemaker', region_name='us-west-2')
role = 'arn:aws:iam::1234567890:role/sagemaker-execution-role'
output_path = 's3://test-auto-ml-job/output'
input_data = 's3://test-auto-ml-job/test_X.csv'

best_candidate = sm_client.describe_auto_ml_job(AutoMLJobName=job_name)['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['CandidateName']

# create model
reponse = sm_client.create_model(
    ModelName = best_candidate_name,
    ExecutionRoleArn = role,
    Containers = best_candidate_containers 
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName=f'{best_candidate_name}-transform-job',
    ModelName=model_name,
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': 'S3Prefix',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/csv",
        'SplitType': 'Line'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': 'ml.m5.2xlarge',
        'InstanceCount': 1,
    },
)
```

批次推論任務以下列格式傳回回應。

```
{'TransformJobArn': 'arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-transform-job',
 'ResponseMetadata': {'RequestId': '659f97fc-28c4-440b-b957-a49733f7c2f2',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amzn-requestid': '659f97fc-28c4-440b-b957-a49733f7c2f2',
   'content-type': 'application/x-amz-json-1.1',
   'content-length': '96',
   'date': 'Thu, 11 Aug 2022 22:23:49 GMT'},
  'RetryAttempts': 0}}
```

------
#### [ AWS Command Line Interface (AWS CLI) ]

1. 使用下列程式碼範例**取得候選定義**。

   ```
   aws sagemaker describe-auto-ml-job --auto-ml-job-name 'test-automl-job' --region us-west-2
   ```

1. 使用下列程式碼範例**建立模型**。

   ```
   aws sagemaker create-model --model-name 'test-sagemaker-model'
   --containers '[{
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz",
       "Environment": {
           "AUTOML_SPARSE_ENCODE_RECORDIO_PROTOBUF": "1",
           "AUTOML_TRANSFORM_MODE": "feature-transform",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "application/x-recordio-protobuf",
           "SAGEMAKER_PROGRAM": "sagemaker_serve",
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code"
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/tuning/flicdf10v2-dpp0-xgb/test-job1E9-244-7490a1c0/output/model.tar.gz",
       "Environment": {
           "MAX_CONTENT_LENGTH": "20971520",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv",
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,probabilities" 
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3", 
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz", 
       "Environment": { 
           "AUTOML_TRANSFORM_MODE": "inverse-label-transform", 
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv", 
           "SAGEMAKER_INFERENCE_INPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,labels,probabilities", 
           "SAGEMAKER_PROGRAM": "sagemaker_serve", 
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code" 
       } 
   }]' \
   --execution-role-arn 'arn:aws:iam::1234567890:role/sagemaker-execution-role' \
   --region 'us-west-2'
   ```

1. 使用下列程式碼範例**建立轉換任務**。

   ```
   aws sagemaker create-transform-job --transform-job-name 'test-tranform-job'\
    --model-name 'test-sagemaker-model'\
   --transform-input '{
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "SplitType": "Line"
       }'\
   --transform-output '{
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line"
       }'\
   --transform-resources '{
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       }'\
   --region 'us-west-2'
   ```

1. 使用下列程式碼範例**檢查轉換任務進度**。

   ```
   aws sagemaker describe-transform-job --transform-job-name  'test-tranform-job' --region us-west-2
   ```

   以下是轉換任務的回應。

   ```
   {
       "TransformJobName": "test-tranform-job",
       "TransformJobArn": "arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-tranform-job",
       "TransformJobStatus": "InProgress",
       "ModelName": "test-model",
       "TransformInput": {
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "CompressionType": "None",
           "SplitType": "Line"
       },
       "TransformOutput": {
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line",
           "KmsKeyId": ""
       },
       "TransformResources": {
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       },
       "CreationTime": 1662495635.679,
       "TransformStartTime": 1662495847.496,
       "DataProcessing": {
           "InputFilter": "$",
           "OutputFilter": "$",
           "JoinSource": "None"
       }
   }
   ```

   `TransformJobStatus` 變更為 `Completed` 之後，您可以在 `S3OutputPath` 檢查推論結果。

------

## 從不同帳戶部署模型
<a name="autopilot-deploy-models-batch-across-accounts"></a>

若要在與產生模型之帳戶不同的帳戶中建立批次推論任務，請遵循[從不同帳戶部署模型](autopilot-deploy-models-realtime.md#autopilot-deploy-models-realtime-across-accounts)中的指示。然後，您可以遵循 [使用 SageMaker API 進行部署](#autopilot-deploy-models-batch-steps) 建立模型與轉換任務。

# 檢視模型詳細資訊
<a name="autopilot-models-details"></a>

Autopilot 會產生您可以取得的模型候選項之詳細資訊。這些詳細資訊包括下列項目：
+ 表示每個特徵重要性的聚合 SHAP 值的繪圖。這有助於解釋您的模型預測。
+ 各種訓練和驗證指標的摘要統計資料，包括目標指標。
+ 用於訓練和調整模型的超參數清單。

若要在執行 Autopilot 任務後檢視模型詳細資訊，請遵循下列步驟：

1. 從左側導覽窗格中選擇**首頁**圖示 (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png))，以檢視最上層**的 Amazon SageMaker Studio Classic** 導覽選單。

1. 從主要工作區域中，選取 **AutoML** 卡片。這會開啟新的** Autopilot **索引標籤。

1. 在**名稱**欄位中，選取您想要檢閱詳細資訊的 Autopilot 任務。這將開啟新的 **Autopilot 任務**索引標籤。

1. 在 **Autopilot 任務**面板中，每個模型旁的**模型名稱**下都會列出該模型的指標值，包括**目標**指標。**最佳模型**會列在**模型名稱**下的清單頂端，並在**模型**索引標籤中強調顯示。

   1. 若要檢閱模型詳細資訊，請選取您感興趣的模型，然後選取**檢視模型詳細資訊**。這會開啟新的**模型詳細資訊**索引標籤。

1. **模型詳細資訊**索引標籤分為四個子節。

   1. **解釋**索引標籤的頂部有一張圖表，代表每個特徵重要性的聚合 SHAP 值。接下來是此模型的指標和超參數值。

   1. **效能**索引標籤包含指標統計資料的混淆矩陣。

   1. **成品**索引標籤包含模型輸入、輸出和中繼結果的相關資訊。

   1. **網路**索引標籤總結了您的網路隔離和加密選項。
**注意**  
**效能**索引標籤中的特徵重要性和資訊，僅為**最佳模型**而產生。

   有關 SHAP 值如何協助解釋以特徵重要性為基礎的預測，請參閱白皮書[了解模型可解釋性](https://pages.awscloud.com/rs/112-TZM-766/images/Amazon.AI.Fairness.and.Explainability.Whitepaper.pdf)。其他資訊也可在 SageMaker AI 開發人員指南中的 [模型可解釋性](clarify-model-explainability.md)主題中找到。

# 檢視 Autopilot 模型效能報告
<a name="autopilot-model-insights"></a>

Amazon SageMaker AI 模型品質報告 (也稱為效能報告) 可為 AutoML 任務產生的最佳模型候選項，提供洞察和品質資訊。這包括任務詳細資訊、模型問題類型、目標函式，以及與問題類型相關的其他資訊。本指南說明如何以圖形方式檢視 Amazon SageMaker Autopilot 效能指標，或以 JSON 檔案中的原始資料檢視指標。

例如，在分類問題中，模型品質報告包括下列項目：
+ 混淆矩陣
+ 接收者操作特性曲線 (AUC) 下的區域
+ 說明誤報和漏報的資訊
+ 真陽性和誤報之間的權衡
+ 精確度和召回率之間的權衡

Autopilot 還為所有候選模型提供效能指標。這些指標是利用所有訓練資料計算而得，並用來估算模型效能。根據預設值，主要工作區域包括這些指標。指標類型取決於要解決的問題類型。

如需 Autopilot 支援的可用指標清單，請參閱 [Amazon SageMaker API 參考文件](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html)。

您可以使用相關指標對模型候選項進行排序，以幫助您選擇和部署滿足商業需求的模型。有關這些指標的定義，請參閱[自動駕駛儀候選指標](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-metrics-validation.html#autopilot-metrics)主題。

若要檢視 Autopilot 任務中的成效報告，請依照下列步驟執行：

1. 在左側導覽窗格中，選擇**首頁**圖示![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png)，以檢視頂層的 **Amazon SageMaker Studio Classic** 導覽功能表。

1. 從主要工作區域中，選取 **AutoML** 卡片。這會開啟新的** Autopilot **索引標籤。

1. 在**名稱**欄位中，選取您想要檢閱詳細資訊的 Autopilot 任務。這將開啟新的 **Autopilot 任務**索引標籤。

1. 在 **Autopilot 任務**面板中，每個模型旁的**模型名稱**下都會列出該模型的指標值，包括**目標**指標。**最佳模型**會列在**模型名稱**下的清單頂端，並在**模型**索引標籤中強調顯示。

   1. 若要檢閱模型詳細資訊，請選取您感興趣的模型，然後選取**在模型詳細資訊中檢閱**。這會開啟新的**模型詳細資訊**索引標籤。

1. 選擇**解釋**和**成品**索引標籤之間的**效能**索引標籤。

   1. 在索引標籤的右上方區段中，選取**下載效能報告**按鈕上的向下箭頭。

   1. 向下箭頭提供兩個選項來檢閱 Autopilot 效能指標：

      1. 您可以下載效能報告的 PDF，以圖形方式檢視指標。

      1. 您可以以原始資料檢視指標，並將其下載為 JSON 檔案。

有關如何在 SageMaker Studio Classic 中建立和執行 AutoML 作業的說明，請參閱[使用 AutoML API 建立表格式資料的迴歸或分類任務](autopilot-automate-model-development-create-experiment.md)。

效能報告包含兩個區段。第一節包含產生該模型的 Autopilot 任務詳細資訊。第二節包含模型品質報告。

## Autopilot 任務詳細資訊
<a name="autopilot-model-insights-details-and-metrics-table"></a>

報告的第一節提供有關產生該模型的 Autopilot 任務之部分一般資訊。這些任務詳細資訊包含下列資訊：
+ Autopilot 候選項名稱
+ Autopilot 任務名稱
+ 問題類型
+ 目標指標
+ 最佳化方向

## 模型品質報告
<a name="autopilot-model-quality-report"></a>

模型品質資訊是由 Autopilot 模型深入解析所產生。產生的報告內容取決於所處理的問題類型：迴歸、二元分類或多類別分類。此報告會指定評估資料集中包含的資料列數量，以及進行評估的時間。

### 指標資料表
<a name="autopilot-model-quality-report-metrics"></a>

模型品質報告的第一部份包含指標資料表。這些適用於模型所解決的問題類型。

下列影像是 Autopilot 針對迴歸問題所產生的指標資料表範例。其顯示指標名稱，值和標準差。

![\[Amazon SageMaker Autopilot 模型解析迴歸指標報告範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-regression-metrics.png)


下列影像是 Autopilot 針對多類別分類問題所產生的指標表格範例。其顯示指標名稱，值和標準差。

![\[Amazon SageMaker Autopilot 模型解析多類別分類指標報告範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-multiclass-metrics-report.png)


### 圖形化模型效能資訊
<a name="autopilot-model-quality-report-graphs"></a>

 模型品質報告的第二部分包含圖形資訊，可協助您評估模型效能。本節的內容取決於建模中使用的問題類型。

#### 接收者操作特性曲線下的區域
<a name="autopilot-model-insights-auc-roc"></a>

接收者操作特性曲線下的區域，代表真陽性和假陽性率之間的權衡。它是用於二元分類模型的業界標準準確性指標。AUC (曲線下方區域) 會測量模型在預測較高分數之正確範例與錯誤範例上的能力，並將兩者相比較。AUC 指標會針對所有可能的分類臨界值，提供模型效能的彙總測量。

AUC 指標會傳回介於 0 至 1 的小數值。接近 1 的 AUC 值代表機器學習模型準確性很高。值接近 0.5 表示模型與隨機猜測差不多。接近 0 的 AUC 值表示模型已經學會了正確的模式，但正在進行盡可能不準確的預測。接近零的值可能表示資料有問題。如需 AUC 指標的更多相關資訊，請參閱 Wikipedia 上的[接收者操作特性](https://en.wikipedia.org/wiki/Receiver_operating_characteristic)文章。

以下是接收者操作特性曲線圖下的區域範例，用於評估二元分類模型所做的預測。細虛線代表接收者操作特性曲線下的區域，該區域將不優於隨機猜測進行分類的模型進行評分，AUC 得分為 0.5。更精確的分類模型的曲線位於此隨機基準線之上，其中真陽性的比率超過假陽性率。接收者操作特性曲線下方，代表二元分類模型效能的區域是較粗的實線。

![\[Amazon SageMaker Autopilot 區域下的接收器操作特性曲線範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-receiver-operating-characteristic-curve.png)


**假陽性率** (FPR) 和**真陽性率** (TPR) 圖形元件的摘要定義如下。
+ 正確預測
  + **真陽性** (TP)：預測值為 1，且真正的值也是 1。
  + **真陰性** (TN)：預測值為 0，且真正的值也是 0。
+ 錯誤預測
  + **假陽性** (FP)：預測值為 1，而真正的值為 0。
  + **假陰性** (FN)：預測值為 0，但真正的值為 1。

**假陽性率** (FPR) 將 FP 和 TN 加總，測量被錯誤地預測為陽性 (FP) 的真陰性 (TN) 部分。範圍介於 0 至 1 之間。值愈小表示預測正確性愈佳。
+ FPR = FP/(FP\$1TN)

**真陽性率** (TPR) 將 TP 和假陰性 (FN) 加總，測量被正確地預測為陽性 (TP) 的真陽性 (TN) 部分。範圍介於 0 至 1 之間。值越大，表示預測準確性越高。
+ TPR = TP/(TP\$1FN)

#### 混淆矩陣
<a name="autopilot-model-insights-confusion-matrix"></a>

混淆矩陣提供了一種方法，將二元和多類分類不同問題的模型所做的預測準確度視覺化。模型品質報告中的混淆矩陣包含下列項目。
+ 實際標籤的正確和不正確預測的數量和百分比
+ 從左上角到右下角的對角線上，準確預測的數量和百分比
+ 從右上角到左下角的對角線上，不準確預測的數量和百分比

混淆矩陣上的不正確預測是混淆值。

下圖示範二元分類問題的混淆矩陣。其中包含下列資訊：
+ 垂直軸分為兩行，包含真與假的實際標籤。
+ 水平軸分為兩列，包含由模型預測真與假的標籤。
+ 色彩條會將較深的色調指定給較大數量的樣本，以視覺化方式指出在每個類別中分類值的數量。

在此範例中，模型正確預測了 2817 個實際假值，以及 353 個實際真值。該模型錯誤地將 130 個實際為真的預測為假，將 33 個實際假值預測為真。色調的差異表示資料集不平衡。不平衡是因為實際的假標籤數量比實際的真標籤數量更多。

![\[Amazon SageMaker Autopilot 二元混淆矩陣範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-confusion-matrix-binary.png)


下圖示範多類別分類問題的混淆矩陣。模型品質報告中的混淆矩陣包含下列項目。
+ 垂直軸分為三行，其中包含三個不同的實際標籤。
+ 水平軸分為三列，其中包含由模型預測的標籤。
+ 色彩列會將較深的色調指定給較大數量的樣本，以視覺方式指出在每個品類中分類的值數量。

**在以下範例中，模型正確地預測了標籤 **f** 的實際 354 個值，標籤 **i** 為 1094 值，標籤 m 為 852 值。**色調的差異表示資料集不平衡，因為值 **i** 比 **f** 或 **m** 有更多的標籤。

![\[Amazon SageMaker Autopilot 多類別混淆矩陣範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-confusion-matrix-multiclass.png)


所提供的模型品質報告中的混淆矩陣，最多可容納 15 個多類別分類問題類型的標籤。如果與標籤對應的列顯示`Nan`值，則表示用於檢查模型預測的驗證資料集不包含具有該標籤的資料。

#### 增益曲線
<a name="autopilot-model-insights-precision-gain-curve"></a>

在二元分類中，增益曲線預測使用資料集的一定百分比來找到正面標籤的累積效益。增益值是在訓練過程中計算的，方法是在每個十分位數處，將累積的正面觀察數除以資料中正面觀察的總數。如果在訓練期間建立的分類模型代表看不見的資料，您可以使用增益曲線來預測必須定位的資料百分比，才能取得正面標籤的百分比。使用的資料集百分比越大，找到的正面標籤百分比就越高。

在下面的範例圖表中，增益曲線是具有斜率變化的線。直線是透過隨機從資料集中選擇資料的百分比，來找到正面標籤的百分比。如果目標是 20% 的資料集，可預期找到超過 40% 的正面標籤。舉個例子，您可以考慮使用增益曲線來判定您在行銷活動中的付出。使用我們的增益曲線範例，如果一個社區有 83% 的人購買餅乾，您可以向社區約 60% 的人發送廣告。

![\[具有百分比和增益值的 Amazon SageMaker Autopilot 增益曲線範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-gain-curve.png)


#### 提升曲線
<a name="autopilot-model-insights-lift-curve"></a>

在二元分類中，提升曲線展示相較於隨機猜測，使用訓練過的模型來預測正面標籤的可能性提高。提升值是在訓練期間計算的，使用每個十分位數處的百分比增益與正面標籤比例的比率來計算。如果訓練期間建立的模型能夠反映出那些還沒見過的資料，可運用提升曲線來估算用這模型相較於隨便猜測的優勢。

在下面的範例圖表中，提升曲線是具有斜率變化的線。直線是與從資料集中隨機選擇對應百分比相關聯的提升曲線。當您的模型的分類標籤目標為資料集的 40%，可預期找到的正面標籤數量，將是隨機選擇未見資料 40% 所能找到的約 1.7 倍。

![\[具有百分比和提升值的 Amazon SageMaker Autopilot 提升曲線範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-lift-curve.png)


#### 精確召回曲線
<a name="autopilot-model-insights-precision-recall-curve"></a>

精確召回曲線代表在二元分類問題中，精確率與召回率之間的權衡。

**精確度**是在所有正面預測中 (TP 和假陽性)，被預測為正面 (TP) 的實際正面比例。範圍介於 0 至 1 之間。值越大，表示預測準確性越高。
+ 精確度 = TP/(TP\$1FP)

**召回率**是在所有實際陽性預測中 (TP 和假陰性)，被預測為陽性 (TP) 的實際陽性比例。這也被稱之為敏感度，或真陽性率。範圍介於 0 至 1 之間。較大的值表示檢測樣本中的正面值時，能獲得更好的效果。
+ 召回率 = TP/ (TP\$1FN)

分類問題的目標是盡可能正確地標籤盡可能多的元素。具有較高召回率但精確度低的系統，會傳回高比例的誤報。

下圖描述了將每封電子郵件標記為垃圾郵件的垃圾郵件篩選器。它具有很高的召回率，但精確度低，因為召回率不會衡量誤報。

如果假陽性值對您問題的影響較輕微，但對於缺少真陽性結果較嚴重，請給予更多的權重以超過精確度。例如，偵測自動駕駛車輛中即將發生的碰撞情況。

![\[高召回率和低精確度系統的 Autopilot 範例，將所有樣本建模為正面。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-high-recall-low-precision.PNG)


而相反地，具有高精確度但召回率低的系統，會傳回高比例的假陰性。將每封電子郵件標記為需要 (非垃圾郵件) 的垃圾郵件過濾器，其具有很高的精確度但召回率低，因為精確度不會計入誤報的情況。

如果您的問題受假陰性影響程度低，但是對缺少真陰性的影響程度高，請賦予精確度超過召回率更高的權重。例如，標記可疑過濾器以進行稅務稽核。

下圖描述了具有高精確度但召回率低的垃圾郵件篩選器，因為精確度不會計入誤報。

![\[高召回率和低精確度系統的 Autopilot 範例，將所有樣本建模為陰性。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-high-precision-low-recall.PNG)


同時具有高精確度和高回收率進行預測的模型，會產生大量正確標籤的結果。如需更多資訊，請參閱 Wikipedia 中的 [精確度和召回率](https://en.wikipedia.org/wiki/Precision_and_recall)文章。

#### 精確召回曲線下的區域 (AUPRC)
<a name="autopilot-model-insights-area-under-precision-recall-curve"></a>

針對二元分類問題，Amazon SageMaker Autopilot 會包含精確回收曲線 (AUPRC) 下的區域圖表。AUPRC 指標會針對所有可能的分類閾值及精確度與召回率的使用，提供模型效能的彙總測量。AUPRC 不計入真陰性狀況的數量。因此，在資料中存在大量真陰性的情況下，評估模型效能會很有用。舉例來說，在要建構一個基因模型，且其包含的變異很少的情況下。

下圖是 AUPRC 圖形的範例。其最高值的精確度為 1，召回為 0。在圖表的右下角，召回是它的最高值 (1) 和精確度為 0。在這兩點之間，AUPRC 曲線說明了精確度和召回在不同閾值之間的權衡。

![\[精確召回曲線描繪了精確度和召回在不同閾值之間的權衡。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-binary-precision-recall.png)


#### 實際對照預測圖
<a name="autopilot-model-insights-actual-vs-predicted-plot"></a>

實際對照預測圖，展示實際和預測模型值之間的差異。在下列例圖中，實線是最佳擬合的線性線。如果模型為 100% 精確，則每個預測點將等於其對應的實際點，並位於此最佳擬合線上。距離最佳擬合線的距離是模型錯誤的視覺指示。與最佳擬合線之間的距離越大，模型誤差就越高。

![\[最佳擬合線性線、不同實際出圖與預測出圖以及模型誤差的範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-actual-vs-predicted-plot.png)


#### 標準化殘差圖
<a name="autopilot-model-insights-standardized-residual"></a>

標準化的殘差圖包含以下統計術語：

**`residual`**  
(原始) 殘差展示模型預測的實際值和值之間的差異。差異越大，剩餘值越大。

**`standard deviation`**  
標準差是衡量值與平均值的變化方式。較高的標準差表示許多值與它們的平均值有很大的不同。較低的標準差表示許多值與它們的平均值差異不大。

**`standardized residual`**  
標準化殘差會將原始殘差除以其標準差。標準化殘差具有標準差單位，對於識別資料中的極端值非常有用，不考慮原始殘差的比例差異。如果標準化殘差比其他標準化殘差小得多或大得多，則表示模型不適合這些觀測值。

標準化的殘差圖可測量觀測值與預期值之間差異的強度。實際預測值會顯示在 x 軸上。值大於絕對值 3 的點通常被視為極端值。

下面的範例圖顯示了大量的標準化殘差聚集在水平軸上的 0 周圍。接近零的值表示模型與這些資料點契合。靠近圖頂部和底部的資料點，是模型較難預測的位置。

![\[Amazon SageMaker Autopilot 的標準化殘差圖範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-standardized-residual.png)


#### 殘差長條圖
<a name="autopilot-model-insights-residual-histogram"></a>

殘差長條圖包含以下統計術語：

**`residual`**  
(原始) 殘差展示模型預測的實際值和值之間的差異。差異越大，剩餘值越大。

**`standard deviation`**  
標準差是衡量值與平均值變化幅度的方式。較高的標準差表示許多值與它們的平均值有很大的不同。較低的標準差表示許多值與它們的平均值差異不大。

**`standardized residual`**  
標準化殘差會將原始殘差除以其標準差。標準化殘差具有標準差單位。這對於識別資料中的極端值非常有用，不考慮原始殘差的比例差異。如果標準化殘差比其他標準化殘差小得多或大得多，則表示模型不適合這些觀測值。

**`histogram`**  
長條圖是一個圖表，顯示一個值發生的頻率。

殘差長條圖顯示標準化殘差值的分佈。一個呈鐘形分佈並集中於零的長條圖，代表模型並未系統性地過度預測或低估任何特定範圍的目標值。

在下圖中，標準化的殘差值表示模型適合資料。如果圖表顯示遠離中心值的值，則表示這些值不適合模型。

![\[標準化的殘差值接近零，表示模型適合資料。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-residual-histogram.png)


# 為管理 AutoML 任務而產生的 Autopilot 筆記本
<a name="autopilot-automate-model-development-notebook-output"></a>

Amazon SageMaker Autopilot 會使用 AutoML 任務，在自動機器學習 (AutoML) 程序中管理關鍵任務。AutoML 任務會建立三個以筆記本為基礎的報告，描述 Autopilot 遵循的計劃以產生候選模型。

一個候選模型會包含一個 (管道，演算法) 組。首先，是**資料探勘**筆記本，描述 Autopilot 對您提供的資料有何了解。其次，有一個**候選定義**筆記本，利用資料的相關資訊來產生候選項目。第三，一份**模型深入分析**報告，可協助詳細說明 Autopilot 實驗排行榜中最佳模型的效能特徵。

**Topics**
+ [Autopilot 資料探勘報告](autopilot-data-exploration-report.md)
+ [尋找並執行候選定義筆記本](autopilot-candidate-generation-notebook.md)

您可以在 Amazon SageMaker AI 或本機執行這些筆記本，如果您已安裝 [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)。您可以像任何其他 SageMaker Studio Classic 筆記本一樣共用筆記本。筆記本是為您進行實驗而建立的。例如，您可以在筆記本中編輯下列項目：
+ 資料上使用的預處理器 
+ 執行的超參數最佳化 (HPO) 數量及其平行處理
+ 值得嘗試的演算法
+ 用於 HPO 任務的執行個體類型
+ 超參數範圍

建議修改候選定義筆記本，以用來做為學習工具。此功能可讓您了解機器學習程序期間所做的決策會對結果有何影響。

**注意**  
在預設執行個體中執行筆記本時，會產生基準成本。不過，當您從候選筆記本執行 HPO 任務時，這些任務會使用額外的運算資源，而產生其他成本。

# Autopilot 資料探勘報告
<a name="autopilot-data-exploration-report"></a>

Amazon SageMaker Autopilot 會自動清理和預先處理您的資料集。高品質資料可提升機器學習效率，並產生可進行更準確預測的模型。

由客戶提供的資料集存在一些問題，這些問題需要部份專業領域知識才能著手進行修復，無法自動解決。例如，迴歸問題的目標欄中，較大的極端值可能會導致出現非極端值的次最佳預測。根據建模目標，極端值可能需要被移除。如果目標欄被意外包含為輸入特徵之一，最終模型雖能在驗證時有良好表現，但對於未來的預測毫無價值。

為了協助客戶發現這類問題，Autopilot 提供資料探勘報告，其中包含資料潛在問題的深入分析。該報告還建議如何處理這些問題。

針對每項 Autopilot 任務，系統會產生包含報告的資料探勘筆記本。報告儲存在 Amazon S3 儲存貯體，可從輸出路徑存取。資料探勘報告的路徑通常遵循以下模式。

```
[s3 output path]/[name of the automl job]/sagemaker-automl-candidates/[name of processing job used for data analysis]/notebooks/SageMaker AIAutopilotDataExplorationNotebook.ipynb
```

資料探勘筆記本的位置可以使用儲存在 [DataExplorationNotebookLocation](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobArtifacts.html#sagemaker-Type-AutoMLJobArtifacts-DataExplorationNotebookLocation) 中的[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html)作業回應，從 Autopilot API 取得。

從 SageMaker Studio Classic 執行 Autopilot 時，您可以使用下列步驟開啟資料探勘報告：

1. 從*左側導覽窗格中*，選擇**首頁**圖示![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png)，以檢視頂層的 **Amazon SageMaker Studio Classic** 導覽功能表。

1. 從主要工作區域中，選取 **AutoML** 卡片。這會開啟新的** Autopilot **索引標籤。

1. 在 **名稱**欄位中，選擇您想要檢閱之資料探勘筆記本的 Autopilot 任務。這將開啟新的 **Autopilot 任務**索引標籤。

1. 在 **Autopilot 任務**索引標籤的右上角，選取**開啟資料探勘筆記本**。

資料探勘報告會在訓練程序開始之前，從您的資料產生。這能讓您停止可能導致無意義結果的 Autopilot 任務。同樣地，在重新執行 Autopilot 之前，您可以提出對您的資料集的任何問題或改進。如此一來，您可以使用領域專業知識，手動進行改善資料品質，再於規劃較佳的資料集上訓練模型。

資料報告僅包含靜態 Markdown，可以在任何 Jupyter 環境中開啟。包含報告的筆記本可以轉換為其他格式，例如作為 PDF 格式匯出或轉換為 HTML 檔案。如需有關轉換的更多資訊，請參閱[使用 nbconvert 指令碼將 Jupyter 筆記本轉換為其他格式。](https://nbconvert.readthedocs.io/en/latest/usage.html )。

**Topics**
+ [資料集摘要](#autopilot-data-exploration-report-dataset-summary)
+ [目標分析](#autopilot-data-exploration-report-target-analysis)
+ [資料範例](#autopilot-data-exploration-report-data-sample)
+ [重複的資料列](#autopilot-data-exploration-report-duplicate-rows)
+ [跨欄相互關聯](#autopilot-data-exploration-report-cross-column-correlations)
+ [異常列](#autopilot-data-exploration-report-cross-anomolous-rows)
+ [缺少值、基數和描述性統計](#autopilot-data-exploration-report-description-statistics-and-values)

## 資料集摘要
<a name="autopilot-data-exploration-report-dataset-summary"></a>

此**資料集摘要**提供您的資料集關鍵統計資料，包含資料列數量、資料欄數、重複的資料列百分比和遺失目標值。它的目的是在 Amazon SageMaker Autopilot 偵測到您的資料集發生問題並可能需要您介入時，向您提供快速警示。這些深入分析產生之後，會被分類為高嚴重性或低嚴重性的警告。分類取決於問題會對模型效能的信賴度造成不利影響。

高嚴重性和低嚴重性洞察，會以快顯視窗的形式顯示在摘要中。我們對大多數的洞察結果提供了建議，讓您了解如何確認資料集中可能存在需要您注意的問題。我們還提供如何解決這些問題的相關提案。

Autopilot 提供有關資料集中遺失或無效目標值的額外統計資料，協助您偵測高嚴重性洞察可能沒有掌握到的其他問題。如果出現一部分特定類型的非預期資料欄，可能表示您要使用的某些資料欄可能會從資料集中遺失。這也可能表示資料的準備或儲存方式發生問題。修正 Autopilot 引起您注意的這些資料問題，可以改善資料訓練之機器學習模型的效能。

高嚴重性洞察會顯示在摘要和報告的其他相關章節中。通常根據資料報告的區段，來提供高嚴重性和低嚴重性洞察的範例。

## 目標分析
<a name="autopilot-data-exploration-report-target-analysis"></a>

本章節中，顯示與目標欄中值分佈所相關的各種高嚴重性和低嚴重性洞察。檢查目標欄是否包含正確的值。目標欄中的值不正確，可能會導致機器學習模型無法滿足預期的業務目的。本章節介紹高嚴重性和低嚴重性的資料洞察。以下是數個範例。
+ **極端目標值** - 偏態或不尋常的迴歸目標發佈，例如重尾目標。
+ **高或低目標基數** - 指分類問題中，不常見的類別標籤的數量，或大量且唯一的類別。

對於迴歸和分類問題類型，會顯示目標欄中的無效值，例如數值無限大、`NaN`或目標欄中出現空格。視問題類型而定，會顯示不同的資料集統計資料。迴歸問題的目標欄值的發佈，可讓您驗證發佈是否符合您的預期。

下列螢幕擷取畫面顯示 Autopilot 資料報告，其中包含資料集中平均值、中位數、最小值、最大值、極端值百分比等統計資料。螢幕擷取畫面包含一個長條圖，顯示目標欄中標籤的發佈。長條圖顯示水平軸上的**目標欄值**，而**計數**在垂直軸上。螢幕擷取畫面的**極端值百分比**區段會出現一個方塊，重點標示出此統計資料的顯示位置。

![\[Autopilot 資料報告目標欄值的發佈。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-data-report-target-analysis.png)


顯示有關目標值及其發佈的多個統計資料。如果有任何極端值、無效值或缺少的百分比大於零，這些值將背呈現，以便您可以調查資料包含無法使用的目標值的原因。某些未使用目標值會重點標示為低嚴重性洞察警告。

在下面的螢幕擷取畫面中，目標欄不慎加入了一個 ` 符號，這導致無法解析目標數值。**低嚴重性洞察：出現無效的目標值** 警告。範例中的警告指出，目標欄中標籤的 0.14% 無法轉換為數值。最常見的非數字值是：["-3.8e-05","-9-05","-4.7e-05","-1.4999999999999999e-05","-4.3e-05"]。這通常表示資料收集或處理方面存在問題。Amazon SageMaker Autopilot 會忽略帶有無效目標標籤的所有觀測值。

![\[Autopilot 資料報告有關無效目標值的低嚴重性警告。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-data-report-target-analysis-invalid-target-values.png)


Autopilot 還提供一個長條圖，顯示分類標籤的發佈。

下面的螢幕擷取畫面顯示與您的目標欄的統計資訊的相關範例，包含類別數量、缺少或無效的值。一件長條圖，其水平軸上有**目標標籤**，垂直軸上有**頻率**顯示每個標籤類別的發佈。

![\[Autopilot 資料報告高基數進行分類。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-data-report-target-analysis-invalid-classification.png)


**注意**  
您可以在報告筆記本底部的**定義**章節中，找到本章節及其他章節中，所顯示的所有術語的定義。

## 資料範例
<a name="autopilot-data-exploration-report-data-sample"></a>

Autopilot 提供資料的實際範例，協助您發現資料集的問題。範例表格會水平捲動。檢查範例資料，確認資料集中是否存在所有必要的資料欄。

Autopilot 亦會計算預測力的量值，可用來識別特徵與目標變數之間的線性或非線性關係。`0`的的值表示此功能在預測目標變數時沒有預測值。`1`的值表示目標變數的最高預測力。有關預測能力的更多資訊，請參閱**定義**區段區段。

**注意**  
不推薦使用預測力來替代特徵重要性。只有在確定預測力是適合您使用案例的方法時，才使用此特徵。

以下螢幕擷取畫面顯示了一個資料範例範本。第一列包含資料集中每個資料欄的預測力。第二列包含欄位資料類型。後續列包含標籤。這些資料欄包括目標欄，後面是每個特徵欄。每個特徵欄都有相關的預測力，在此螢幕擷取畫面以方塊重點標示。在此範例中，包含特徵`x51`的資料欄具有目標變數`y`的預測力`0.68`。特徵`x55`的預測力略低於`0.59`。

![\[Autopilot 資料報告包括資料範例的預測力。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-data-report-data-sample-prediction.png)


## 重複的資料列
<a name="autopilot-data-exploration-report-duplicate-rows"></a>

如果資料集中存在重複的資料列，Amazon SageMaker Autopilot 會顯示這些資料列的範例。

**注意**  
在將資料集提供給 Autopilot 之前，不建議先透過向上取樣來平衡資料集。這可能會導致 Autopilot 訓練模型的驗證分數不正確，並且生成的模型可能無法使用。

## 跨欄相互關聯
<a name="autopilot-data-exploration-report-cross-column-correlations"></a>

Autopilot 使用 Pearsons 相互關聯係數，這是兩個特徵之間線性相關性的測量方法，以生成相互關聯矩陣。在相互關聯矩陣中，數值特徵繪製在水平軸和垂直軸上，並在其交集繪製 Pearsons 相互關聯。兩個特徵之間的相互關聯越高，係數越高，最大值為`|1|`。
+ 數值為`-1`時，表示這些特徵之間存在完全的負向相關。
+ 當一個特徵與自身相關時，數值為`1`，表示完全正向相關。

您可以透過相互關聯矩陣中的資訊，來移除高度相關的特徵。較少的特徵數量可降低模型過度擬合的機會，並且可以透過兩種方式降低生產成本。它減少了所需的 Autopilot 執行時期，並且對於某些應用程式，可以降低資料收集的成本。

以下螢幕擷取畫面顯示了`7`特徵之間相互關聯矩陣的範例。每個特徵都會以矩陣顯示在水平軸和垂直軸上。Pearsons 相互關聯顯示在兩個特徵之間的交集處。每個特徵交集都有一個與其關聯對象的顏色。相互關聯性越高，色調越暗。最暗的色調佔據矩陣的對角線，其中每個特徵都與自身相關，代表完全的相互關聯性。

![\[Autopilot 資料報告資料跨相互關聯矩陣。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-data-report-data-cross-column-statistics.png)


## 異常列
<a name="autopilot-data-exploration-report-cross-anomolous-rows"></a>

Amazon SageMaker Autopilot 會偵測您的資料集中哪些資料列可能是異常的。然後，它會為每一列指派異常狀況分數。具有負面異常狀況分數的列被視為異常。

下列螢幕擷取畫面顯示 Autopilot 分析中，包含異常值的資料列之輸出。包含異常分數的資料欄會顯示在每個資料列的資料集欄位旁。

![\[具有異常行的 Autopilot 資料集，顯示負面異常狀況分數。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-data-report-data-anomalous-rows.png)


## 缺少值、基數和描述性統計
<a name="autopilot-data-exploration-report-description-statistics-and-values"></a>

Amazon SageMaker Autopilot 會檢查您的資料集中，其個別資料欄的屬性並進行報告。在呈現此分析的資料報告的每個區段中，內容會依序排列。這樣您就可以先檢查最 “可疑” 的值。使用這些統計資料，您可以改善個別欄位的內容，並改善 Autopilot 所產生的模型品質。

Autopilot 計算包含它們的列中的分類值的幾個統計資訊。其中包含唯一項目的數量，以及用於文字的唯一字數。

Autopilot 計算包含它們的列中的數值的幾個標準統計資訊。下列映像說明這些統計資料，包含平均值、中間值、下限和最大值，以及數值類型和極端值的百分比。

![\[Autopilot 資料會報告含數值欄的統計資料。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-data-report-data-descriptive-statistics.png)


# 尋找並執行候選定義筆記本
<a name="autopilot-candidate-generation-notebook"></a>

候選定義筆記本包含每個建議的預處理步驟、演算法，以及超參數範圍。

您可以透過兩種方式選擇要訓練和調整的候選項目。首先，透過執行筆記本的部分。第二，透過執行整個筆記本來最佳化所有候選項目，以確定最佳候選人。如果您執行整個筆記本，則在任務完成之後只會顯示最佳候選項目。

若要從 SageMaker Studio Classic 執行 Autopilot，請遵循下列步驟開啟候選定義筆記本：

1. 從左側導覽面板中選擇**首頁**圖示![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png)，以檢視頂層的 **Amazon SageMaker Studio Classic** 導覽功能表。

1. 從主要工作區域中，選取 **AutoML** 卡片。這會開啟新的** Autopilot **索引標籤。

1. 在**名稱**欄位中，選擇您想要檢閱之候選定義筆記本的Autopilot 任務。這將開啟新的 **Autopilot 任務**索引標籤。

1. 在 **Autopilot 任務**索引標籤的右上角，選擇**開啟候選定義筆記本**。這會開啟 **Amazon SageMaker Autopilot 候選定義**筆記本的全新唯讀預覽。

若要執行候選定義筆記本，請遵循下列步驟執行：

1. 請選擇位於 **Amazon SageMaker Autopilot 候選定義筆記本**索引標籤頂部右方的**匯入筆記本**。這會開啟一個索引標籤，以設定新筆記本環境來執行筆記本。

1. 選取現有的 SageMaker **映像**或使用**自訂映像**。

1. 選取一個**核心**、**執行個體類型**以及選用的**啟動指令碼**。

您現在可以在此新環境中執行筆記本。

# 在產生的容器設定推論輸出
<a name="autopilot-automate-model-development-container-output"></a>

Autopilot 產生一個有序的 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerDefinition.html) 清單。這可用來建立要部署在機器學習管線的模型。此模型可用於線上託管與推論。

客戶可以使用 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidateForAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidateForAutoMLJob.html) API 列出推論容器定義。代表最佳候選的推理容器定義清單也可在 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) 回應找到。

## 迴歸與分類問題類型的推論容器定義
<a name="autopilot-problem-type-container-output"></a>

Autopilot 會產生特定於[訓練模式](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-training-mode)及任務[問題類型](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-datasets-problem-types.html#autopilot-problem-types)的推論容器。

### 超參數最佳化 (HPO) 模式的容器定義
<a name="autopilot-problem-type-container-output-hpo"></a>
+ **迴歸**：HPO 會產生兩個容器：

  1. 可將原始特徵轉換為迴歸演算法可以訓練的特徵的特徵工程容器。

  1. 用於轉換特徵並產生資料集的迴歸分數演算法容器。
+ **分類**：HPO 產生三個容器：

  1. 可將原始特徵轉換為分類演算法可以訓練的特徵的特徵工程容器。

  1. 產生機率最高的 `predicted_label` 演算法容器。此容器也可以產生與推論回應中分類結果相關的各種機率。

  1. 執行演算法預測後處理的特徵工程容器。例如，它可以對預測的標籤執行逆轉換，並將其更改為原始標籤。

### 整合模式的容器定義
<a name="autopilot-problem-type-container-output-ensemble"></a>

在組合模式下，迴歸與分類問題類型都只有一個推論容器。此推論容器轉換特徵並根據問題類型產生預測。

## 每個問題類型的推論回應
<a name="autopilot-problem-type-inference-response"></a>

### 分類模型的推論回應
<a name="autopilot-problem-type-inference-response-classification"></a>

對於分類推論容器，您可以使用四個預先定義的機碼來選取推論回應的內容：
+ `predicted_label`: 具有最高可能性的標籤預測正確標籤的標籤，由 Autopilot 確定。
+ `probability`: 
  + **HPO 模型：**用於二進位分類的 `True` 類別的機率。`predicted_label` 用於多類分類的機率。
  + **整合模型：**二進位與多類別分類的機率。`predicted_label`
+ `probabilities`：所有對應類別的機率清單。
+ `labels`：所有標籤的清單。

例如，對於二進位分類問題，如果您傳遞推論回應機組 `['predicted_label', 'probability', 'probabilities', 'labels']`，且輸出回應顯示為 `[1, 0.1, "[0.9, 0.1]", "['1', '0']"]`，則應將其解釋如下：

1. `predicted_label` 等於 `1`， 因為標籤 “1” 的機率較高 (本例為 `0.9`)。

1. 對於 HPO 模型，`probability` 等於 `0.1`，這是 Autopilot 選擇 `positive_class` (本例為 `0`) 的機率。

   對於整合模型，`probability` 等於 `0.9`，即 `predicted_label` 的機率。

1. `probabilities` 列出了 `labels` 中每個標籤的 `probability`。

1. `labels` 是資料集的唯一標籤，其中第二個標籤 (在此例中為 “0”) 是由 Autopilot 選取的 `positive_class`。

依預設，推理容器設定為僅產生 `predicted_label`。若要選取其他推論內容，您可以更新 `inference_response_keys` 參數以包含最多下列三個環境變數：
+ `SAGEMAKER_INFERENCE_SUPPORTED`：這是為了向您提供有關每個容器支援哪些內容的提示。
+ `SAGEMAKER_INFERENCE_INPUT`：這應該設置為容器在輸入有效負載中期望的機碼。
+ `SAGEMAKER_INFERENCE_OUTPUT`：這應該填充容器輸出的一組機碼。

### HPO 模式下分類模型的推論回應
<a name="autopilot-problem-type-inference-response-classification-hpo"></a>

本節說明如何使用超參數最佳化 (HPO) 模式，從分類模型設定推論回應。

若要在 HPO 模式選擇推論回應內容，請將 `SAGEMAKER_INFERENCE_INPUT` 與 `SAGEMAKER_INFERENCE_OUTPUT` 變數新增至在 HPO 模式中針對分類問題產生的第二個和第三個容器。

第二個容器 (演算法) 支援的機碼是預測標籤、機率與可能性。請注意，故意不將 `labels` 新增至 `SAGEMAKER_INFERENCE_SUPPORTED`。

第三個分類模型容器支援的機碼為 `predicted_label`、`labels`、`probability` 與 `probabilities`。因此，`SAGEMAKER_INFERENCE_SUPPORTED` 環境會包含這些機碼的名稱。

若要更新推論容器的定義以接收 `predicted_label` 與 `probability`，請使用下列程式碼範例。

```
containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label, probability'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
```

下列程式碼範例會更新推論容器的定義，以接收 `predicted_label`、`probabilities`、與 `labels`。請勿將 `labels` 傳遞給第二個容器 (演算法容器)，因為它是由第三個容器所獨立產生。

```
containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label,probabilities'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label,probabilities'})
containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probabilities,labels'})
```

下列可摺疊章節提供適用於 Python 的 SageMaker SDK 的 適用於 Python (Boto3) 的 AWS SDK 和 程式碼範例。每個區段都展示了如何在 HPO 模式為相對應的程式碼範例選擇推論回應的內容。

#### 適用於 Python (Boto3) 的 AWS SDK
<a name="autopilot-problem-type-inference-response-classification-hpo-boto3"></a>

```
import boto3

sm_client = boto3.client('sagemaker', region_name='<Region>')

role = '<IAM role>'
input_data = '<S3 input uri>'
output_path = '<S3 output uri>'

best_candidate = sm_client.describe_auto_ml_job(AutoMLJobName='<AutoML Job Name>')['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['CandidateName']

best_candidate_containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
best_candidate_containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label, probability'})
best_candidate_containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})

# create model
reponse = sm_client.create_model(
    ModelName = '<Model Name>',
    ExecutionRoleArn = role,
    Containers = best_candidate_containers
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName='<Transform Job Name>',
    ModelName='<Model Name>',
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': 'S3Prefix',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/CSV",
        'SplitType': 'Line'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': 'ml.m4.xlarge',
        'InstanceCount': 1,
    },
)
```

#### SageMaker SDK for Python
<a name="autopilot-problem-type-inference-response-classification-hpo-sdk"></a>

```
from sagemaker import AutoML

aml = AutoML.attach(auto_ml_job_name='<AutoML Job Name>')
aml_best_model = aml.create_model(name='<Model Name>',
                                  candidate=None,
                                  inference_response_keys**=['probabilities', 'labels'])

aml_transformer = aml_best_model.transformer(accept='text/csv',
                                            assemble_with='Line',
                                            instance_type='ml.m5.xlarge',
                                            instance_count=1,)

aml_transformer.transform('<S3 input uri>',
                          content_type='text/csv',
                          split_type='Line',
                          job_name='<Transform Job Name>',
                          wait=True)
```

### 整合模式下分類模型的推論回應
<a name="autopilot-problem-type-inference-response-classification-ensemble"></a>

本節說明如何使用整合模式設定分類模型的推論回應。

在**整合模式**，若要選擇推論回應的內容，請更新 `SAGEMAKER_INFERENCE_OUTPUT` 環境變數。

分類模型容器支援的機碼為 `predicted_label`、`labels`、`probability`、與 `probabilities`。這些機碼包含在 `SAGEMAKER_INFERENCE_SUPPORTED` 環境。

若要更新推論容器定義以接收 `predicted_label` 與 `probability`，請參閱下列程式碼範例。

```
containers[0]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
```

下列可折疊部分提供了用於在整合模式選擇推論回應內容的程式碼範例。此範例使用 適用於 Python (Boto3) 的 AWS SDK。

#### 適用於 Python (Boto3) 的 AWS SDK
<a name="autopilot-problem-type-inference-response-classification-ensembling-boto3"></a>

```
import boto3
sm_client = boto3.client('sagemaker', region_name='<Region>')

role = '<IAM role>'
input_data = '<S3 input uri>'
output_path = '<S3 output uri>' 

best_candidate = sm_client.describe_auto_ml_job(AutoMLJobName='<AutoML Job Name>')['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['CandidateName']

*best_candidate_containers[0]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})
*
# create model
reponse = sm_client.create_model(
    ModelName = '<Model Name>',
    ExecutionRoleArn = role,
    Containers = best_candidate_containers
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName='<Transform Job Name>',
    ModelName='<Model Name>',
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': 'S3Prefix',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/CSV",
        'SplitType': 'Line'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': 'ml.m4.xlarge',
        'InstanceCount': 1,
    },
)
```

以下可折疊部分提供了與 HPO 的 SageMaker SDK for Python 範例相同的程式碼範例。為方便起見，它包括在內。

#### SageMaker SDK for Python
<a name="autopilot-problem-type-inference-response-classification-ensembling-sdk"></a>

下列 HPO 程式碼範例使用適用於 SageMaker SDK for Python。

```
from sagemaker import AutoML

aml = AutoML.attach(auto_ml_job_name='<AutoML Job Name>')
aml_best_model = aml.create_model(name='<Model Name>',
                                  candidate=None,
                                  *inference_response_keys**=['probabilities', 'labels'])*

aml_transformer = aml_best_model.transformer(accept='text/csv',
                                            assemble_with='Line',
                                            instance_type='ml.m5.xlarge',
                                            instance_count=1,)

aml_transformer.transform('<S3 input uri>',
                          content_type='text/csv',
                          split_type='Line',
                          job_name='<Transform Job Name>',
                          wait=True)
```

# 使用 AutoML API 建立影像分類任務
<a name="autopilot-create-experiment-image-classification"></a>

下列指示說明如何使用 SageMaker [API 參考](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)建立一個 Amazon SageMaker Autopilot 工作，作為影像分類問題類型的前導實驗。

**注意**  
文字和影像分類、時間序列預測以及大型語言模型的微調等任務，僅能透過 [AutoML REST API](autopilot-reference.md) 第 2 版獨家取得。如果您選擇的語言是 Python，您可以直接參考 [適用於 Python (Boto3) 的 AWS SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html) 或 Amazon SageMaker Python SDK 的 [AutoMLV2 物件](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2)。  
偏好使用者介面便利性的使用者，可以使用 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) 存取預先訓練的模型、生成式 AI 基礎模型，或建立針對特定文字、影像分類、預測需求或生成式 AI 量身打造的自訂模型。

您可以透過使用 Amazon SageMaker Autopilot 或 AWS CLI支援的任何語言呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) API 動作，以程式設計方式建立一個 Autopilot 影像分類實驗。

有關此 API 動作如何以您選擇的語言轉換為函式的詳細資訊，請參閱 `CreateAutoMLJobV2` 的[另請參閱](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso)章節，並選擇 SDK。例如，對於 Python 使用者，請參閱 適用於 Python (Boto3) 的 AWS SDK中 `[create\$1auto\$1ml\$1job\$1v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)` 的完整要求語法。

以下是影像分類中使用之 `CreateAutoMLJobV2` API 動作的強制性和選用輸入請求參數的集合。

## 必要參數
<a name="image-classification-api-required-params"></a>

呼叫 `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` 以建立一個影像分類的 Autopilot 實驗時，您必須提供下方的值：
+ `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)`，用來指定任務的名稱。
+ 至少有一個 `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)` 中的 `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)` 來指定您的資料來源。
+ 類型 `[ImageClassificationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ImageClassificationJobConfig.html)` 的 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`。
+ `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)`，指定 Amazon S3 輸出路徑，以儲存 AutoML 任務的成品。
+ `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)` 用來指定用於存取您的資料的角色的 ARN。

所有其他參數都是選用參數。

## 選用的參數
<a name="image-classification-api-optional-params"></a>

以下各章節提供詳細資訊說明選用的參數，您可以將這些參數傳遞至您的影像分類 AutoML 任務。

### 如何指定 AutoML 任務的訓練和驗證資料集
<a name="image-classification-data-training-or-validation"></a>

您可以提供自己的驗證資料集和自訂資料分割比例，或讓 Autopilot 自動分割資料集。

每個 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html) 物件 (請參閱 [AutomlJobinputDataConfig](https://docs.aws.amazon.com/sagemaker-api/src/AWSSageMakerAPIDoc/build/server-root/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig) 所需的參數) 都有一個 `ChannelType`，可以設定為 `training` 或 `validation` 值，指定建構機器學習模型時如何使用資料。

至少必須提供一個資料來源，最多允許兩個資料來源：一個用於訓練資料，另一個用於驗證資料。將資料分割為訓練和驗證資料集的方式，取決於您有一個或兩個資料來源。

將資料分割為訓練和驗證資料集的方式，取決於您有一個或兩個資料來源。
+ 如果您只有**一個資料來源**，則`ChannelType`依預設會將其設定為`training`，且必須具有此值。
  + 如果未設定 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) 中的 `ValidationFraction` 值，則預設會使用來自此來源的 0.2 (20%) 資料進行驗證。
  + 如果設定`ValidationFraction`為介於 0 和 1 之間的值，則會根據指定的值來分割資料集，其中值會指定用於驗證的資料集分數。
+ 如果您有**兩個資料來源**，則必須將其中一個`AutoMLJobChannel`物件的`ChannelType`設定為`training`，即預設值。其他資料來源的`ChannelType`必須設定為`validation`。這兩個資料來源必須具有相同的格式 (CSV 或 Parquet)，以及相同的結構描述。在這種情況下，您不得設定`ValidationFraction`的值，因為每個來源的所有資料都會用於訓練或驗證。設定此值會導致錯誤。

### 如何指定 AutoML 工作的自動模型部署組態
<a name="image-classification-auto-model-deployment"></a>

若要針對 AutoML 工作的最佳模型候選項目啟用自動部署，請在 AutoML 工作請求中包含 `[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)`。這可讓您將最佳模型部署到 SageMaker AI 端點。以下是可用於自訂的組態。
+ 若要讓 Autopilot 產生端點名稱，請將`[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`設定為`True`。
+ 若要為端點提供您自己的名稱，請設定`[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents) to False and provide a name of your choice in [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`。

# 適用於影像分類的資料集格式和目標指標
<a name="image-classification-data-format-and-metric"></a>

在本節中，我們將了解用於影像分類的資料集可用格式，以及用來評估機器學習模型候選項目預測品質的目標指標。針對候選項計算的指標，是使用指標 [MetricDatum](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDatum.html) 類型的陣列來指定。

## 資料集格式
<a name="image-classification-data-format"></a>

Autopilot 支援 .png、.jpg 和 .jpeg 影像格式。如果您的資料集包含的影像全數為 .png，請使用 `image/png`；如果包含的影像全數為 .jpg 或 .jpeg，請使用 `image/jpeg`；若您的資料集包含混合的影像格式，請使用 `image/*`。

## 目標指標
<a name="image-classification-objective-metric"></a>

下列清單包含目前可用來衡量影像分類模型效能的指標名稱。

**`Accuracy`**  
 正確分類項目的數量與 (正確和不正確) 的分類項目總數的比率。準確性衡量預測的類別值與實際值的接近程度。準確性指標的值在零 (0) 和一 (1) 之間變化。值 1 表示完美的準確性，0 表示完美的不準確性。

# 部署 Autopilot 模型以進行即時推論
<a name="image-classification-deploy-models"></a>

訓練 Amazon SageMaker Autopilot 模型後，您可以設定端點並以互動方式取得預測。下一節說明將模型部署到 SageMaker AI 即時推論端點的步驟，以從您的模型取得預測。

## 即時推論
<a name="autopilot-deploy-models-text-image-classification-realtime"></a>

即時推論非常適合您具有即時、互動、低延遲需求的推論工作負載。本節說明如何使用即時推論，以互動方式從模型取得預測。

您可以使用 SageMaker API 手動部署在 Autopilot 實驗中產生最佳驗證指標的模型，如下所示。

或者，您也可以在建立 Autopilot 實驗時選擇自動部署選項。如需設定自動部署模型的相關資訊，請參閱 `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestParameters)` 請求參數中的 `[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)`。這會自動建立端點。

**注意**  
若要避免產生不必要的費用，您可以刪除不需要的端點和從模型部署建立的資源。如需有關依區域劃分之執行個體定價的資訊，請參閱 [Amazon SageMaker 定價](https://aws.amazon.com/sagemaker/pricing/)。

1. **取得候選項目容器定義**

   從 [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers) 取得候選容器定義。推論的容器定義是指為部署和執行訓練有素的 SageMaker AI 模型以進行預測而設計的容器化環境。

   下列 AWS CLI 命令範例使用 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API 來取得最佳模型候選項目的候選定義。

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
   ```

1. **列出候選**

   下列 AWS CLI 命令範例使用 [ListCandidatesForAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidatesForAutoMLJob.html) API 列出所有模型候選項目。

   ```
   aws sagemaker list-candidates-for-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

1. **建立 SageMaker AI 模型**

   使用先前步驟中的容器定義和您選擇的候選容器定義，透過 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API 建立 SageMaker AI 模型。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker create-model --model-name '<your-candidate-name>' \
                       --containers ['<container-definition1>, <container-definition2>, <container-definition3>]' \
                       --execution-role-arn '<execution-role-arn>' --region '<region>
   ```

1. **建立一個端點組態**

   下列 AWS CLI 命令範例使用 [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html) API 來建立端點組態。

   ```
   aws sagemaker create-endpoint-config --endpoint-config-name '<your-endpoint-config-name>' \
                       --production-variants '<list-of-production-variants>' \
                       --region '<region>'
   ```

1. **建立端點** 

   下列 AWS CLI 範例使用 [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) API 來建立端點。

   ```
   aws sagemaker create-endpoint --endpoint-name '<your-endpoint-name>' \
                       --endpoint-config-name '<endpoint-config-name-you-just-created>' \
                       --region '<region>'
   ```

   使用 [DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) API來檢查端點部署的進度。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker describe-endpoint —endpoint-name '<endpoint-name>' —region <region>
   ```

   `EndpointStatus`變更為後`InService`，端點即可用於即時推論。

1. **調用端點** 

   下列命令結構會調用端點以進行即時推論。

   ```
   aws sagemaker invoke-endpoint --endpoint-name '<endpoint-name>' \ 
                     --region '<region>' --body '<your-data>' [--content-type] '<content-type>' <outfile>
   ```

# 可解釋性報告
<a name="image-classification-explainability-report"></a>

Amazon SageMaker Autopilot 提供可解釋性報告，協助說明最佳模型候選項目如何預測影像分類問題。本報告可協助機器學習 (ML) 工程師、產品經理和其他內部利害關係人了解模型的特性。消費者和監管機構都仰賴機器學習的透明度來信任和解譯在模型預測上做出的決定。您可以使用這些說明來稽核和符合法規要求、建立對模型的信任、支援人為決定，以及偵錯和改善模型效能。

影像分類的 Autopilot 說明功能使用視覺化類別啟用地圖 (CAM) 方法來產生熱度圖，其中每種色彩的分佈和強度都會突顯影像中對特定預測最有貢獻的區域。這種方法有賴於從 [Eigen-CAM](https://arxiv.org/ftp/arxiv/papers/2008/2008.00299.pdf) 的實作衍生的主體元件。

Autopilot 產生 JSON 檔案格式的可解釋性報告。報告包含基於驗證資料集的分析詳細資訊。用於產生報告的每個影像都包含下列資訊：
+ `input_image_uri`：作為熱度圖輸入的輸入影像的 Amazon S3 URI。
+ `heatmap_image_uri`：Autopilot 產生的熱度圖影像的 Amazon S3 URI。
+ `predicted_label`：Autopilot 訓練的最佳模型預測的標籤類別。
+ `probability`：預測 `predicted_label` 的信賴度。

您可以在 `[BestCandidate.CandidateProperties.CandidateArtifactLocations.Explainability](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-Explainability)` 上的 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` 回應中，找到針對最佳候選項目產生之可解釋性成品的 Amazon S3 字首。

以下範例說明了來自 [Oxford-IIIT 寵物資料集](https://www.robots.ox.ac.uk/~vgg/data/pets/)的幾個樣本的熱度圖的外觀。熱度圖影像會顯示顏色漸層，指出影像中不同特徵的相對重要性。與藍色區域表現的特徵相比，紅色區域的特徵在預測輸入影像的 "predicted\$1label" 時更為重要。


****  

| 輸入影像 | 熱度圖影像 | 
| --- | --- | 
|  ![\[原始的狗圖像。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-image-classification-explainability-img1-input.png)  |  ![\[狗圖像的熱度圖，突顯對預測標籤的貢獻更大的區域。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-image-classification-explainability-img1-output.png)  | 
|  ![\[原始的貓圖像。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-image-classification-explainability-img2-input.png)  |  ![\[貓圖像的熱度圖，突顯對預測標籤有更大貢獻的區域。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-image-classification-explainability-img2-output.png)  | 

# 模型效能報告
<a name="image-classification-model-performance-report"></a>

Amazon SageMaker AI 模型品質報告 (也稱為效能報告) 可為 AutoML 任務產生的最佳模型候選項，提供洞察和品質資訊。這包含任務詳細資訊、模型問題類型、目標函式及各種指標的相關資訊。本節詳細說明影像分類問題的效能報告內容，並說明如何以 JSON 檔案中的原始資料形式存取指標。

您可以在 `[BestCandidate.CandidateProperties.CandidateArtifactLocations.ModelInsights](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-ModelInsights)` 上的 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` 回應中，找到針對最佳候選項目產生之模型品質報告成品的 Amazon S3 字首。

效能報告包含兩個區段：
+ 第一個區段包含產生該模型的 Autopilot 工作詳細資訊。
+  第二個區段包含具有各種效能指標的模型品質報告。

## Autopilot 任務詳細資訊
<a name="image-classification-performance-report-jobdetails"></a>

報告的第一個區段提供有關產生該模型之 Autopilot 工作的一些一般資訊。這些詳細資訊包含下列資訊：
+ Autopilot 候選項目名稱：最佳模型候選項目的名稱。
+ Autopilot 工作名稱：工作的名稱。
+ 問題類型：問題類型。在我們的案例中是*影像分類*。
+ 目標指標：用來最佳化模型效能的目標指標。在我們的案例中，*準確性*。
+ 最佳化方向：指出要最小化還是最大化目標指標。

## 模型品質報告
<a name="image-classification-performance-report-modelquality"></a>

模型品質資訊由 Autopilot 模型深入分析所產生。產生的報告內容取決於其所處理的問題類型。此報告會指定評估資料集中包含的列數，以及進行評估的時間。

### 指標資料表
<a name="image-classification-model-quality-report-metrics"></a>

模型品質報告的第一部份包含指標資料表。這些適用於模型所解決的問題類型。

下方影像是 Autopilot 針對影像或文字分類問題所產生的指標表範例。其顯示指標名稱、值和標準偏差。

![\[Amazon SageMaker Autopilot 模型解析影像或文字分類指標報告範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-multiclass-metrics-report.png)


### 圖形化模型效能資訊
<a name="image-classification-model-quality-report-graphs"></a>

模型品質報告的第二部分包含圖形化資訊，可協助您評估模型效能。本節的內容取決於已選取的問題類型。

#### 混淆矩陣
<a name="image-classification-model-insights-confusion-matrix"></a>

混淆矩陣提供了一種將二進位和多類別分類的模型針對不同問題所做的預測準確度進行視覺化的方法。

**假陽性率 (FPR) 和**相符**** (TPR) 圖形元件的摘要定義如下。
+ 正確預測
  + **真陽性** (TP)：預測值為 1，且真正的值也是 1。
  + **真陰性** (TN)：預測值為 0，且真正的值也是 0。
+ 錯誤預測
  + **假陽性** (FP)：預測值為 1，而真正的值為 0。
  + **漏報** (FN)：預測值為 0，但真正的值為 1。

模型品質報告中的混淆矩陣包含下列項目。
+ 實際標籤的正確和不正確預測的數量和百分比
+ 從左上角到右下角的對角線上，準確預測的數量和百分比
+ 從右上角到左下角的對角線上，不準確預測的數量和百分比

混淆矩陣上的不正確預測是混淆值。

下方圖表為多類別分類問題的混淆矩陣範例。模型品質報告中的混淆矩陣包含下列項目。
+ 垂直軸分為三行，其中包含三個不同的實際標籤。
+ 水平軸分為三列，其中包含由模型預測的標籤。
+ 色彩列會將較深的色調指定給較大數量的樣本，以視覺方式指出在每個品類中分類的值數量。

**在以下範例中，模型正確地預測了標籤 **f** 的實際 354 個值，標籤 **i** 為 1094 值，標籤 m 為 852 值。**色調的差異表示資料集不平衡，因為值 **i** 比 **f** 或 **m** 有更多的標籤。

![\[Amazon SageMaker Autopilot 多類別混淆矩陣範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-confusion-matrix-multiclass.png)


所提供的模型品質報告中的混淆矩陣，最多可容納 15 個多類別分類問題類型的標籤。如果與標籤對應的列顯示 `Nan` 值，則表示用於檢查模型預測的驗證資料集不包含具有該標籤的資料。

# 使用 API 建立用於文字分類的 AutoML 任務
<a name="autopilot-create-experiment-text-classification"></a>

下列指示說明如何使用 SageMaker [API 參考](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)建立一個 Amazon SageMaker Autopilot 工作，作為文字分類問題類型的前導實驗。

**注意**  
文字和影像分類、時間序列預測以及大型語言模型的微調等任務，僅能透過 [AutoML REST API](autopilot-reference.md) 第 2 版獨家取得。如果您選擇的語言是 Python，您可以直接參考 [適用於 Python (Boto3) 的 AWS SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html) 或 Amazon SageMaker Python SDK 的 [AutoMLV2 物件](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2)。  
偏好使用者介面便利性的使用者，可以使用 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) 存取預先訓練的模型、生成式 AI 基礎模型，或建立針對特定文字、影像分類、預測需求或生成式 AI 量身打造的自訂模型。

您可以透過使用 Amazon SageMaker Autopilot 或 AWS CLI支援的任何語言呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) API 動作，以程式設計方式建立一個 Autopilot 文字分類實驗。

有關此 API 動作如何以您選擇的語言轉換為函式的詳細資訊，請參閱 `CreateAutoMLJobV2` 的[另請參閱](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso)章節，並選擇 SDK。例如，對於 Python 使用者，請參閱 適用於 Python (Boto3) 的 AWS SDK中 `[create\$1auto\$1ml\$1job\$1v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)` 的完整要求語法。

以下是文字分類中使用之 `CreateAutoMLJobV2` API 動作的強制性和選用輸入請求參數的集合。

## 必要參數
<a name="text-classification-api-required-params"></a>

呼叫 `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` 以建立一個文字分類的 Autopilot 實驗時，您必須提供下方的值：
+ 用 `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)` 來指定任務的名稱。
+ 至少有一個 `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)` 中的 `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)` 來指定您的資料來源。
+ 類型 `[TextClassificationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextClassificationJobConfig.html)` 的 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`。
+ `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)`，指定 Amazon S3 輸出路徑，以儲存 AutoML 任務的成品。
+ `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)` 用來指定用於存取您的資料的角色的 ARN。

所有其他參數都是選用參數。

## 選用的參數
<a name="text-classification-api-optional-params"></a>

以下各章節提供一些選用參數的詳細資訊，您可以將這些參數傳遞至您的文字分類 AutoML 任務。

### 如何指定 AutoML 任務的訓練和驗證資料集
<a name="text-classification-data-training-or-validation"></a>

您可以提供自己的驗證資料集和自訂資料分割比例，或讓 Autopilot 自動分割資料集。

每個 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html) 物件 (請參閱 [AutomlJobinputDataConfig](https://docs.aws.amazon.com/sagemaker-api/src/AWSSageMakerAPIDoc/build/server-root/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig) 所需的參數) 都有一個 `ChannelType`，可以設定為 `training` 或 `validation` 值，指定建構機器學習模型時如何使用資料。

至少必須提供一個資料來源，最多允許兩個資料來源：一個用於訓練資料，另一個用於驗證資料。將資料分割為訓練和驗證資料集的方式，取決於您有一個或兩個資料來源。

將資料分割為訓練和驗證資料集的方式，取決於您有一個或兩個資料來源。
+ 如果您只有**一個資料來源**，則`ChannelType`依預設會將其設定為`training`，且必須具有此值。
  + 如果未設定 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) 中的 `ValidationFraction` 值，則預設會使用來自此來源的 0.2 (20%) 資料進行驗證。
  + 如果設定`ValidationFraction`為介於 0 和 1 之間的值，則會根據指定的值來分割資料集，其中值會指定用於驗證的資料集分數。
+ 如果您有**兩個資料來源**，則必須將其中一個`AutoMLJobChannel`物件的`ChannelType`設定為`training`，即預設值。其他資料來源的`ChannelType`必須設定為`validation`。這兩個資料來源必須具有相同的格式 (CSV 或 Parquet)，以及相同的結構描述。在這種情況下，您不得設定`ValidationFraction`的值，因為每個來源的所有資料都會用於訓練或驗證。設定此值會導致錯誤。

### 如何指定 AutoML 工作的自動模型部署組態
<a name="text-classification-auto-model-deployment"></a>

若要針對 AutoML 工作的最佳模型候選項目啟用自動部署，請在 AutoML 工作請求中包含 `[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)`。這可讓您將最佳模型部署到 SageMaker AI 端點。以下是可用的自訂組態。
+ 若要讓 Autopilot 產生端點名稱，請將 `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)` 設定為 `True`。
+ 若要提供您的端點名稱，請設定 `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents) to False and provide a name of your choice in [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`。

# 適用於文字分類的資料集格式和目標指標
<a name="text-classification-data-format-and-metric"></a>

在本節中，我們將了解用於文字分類的資料集可用格式，以及用來評估機器學習模型候選項目預測品質的指標。針對候選項目計算的指標是使用 [MetricDatum](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDatum.html) 類型的陣列來予以指定。

## 資料集格式
<a name="text-classification-data-format"></a>

Autopilot 支援格式化為 CSV 檔案或 Parquet 檔案的表格式資料。對於表格式資料，每一欄包含具有特定資料類型的功能，而每一列都包含一個觀察。這兩種檔案格式的屬性有著很大的差異。
+ **CSV** (逗號分隔值) 是基於行的檔案格式，以人類可讀的純文字格式儲存資料，這是資料交換的流行選擇，因為它們受到廣泛的應用程式的支援。
+ **Parquet** 是一種基於列的文件格式，其中資料存放和處理比基於行的文件格式更有效。這使它們成為解決巨量資料問題的更好選擇。

欄接受的**資料類型**包含數值、分類、文字。

Autopilot 支援在高達數百個 GB 的大型資料集上建置機器學習模型。如需有關輸入資料集的預設資源限制以及如何增加這些限制的詳細資訊，請參閱 [Amazon SageMaker Autopilot 配額](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-quotas.html)。

## 目標指標
<a name="text-classification-objective-metric"></a>

下列清單包含目前可用來衡量文字分類模型效能的指標名稱。

**`Accuracy`**  
 正確分類項目的數量與 (正確和不正確) 的分類項目總數的比率。準確性衡量預測的類別值與實際值的接近程度。準確性指標的值在零 (0) 和一 (1) 之間變化。值 1 表示完美的準確性，0 表示完美的不準確性。

# 部署 Autopilot 模型以進行即時推論
<a name="text-classification-deploy-models"></a>

訓練 Amazon SageMaker Autopilot 模型後，您可以設定端點並以互動方式取得預測。下一節說明將模型部署到 SageMaker AI 即時推論端點的步驟，以從您的模型取得預測。

## 即時推論
<a name="autopilot-deploy-models-text-image-classification-realtime"></a>

即時推論非常適合您具有即時、互動、低延遲需求的推論工作負載。本節說明如何使用即時推論，以互動方式從模型取得預測。

您可以使用 SageMaker API 手動部署在 Autopilot 實驗中產生最佳驗證指標的模型，如下所示。

或者，您也可以在建立 Autopilot 實驗時選擇自動部署選項。如需設定自動部署模型的相關資訊，請參閱 `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestParameters)` 請求參數中的 `[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)`。這會自動建立端點。

**注意**  
若要避免產生不必要的費用，您可以刪除不需要的端點和從模型部署建立的資源。如需有關依區域劃分之執行個體定價的資訊，請參閱 [Amazon SageMaker 定價](https://aws.amazon.com/sagemaker/pricing/)。

1. **取得候選項目容器定義**

   從 [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers) 取得候選容器定義。推論的容器定義是指為部署和執行訓練有素的 SageMaker AI 模型以進行預測而設計的容器化環境。

   下列 AWS CLI 命令範例使用 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API 來取得最佳模型候選項目的候選定義。

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
   ```

1. **列出候選**

   下列 AWS CLI 命令範例使用 [ListCandidatesForAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidatesForAutoMLJob.html) API 列出所有模型候選項目。

   ```
   aws sagemaker list-candidates-for-auto-ml-job --auto-ml-job-name <job-name> --region <region>
   ```

1. **建立 SageMaker AI 模型**

   使用先前步驟中的容器定義和您選擇的候選容器定義，透過 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API 建立 SageMaker AI 模型。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker create-model --model-name '<your-candidate-name>' \
                       --containers ['<container-definition1>, <container-definition2>, <container-definition3>]' \
                       --execution-role-arn '<execution-role-arn>' --region '<region>
   ```

1. **建立一個端點組態**

   下列 AWS CLI 命令範例使用 [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html) API 來建立端點組態。

   ```
   aws sagemaker create-endpoint-config --endpoint-config-name '<your-endpoint-config-name>' \
                       --production-variants '<list-of-production-variants>' \
                       --region '<region>'
   ```

1. **建立端點** 

   下列 AWS CLI 範例使用 [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) API 來建立端點。

   ```
   aws sagemaker create-endpoint --endpoint-name '<your-endpoint-name>' \
                       --endpoint-config-name '<endpoint-config-name-you-just-created>' \
                       --region '<region>'
   ```

   使用 [DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) API來檢查端點部署的進度。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker describe-endpoint —endpoint-name '<endpoint-name>' —region <region>
   ```

   `EndpointStatus`變更為後`InService`，端點即可用於即時推論。

1. **調用端點** 

   下列命令結構會調用端點以進行即時推論。

   ```
   aws sagemaker invoke-endpoint --endpoint-name '<endpoint-name>' \ 
                     --region '<region>' --body '<your-data>' [--content-type] '<content-type>' <outfile>
   ```

# 可解釋性報告
<a name="text-classification-explainability-report"></a>

Amazon SageMaker Autopilot 提供可解釋性報告，協助說明最佳模型候選項目如何預測文字分類問題。本報告可協助機器學習 (ML) 工程師、產品經理和其他內部利害關係人了解模型的特性。消費者和監管機構都仰賴機器學習的透明度來信任和解譯在模型預測上做出的決定。您可以使用這些說明來稽核和符合法規要求、建立對模型的信任、支援人為決定，以及偵錯和改善模型效能。

用於文字分類的 Autopilot 解釋性功能使用公理屬性方法*整合式漸層*。這種方法依賴於[深度網路公理屬性](https://arxiv.org/pdf/1703.01365.pdf)的實作。

Autopilot 產生 JSON 檔案格式的可解釋性報告。報告包含基於驗證資料集的分析詳細資訊。用於產生報告的每個範例都包含下列資訊：
+ `text`：已解釋的輸入文字內容。
+ `token_scores`：文字中每個權杖的分數清單。
+ 
  + `attribution`：描述權杖重要性的分數。
  + `description.partial_text`：代表權杖的部分子字串。
+ `predicted_label`：由最佳模型候選項目預測的標籤類別。
+ `probability`：預測 `predicted_label` 的信賴度。

您可以在 `[BestCandidate.CandidateProperties.CandidateArtifactLocations.Explainability](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-Explainability)` 上的 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` 回應中，找到針對最佳候選項目產生之可解釋性成品的 Amazon S3 字首。

以下是您可以在可解釋性成品中找到的分析內容範例。

```
{
    "text": "It was a fantastic movie!",
    "predicted_label": 2,
    "probability": 0.9984835,
    "token_scores": [
        {
            "attribution": 0,
            "description": {
                "partial_text": "It"
            }
        },
        {
            "attribution": -0.022447118861679088,
            "description": {
                "partial_text": "was"
            }
        },
        {
            "attribution": -0.2164326456817965,
            "description": {
                "partial_text": "a"
            }
        },
        {
            "attribution": 0.675,
            "description": {
                "partial_text": "fantastic"
            }
        },
        {
            "attribution": 0.416,
            "description": {
                "partial_text": "movie!"
            }
        }
    ]
}
```

在此 JSON 報告範例中，解釋性功能會評估文字 `It was a fantastic movie!`，並評估其每個權杖對整體預測標籤的貢獻。預測標籤為 `2`，這是一種強烈的正面情緒，機率為 99.85％。然後，JSON 範例詳細介紹了每個個別權杖對此預測的貢獻。例如，權杖 `fantastic` 具有比權杖 `was` 更強的屬性。這是對最終預測做出最大貢獻的權杖。

# 模型效能報告
<a name="text-classification-model-performance-report"></a>

Amazon SageMaker AI 模型品質報告 (也稱為效能報告) 可為 AutoML 任務產生的最佳模型候選項，提供洞察和品質資訊。這包含任務詳細資訊、模型問題類型、目標函式及各種指標的相關資訊。本節詳細說明文字分類問題的效能報告內容，並說明如何以 JSON 檔案中的原始資料形式存取指標。

您可以在 `[BestCandidate.CandidateProperties.CandidateArtifactLocations.ModelInsights](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-ModelInsights)` 上的 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` 回應中，找到針對最佳候選項目產生之模型品質報告成品的 Amazon S3 字首。

效能報告包含兩個區段：
+ 第一個區段包含產生該模型的 Autopilot 工作詳細資訊。
+  第二個區段包含具有各種效能指標的模型品質報告。

## Autopilot 任務詳細資訊
<a name="text-classification-performance-report-jobdetails"></a>

報告的第一個區段提供有關產生該模型之 Autopilot 工作的一些一般資訊。這些詳細資訊包含下列資訊：
+ Autopilot 候選項目名稱：最佳模型候選項目的名稱。
+ Autopilot 工作名稱：工作的名稱。
+ 問題類型：問題類型。在我們的案例中，*文字分類*。
+ 目標指標：用來最佳化模型效能的目標指標。在我們的案例中，*準確性*。
+ 最佳化方向：指出要最小化還是最大化目標指標。

## 模型品質報告
<a name="text-classification-performance-report-modelquality"></a>

模型品質資訊由 Autopilot 模型深入分析所產生。產生的報告內容取決於其所處理的問題類型。此報告會指定評估資料集中包含的列數，以及進行評估的時間。

### 指標資料表
<a name="text-classification-model-quality-report-metrics"></a>

模型品質報告的第一部份包含指標資料表。這些適用於模型所解決的問題類型。

下方影像是 Autopilot 針對影像或文字分類問題所產生的指標表範例。其顯示指標名稱、值和標準差。

![\[Amazon SageMaker Autopilot 模型解析影像或文字分類指標報告範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-multiclass-metrics-report.png)


### 圖形化模型效能資訊
<a name="text-classification-model-quality-report-graphs"></a>

模型品質報告的第二部分包含圖形化資訊，可協助您評估模型效能。本節的內容取決於已選取的問題類型。

#### 混淆矩陣
<a name="text-classification--model-insights-confusion-matrix"></a>

混淆矩陣提供了一種將二進位和多類別分類的模型針對不同問題所做的預測準確度進行視覺化的方法。

**假陽性率 (FPR) 和**相符**** (TPR) 圖形元件的摘要定義如下。
+ 正確預測
  + **真陽性** (TP)：預測值為 1，且真正的值也是 1。
  + **真陰性** (TN)：預測值為 0，且真正的值也是 0。
+ 錯誤預測
  + **假陽性** (FP)：預測值為 1，而真正的值為 0。
  + **漏報** (FN)：預測值為 0，但真正的值為 1。

模型品質報告中的混淆矩陣包含下列項目。
+ 實際標籤的正確和不正確預測的數量和百分比
+ 從左上角到右下角的對角線上，準確預測的數量和百分比
+ 從右上角到左下角的對角線上，不準確預測的數量和百分比

混淆矩陣上的不正確預測是混淆值。

下方圖表為多類別分類問題的混淆矩陣範例。模型品質報告中的混淆矩陣包含下列項目。
+ 垂直軸分為三行，其中包含三個不同的實際標籤。
+ 水平軸分為三列，其中包含由模型預測的標籤。
+ 色彩列會將較深的色調指定給較大數量的樣本，以視覺方式指出在每個品類中分類的值數量。

**在以下範例中，模型正確地預測了標籤 **f** 的實際 354 個值，標籤 **i** 為 1094 值，標籤 m 為 852 值。**色調的差異表示資料集不平衡，因為值 **i** 比 **f** 或 **m** 有更多的標籤。

![\[Amazon SageMaker Autopilot 多類別混淆矩陣範例。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-model-insights-confusion-matrix-multiclass.png)


所提供的模型品質報告中的混淆矩陣，最多可容納 15 個多類別分類問題類型的標籤。如果與標籤對應的列顯示 `Nan` 值，則表示用於檢查模型預測的驗證資料集不包含具有該標籤的資料。

# 使用 API 建立用於時間序列預測的 AutoML 任務
<a name="autopilot-create-experiment-timeseries-forecasting"></a>

機器學習的預測是指根據歷史資料與模式預測未來結果或趨勢的過程。透過分析過去的時間序列資料並識別基礎模式，機器學習演算法可以做出預測，並為未來行為提供有價值的洞察。在預測中，目標是開發能夠隨時間精確擷取輸入變數與目標變數之間關係的模型。這涉及檢查各種因素，例如趨勢、季節性及資料的其他相關模式。然後，收集的資訊會用來訓練機器學習模型。經過訓練的模型能夠透過取得新的輸入資料並應用學習到的模式與關係來產生預測。它可以為各種使用案例提供預測，例如銷售預測、股票市場趨勢、天氣預報、需求預測等等。

下列指示說明如何使用 SageMaker [API Reference](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html) 建立 Amazon SageMaker Autopilot 任務，做為時間序列預測問題類型的試驗。

**注意**  
文字和影像分類、時間序列預測以及大型語言模型的微調等任務，僅能透過 [AutoML REST API](autopilot-reference.md) 第 2 版獨家取得。如果您選擇的語言是 Python，您可以直接參考 [適用於 Python (Boto3) 的 AWS SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html) 或 Amazon SageMaker Python SDK 的 [AutoMLV2 物件](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2)。  
偏好使用者介面便利性的使用者，可以使用 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) 存取預先訓練的模型、生成式 AI 基礎模型，或建立針對特定文字、影像分類、預測需求或生成式 AI 量身打造的自訂模型。

您可以透過以 Amazon SageMaker Autopilot 或 AWS CLI支援的任何語言呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) API，以程式設計方式建立 Autopilot 時間序列預測實驗。

有關此 API 作業如何以您選擇的語言轉換為函式的詳細資訊，請參閱 `CreateAutoMLJobV2` 的[另請參閱](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso)一節並選擇 SDK。例如，對於 Python 使用者，請參閱 適用於 Python (Boto3) 的 AWS SDK中 `[create\$1auto\$1ml\$1job\$1v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)` 的完整請求語法。

Autopilot 會使用您的目標時間序列來訓練多個模型候選模型，然後為指定的目標指標選擇最佳預測模型。當您的候選模型經過訓練後，您可以在 `[BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateProperties.html#sagemaker-Type-CandidateProperties-CandidateMetrics)` 的 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` 反應中找到最佳候選指標。

下列各節會針對用於時間序列預測的 `CreateAutoMLJobV2` API，定義必要與選擇性的輸入請求參數。

**注意**  
請參閱筆記本 [Amazon SageMaker Autopilot 進行時間序列預測](https://github.com/aws/amazon-sagemaker-examples/blob/main/autopilot/autopilot_time_series.ipynb)，以取得實用的實作時間序列預測範例。在此筆記本，您可以使用 Amazon SageMaker Autopilot 訓練時間序列模型並使用經過訓練的模型產生預測。筆記本提供如何在 Amazon S3 擷取現成的表格歷史資料集的指示。

## 先決條件
<a name="autopilot-timeseries-forecasting-prerequisites"></a>

使用 Autopilot 在 SageMaker AI 建立時間序列預測實驗之前，請務必：
+ 準備您的時間序列資料集。資料集準備包括從各種來源收集相關資料，對其進行清理清理和過濾以消除雜訊與不一致性，並將其組織成結構化格式。請參閱 [時間序列資料集格式與遺失值填入方法](timeseries-forecasting-data-format.md) 以深入了解 Autopilot 的時間序列格式要求。或者，您可以使用您選擇的國家/地區的公共假日行事曆來補充資料集，以擷取相關的模式。如需假日行事曆的詳細資訊，請參閱[國定假日行事曆](autopilot-timeseries-forecasting-holiday-calendars.md)。
**注意**  
建議您為要預測的每個未來 1 個資料點提供至少 3-5 個歷史資料點。例如，若要根據每日資料預測 7 天 (1 週期間)，請訓練您的模型至少 21-35 天的歷史資料。請務必提供足夠的資料來擷取季節性和週期性模式。
+ 將您的時間序列資料放入 Amazon S3 儲存貯體。
+ 授予對 Amazon S3 儲存貯體的完整存取權，該儲存貯體包含用於執行實驗的 SageMaker AI 執行角色的輸入資料。完成此操作後，您可以透過 Autopilot API 請求使用此執行角色的 ARN。
  + 如需有關擷取 SageMaker AI 執行角色的資訊，請參閱[取得您的執行角色](sagemaker-roles.md#sagemaker-roles-get-execution-role)。
  + 如需授予 SageMaker AI 執行角色存取 Amazon S3 中一或多個特定儲存貯體的相關資訊，請參閱[建立執行角色](sagemaker-roles.md#sagemaker-roles-create-execution-role)中的*新增額外的 Amazon S3 權限給 SageMaker AI 執行角色*。

## 必要參數
<a name="timeseries-forecasting-api-required-params"></a>

當呼叫 `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` 建立用於時間序列預測的 Autopilot 實驗時，您必須提供下列值：
+ 用於指定任務的名稱的 `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)`。名稱應為 `string` 類型，最小長度為 1 個位元，最大長度為 32 位元。
+ `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)` 中至少有一個 `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)`，其中您指定包含您的資料的 Amazon S3 儲存貯體的名稱。或者，您可以指定內容 (CSV 或 Parquet 檔案) 和壓縮 (GZip) 類型。
+ 類型為 `[TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)` 的 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`，用於設定時間序列預測作業的設置。尤其是，您必須指定：
  + 預測的**頻率**，指的是預測所需的精細程度 (每小時、每日、每月等等)。

    有效間隔為整數，後跟 `Y` (年)、`M` (月)、`W` (週)、`D` (天)、`H` (小時) 與 `min` (分鐘)。例如，`1D` 表示每天，`15min` 表示每隔 15 分鐘。頻率的值不得與下一個較大頻率重疊使用。例如，您必須使用的頻率 `1H` 而不是 `60min`。

    每個頻率的有效值如下：
    + 分鐘–1-59
    + 小時–1-23
    + 天–1-6
    + 週–1-4
    + 月–1-11
    + 年–1
  + 預測中預測的**總時程**，指的是模型預測的時間步長數。預測期間也稱為預測長度。預測總時程上限是資料集中 500 個時間步長或 1/4 的較小者。
  + [TimeSeriesConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesConfig.html)，您可以在其中定義資料集的結構描述，藉由指定下欄位項目，將欄位標題對應至預測：
    + `TargetAttributeName`：包含要預測之目標欄位歷史資料的欄位。
    + `TimestampAttributeName`：包含記錄指定項目的目標值的時間點的欄位。
    + `ItemIdentifierAttributeName`：包含您要預測其目標值之項目識別碼的資料欄位。

  下列是這些請求參數的範例。在此範例中，您要設定 20 天內特定項目的預期需求數量或需求程度的每日預測。

  ```
  "AutoMLProblemTypeConfig": { 
          "ForecastFrequency": "D",
          "ForecastHorizon": 20,
          "TimeSeriesConfig": {
              "TargetAttributeName": "demand",
              "TimestampAttributeName": "timestamp",
              "ItemIdentifierAttributeName": "item_id"
          },
  ```
+ `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)` 指定用於存放 AutoML 任務成品的 Amazon S3 輸出路徑。
+ `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)` 指定用於存取您的資料的角色的 ARN。您可以透過已授予資料存取權限的執行角色的 ARN。

所有其他參數都是選用參數。例如，您可以設定特定的預測分位數、為資料集中缺少的值選擇填入方法，或定義如何彙總不符合預測頻率的資料。若要了解如何設定這些其他參數，請參閱[選用的參數](#timeseries-forecasting-api-optional-params)。

## 選用的參數
<a name="timeseries-forecasting-api-optional-params"></a>

下列各節提供了一些可傳遞給時間序列預測 AutoML 任務的可選參數的詳細資訊。

### 如何指定演算法
<a name="timeseries-forecasting-algorithms-selection"></a>

預設情況下，您的 Autopilot 任務會在資料集上訓練預先定義的演算法清單。不過，您可以提供預設演算法選取的子集。

對於時間序列預測，您必須選擇 `[TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)` 作為 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 的類型。

然後，您可以在 [CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html) 的 `AlgorithmsConfig` 屬性指定選定的 `AutoMLAlgorithms` 陣列。

以下是在其 `AutoMLAlgorithms` 欄位中僅列出三個演算法 `AlgorithmsConfig` ("cnn-qr"、"prophet"、"arima") 的屬性範例。

```
{
   "[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)": {
        "[TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)": {
          "[CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html)": {
            "[AlgorithmsConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html#sagemaker-Type-CandidateGenerationConfig-AlgorithmsConfig)":[
               {"[AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html)":["cnn-qr", "prophet", "arima"]}
            ]
         },
       },
     },
  }
```

如需時間序列預測的可用演算法清單，請參閱 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms)。如需每個演算法的詳細資訊，請參閱[演算法支援時間序列預測](timeseries-forecasting-algorithms.md)。

### 如何指定自訂分位數
<a name="timeseries-forecasting-custom-quantiles"></a>

Autopilot 使用您的目標時間序列訓練 6 個候選模型，然後使用堆疊整合方法組合這些模型，為指定的目標指標建立最佳預測模型。每個 Autopilot 預測模型都會透過在 P1 和 P99 之間的分位數產生預測來產生機率預測。這些分位數用於解釋預測的不確定性。依預設，會針對 0.1 (`p10`)、0.5 (`p50`) 與 0.9 (`p90`) 產生預測。您可以選擇指定自己的分位數。

在 Autopilot 中，您可以在 [TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html) 的 `ForecastQuantiles` 屬性指定最多 5 個從 0.01 (`p1`) 到 0.99 (`p99`) 的預測分位數，增量為 0.01 或更高。

在下列範例中，您將針對特定項目在 20 天內的預期數量或需求程度設定每日第 10、25、50、75 及第 90 個百分位數預測。

```
"AutoMLProblemTypeConfig": { 
        "ForecastFrequency": "D",
        "ForecastHorizon": 20,
        "ForecastQuantiles": ["p10", "p25", "p50", "p75", "p90"],
        "TimeSeriesConfig": {
            "TargetAttributeName": "demand",
            "TimestampAttributeName": "timestamp",
            "ItemIdentifierAttributeName": "item_id"
        },
```

### 如何彙總不同預測頻率的資料
<a name="timeseries-forecasting-aggregation"></a>

若要建立預測模型 (也稱為實驗中的最佳模型候選模型)，您必須指定預測頻率。預測頻率決定預測中預測的頻率。例如，每月銷售預測。Autopilot 的最佳模型可以針對高於資料記錄頻率的資料頻率產生預測。

在訓練期間，Autopilot 會彙總任何與您指定的預測頻率不符的任何資料。例如，您可能有一些每日資料，但指定每週預測頻率。Autopilot 會根據每日資料所屬的週來調整每日資料。然後，Autopilot 將其合併為每週的單一記錄。

在彙總期間，預設的轉換方法是將資料加總。您可以在建立 AutoML 任務時在 [TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html) 的 `Transformations` 屬性設定彙總。支援的彙總方法為 `sum` (預設)、`avg`、`first`、`min`、`max`。僅目標資料欄支援彙總。

在下列範例中，您將彙總設定為計算個別促銷預測的平均值，以提供最終的彙總預測值。

```
"Transformations": {
            "Aggregation": {
                "promo": "avg"
            }
        }
```

### 如何處理輸入資料集中的遺失值
<a name="timeseries-forecasting-fill-missing-values"></a>

Autopilot 提供了多種填入方法來處理時間序欄資料集的目標與其他數字欄位缺少的值。如需支援的填入方法清單及其可用填入邏輯的資訊，請參閱[處理遺失值](timeseries-forecasting-data-format.md#timeseries-missing-values)。

建立 AutoML 任務時，您可以在 [TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html) 的 `Transformations` 屬性設定填入策略。

設定填入方式，需要提供機碼值組：
+ 機碼是您要為其指定填入方法之欄位的名稱。
+ 與機碼相關聯的值是定義該欄位填入策略的物件。

您可以為單一欄位指定多種填入方法。

若要為填入方法設定特定值，您應該將填入參數設定為所需的填入方法值 (例如 `"backfill" : "value"`)，並在後綴為 “\$1value” 的其他參數定義實際填入值。例如，若要設定 `backfill` 為的值 `2`，您必須包含兩個參數：`"backfill": "value"` 與 `"backfill_value":"2"`。

在下欄範例中，您為不完整資料欄 “價格” 指定填入策略，如下所示：項目第一個資料點與最後一個資料點之間的所有遺失值都會設定為 `0`，之後所有遺失值均使用該值填入 `2` 直到資料集的結束日期。

```
"Transformations": {
            "Filling": {
                "price": {
                        "middlefill" : "zero",
                        "backfill" : "value",
                        "backfill_value": "2"
                }
            }
        }
```

### 如何指定目標指標
<a name="timeseries-forecasting-set-objective-metric"></a>

Autopilot 會產生準確度指標來評估候選模型，並協助您選擇要使用哪個模型來產生預測。當您執行時間序列預測實驗時，您可以選擇 AutoML 讓 Autopilot 為您最佳化預測器，也可以手動選擇預測器的演算法。

根據預設，Autopilot 使用 Average Weighted Quantile Loss (平均加權分位數損失)。但是，您可以在建立 AutoML 任務時在 [AutoMLJobObjective](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html) 的 `MetricName` 屬性設定目標指標。

如需可用演算法的清單，請參閱[演算法支援時間序列預測](timeseries-forecasting-algorithms.md)。

### 如何將國定假日資訊納入您的資料集
<a name="timeseries-forecasting-add-holiday-calendar"></a>

在 Autopilot，您可以將特徵設計的國家假日資訊資料集合到您的時間序列中。Autopilot 為 250 多個國家/地區的假日行事曆提供本地支援。選擇國家/地區後，Autopilot 會在訓練期間，將該國家/地區的假日行事曆套用至您的資料集的每個項目。這可讓模型識別與特定假日相關聯的模式。

您可以在建立 AutoML 任務時，透過將 [HolidayConfigAttributes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HolidayConfigAttributes.html) 物件傳遞至 [TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html) 的 `HolidayConfig` 屬性，來啟用假日特徵化。`HolidayConfigAttributes` 物件包含兩個字母 `CountryCode` 屬性，該屬性決定用於擴充時間序列資料集的公共國定假日行事曆的國家/地區。

如需支援的行事曆清單及其對應的國家/地區代碼，請參閱[國家/地區代碼](autopilot-timeseries-forecasting-holiday-calendars.md#holiday-country-codes)。

### 如何啟用自動部署
<a name="timeseries-forecasting-auto-model-deployment"></a>

Autopilot 功能可讓您將預測模型自動部署到端點。若要針對 AutoML 任務的最佳模型候選項啟用自動部署，請在 AutoML 任務請求中包含 `[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)`。這可讓您將最佳模型部署到 SageMaker AI 端點。以下是可用的自訂組態。
+ 若要讓 Autopilot 產生端點名稱，請將 `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)` 設定為 `True`。
+ 若要為端點提供您自己的名稱，請設定 `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents) to False and provide a name of your choice in [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`。

### 如何設定 AutoML 在大型資料集的 EMR Serverless 上啟動遠端任務
<a name="autopilot-set-emr-serverless-api-forecasting"></a>

您可以設定 AutoML 任務 V2，以便在需要額外的運算資源來處理大型資料集時，在 Amazon EMR Serverless 上自動啟動遠端任務。透過在需要時無縫轉換為 EMR Serverless，AutoML 任務可以處理原本會超過最初佈建資源的資料集，而無需您進行任何手動介入。EMR Serverless 適用於表格式和時間序列問題類型。我們建議為大於 30 GB 的時間序列資料集設定此選項。

若要允許 AutoML 任務 V2 自動轉換為適用於大型資料集的 EMR Serverless，您需要將包含 `ExecutionRoleARN` 欄位的 `EmrServerlessComputeConfig` 物件提供給 AutoML 任務 V2 輸入請求的 `AutoMLComputeConfig`。

`ExecutionRoleARN` 是 IAM 角色的 ARN，授予 AutoML 任務 V2 執行 EMR Serverless 任務所需的許可。

此角色應具有下列信任關係：

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

****  

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

------

並授予許可給：
+ 建立、列出和更新 EMR Serverless 應用程式。
+ 在 EMR Serverless 應用程式上啟動、列出、取得或取消任務執行。
+ 標記 EMR Serverless 資源。
+ 將 IAM 角色傳遞至 EMR Serverless 服務以進行執行。

  透過授予 `iam:PassRole` 許可，AutoML 任務 V2 可以暫時擔任該 `EMRServerlessRuntimeRole-*` 角色並將其傳遞給 EMR Serverless 服務。這些是 EMR Serverless 任務執行環境用來存取執行時間所需 AWS 其他服務和資源的 IAM 角色，例如 Amazon S3 用於資料存取、CloudWatch 用於記錄、存取 AWS Glue 資料目錄或根據您的工作負載需求的其他 服務。

  如需此角色許可的詳細資訊，請參閱 [Amazon EMR Serverless 的任務執行時期角色](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html)。

所提供 JSON 文件中定義的 IAM 政策會授予這些許可：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
           "Sid": "EMRServerlessCreateApplicationOperation",
           "Effect": "Allow",
           "Action": "emr-serverless:CreateApplication",
           "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessListApplicationOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:ListApplications",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessApplicationOperations",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:UpdateApplication",
                "emr-serverless:GetApplication"
            ],
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessStartJobRunOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:StartJobRun",
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessListJobRunOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:ListJobRuns",
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessJobRunOperations",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:GetJobRun",
                "emr-serverless:CancelJobRun"
            ],
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessTagResourceOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:TagResource",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "IAMPassOperationForEMRServerless",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/EMRServerlessRuntimeRole-*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "emr-serverless.amazonaws.com",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
         }
    ]
}
```

------

# 時間序列資料集格式與遺失值填入方法
<a name="timeseries-forecasting-data-format"></a>

時間序列資料是指在固定時間間隔內記錄的觀測值或測量值的集合。在這種類型的資料中，每個觀測都與特定的時間戳記或時間段相關聯，以建立一系列按時間順序排列的資料點。

時間序欄資料集中包含的特定資料欄取決於您分析的目標以及可用的資料。時間序欄資料至少由 3 欄資料表組成，其中：
+ 一欄位包含指定給個別項目的唯一識別碼，以便在特定時刻參照其值。
+ 另一欄位表示在時間點值或**目標**記錄在特定時刻的指定項目的值。在對這些目標值進行模型訓練之後，此目標欄位包含模型在定義範圍內以指定頻率預測的值。
+ 並且包含時間戳欄位來記錄測量值的日期與時間。
+ 其他欄位可以包含可能影響預測績效的其他因素。例如，在零售業的時間序列資料集 (目標為銷售額或收入) 中，您可能會包含提供銷售單位、產品 ID、商店位置、客戶數量、庫存程度以及共變指標 (例如氣象資料或人口統計資訊) 的相關資訊的功能。

**注意**  
您可以將特徵設計的國定假日資訊資料集新增至您的時間序列。透過在時間序列模型中包含假日，您可以擷取假日所建立的週期性模式。這有助於您的預測更好地反映資料的潛在季節性。如需每個國家/地區可用行事曆的資訊，請參閱[國定假日行事曆](autopilot-timeseries-forecasting-holiday-calendars.md)

## 用於時間序列預測的資料集格式
<a name="timeseries-format"></a>

Autopilot 支援數字、分類、文字與日期時間資料類型。目標欄的資料類型必須為數值。

Autopilot 支援格式為 CSV (預設) 檔案或 Parquet 檔案的時間序列資料。
+ **CSV** (逗號分隔值)是基於行的文件格式，以人類可讀的純文字格式儲存資料，這是資料交換的流行選擇，因為它們受到廣泛的應用程式的支援。
+ **Parquet** 是一種基於列的文件格式，其中資料存放和處理比基於行的文件格式更有效。這使它們成為解決大數據問題的更好選擇。

如需 Autopilot 中預測時間序列資料集的資源限制的詳細資訊，請參閱[Autopilot 的時間序列預測資源限制](timeseries-forecasting-limits.md)。

## 處理遺失值
<a name="timeseries-missing-values"></a>

時間序列預測資料中有個常見問題，就是會出現遺失值。您的資料可能由於多種原因而包含遺失值，包括測量失敗、格式設定問題、人為錯誤或缺少要記錄的資訊。例如，如果您要預測零售商店的產品需求，而某個商品已售完或無法供應，則在該商品無庫存期間，不會有要記錄的銷售資料。如果遺失值夠普遍，則會顯著影響模型的準確性。

Autopilot 提供了多種填入方法來處理遺失的值，與目標欄及其他附加欄採用不同的方法。填入是將標準化值新增至資料集中的遺失項目的程序。

請參閱[如何處理輸入資料集中的遺失值](autopilot-create-experiment-timeseries-forecasting.md#timeseries-forecasting-fill-missing-values)以了解如何設定填入時間序列資料集中遺失值的方法。

Autopilot 支援下列填入方法：
+ **前填入：**填入所有項目中最早記錄的資料點和每個項目的起點之間的任何遺失值(每個項目可以在不同的時間開始)。這樣可以確保每個項目的資料完整，並且涵蓋從最早記錄的資料點到其各自的起始點。
+ **中間填入：**填入資料集中項目的開始日期和結束日期之間的所有遺失值。
+ **回填：**填入每個項目的最後一個資料點 (每個項目可以在不同的時間停止)和所有項目中最後記錄的資料點之間的任何遺失值。
+ **未來填入：**填入所有項目最後記錄的資料點與預測範圍結束之間的任何遺失值。

下列影像提供不同填入方法的視覺化呈現。

![\[Amazon SageMaker Autopilot 中時間序列預測的不同填入方法。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/autopilot/autopilot-forecast-filling-methods.png)


### 選擇填入邏輯
<a name="filling-logic"></a>

選擇填入邏輯時，您應考慮模型將會如何解讀邏輯。例如，在零售案例中，記錄供應商品的 0 銷售量會不同於記錄無法供應之商品的 0 銷售量，因為後者並不表示客戶對該商品缺乏興趣。因此，`0` 填入時間序欄的目標欄可能會導致預測器的預測偏差不足，而 `NaN` 填入可能會忽略 0 個可用商品的實際銷售情況，導致預測器偏差過大。

### 填入邏輯
<a name="filling-restrictions"></a>

您可以對資料集的目標資料欄與其他數值資料欄執行填寫。與其他數值資料欄相比，目標資料欄的填入準則和限制不同。

填入指導方針


| 資料欄類型 | 預設填入？ | 支援的填入方法 | 預設的填入邏輯 | 可接受的填入邏輯 | 
| --- | --- | --- | --- | --- | 
| 目標欄 | 是 | 中間和往回填入 | 0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/timeseries-forecasting-data-format.html)  | 
| 其他數值欄 | 否 | 中間、往回和未來填入 | 無預設值 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/timeseries-forecasting-data-format.html)  | 

**注意**  
對於目標欄與其他數字欄，`mean`、`median`、`min` 與 `max` 是根據遺失之前的 64 個最新資料項目的滾動時段進行計算。

# 國定假日行事曆
<a name="autopilot-timeseries-forecasting-holiday-calendars"></a>

Autopilot 支援國定假日資訊的特徵工程資料集，可存取超過 250 個國家/地區的假日行事曆。假日行事曆功能在零售網域中特別有幫助，其中國定假期可能會顯著影響需求。下一節列出可用來存取每個支援國家/地區的假日行事曆的國家/地區代碼。

若要了解如何將行事曆新增至您的資料集，請參閱[如何將國定假日資訊納入您的資料集](autopilot-create-experiment-timeseries-forecasting.md#timeseries-forecasting-add-holiday-calendar)。

## 國家/地區代碼
<a name="holiday-country-codes"></a>

Autopilot 提供下列國家/地區之國定假日假行事曆的原生支援。使用 API 指定國家/地區時，請使用**國家/地區代碼**。


| Country | 國家代碼 | 
| --- | --- | 
|   阿富汗   |   AF   | 
|   奧蘭群島   |   AX   | 
|   阿爾巴尼亞   |   AL   | 
|   阿爾及利亞   |   DZ   | 
|   美屬薩摩亞   |   AS   | 
|   安道爾   |   AD   | 
|   安哥拉   |   AO   | 
|   安圭拉   |   AI   | 
|   南極   |   AQ   | 
|   安地卡及巴布達   |   AG   | 
|   阿根廷   |   AR   | 
|   亞美尼亞   |   AM   | 
|   阿魯巴島   |   AW   | 
|   澳洲   |   AU   | 
|   奧地利   |   AT   | 
|   亞塞拜然   |   AZ   | 
|   巴哈馬   |   BS   | 
|   巴林   |   BH   | 
|   孟加拉   |   BD   | 
|   巴貝多   |   BB   | 
|   白俄羅斯   |   BY   | 
|   比利時   |   BE   | 
|   貝里斯   |   BZ   | 
|   貝南   |   BJ   | 
|   百慕達   |   BM   | 
|   不丹   |   BT   | 
|   玻利維亞   |   BO   | 
|   波士尼亞與赫塞哥維納   |   BA   | 
|   波札那   |   BW   | 
|   布威島   |   BV   | 
|   巴西   |   BR   | 
|   英屬印度洋領地   |   IO   | 
|   英屬維京群島   |   VG   | 
|   汶萊和平之國   |   BN   | 
|   保加利亞   |   BG   | 
|   布吉納法索   |   BF   | 
|   蒲隆地   |   BI   | 
|   柬埔寨   |   KH   | 
|   喀麥隆   |   CM   | 
|   加拿大   |   CA   | 
|   維德角   |   CV   | 
|   荷蘭加勒比區   |   BQ   | 
|   開曼群島   |   KY   | 
|   中非共和國   |   CF   | 
|   查德   |   TD   | 
|   智利   |   CL   | 
|   中國   |   CN   | 
|   聖誕島   |   CX   | 
|   可可斯群島   |   CC   | 
|   哥倫比亞   |   CO   | 
|   葛摩   |   KM   | 
|   庫克群島   |   CK   | 
|   哥斯大黎加   |   CR   | 
|   克羅埃西亞   |   HR   | 
|   古巴   |   CU   | 
|   庫拉索   |   CW   | 
|   賽普勒斯   |   CY   | 
|   捷克   |   CZ   | 
|   剛果民主共和國   |   CD   | 
|   丹麥   |   DK   | 
|   吉布地   |   DJ   | 
|   多米尼克   |   DM   | 
|   多明尼加共和國   |   DO   | 
|   厄瓜多   |   EC   | 
|   埃及   |   EG   | 
|   薩爾瓦多   |   SV   | 
|   赤道幾內亞   |   GQ   | 
|   厄利垂亞   |   ER   | 
|   愛沙尼亞   |   EE   | 
|   史瓦帝尼   |   SZ   | 
|   衣索比亞   |   ET   | 
|   福克蘭群島   |   FK   | 
|   法羅群島   |   FO   | 
|   斐濟   |   FJ   | 
|   芬蘭   |   FI   | 
|   法國   |   FR   | 
|   法屬圭亞那   |   GF   | 
|   法屬玻里尼西亞   |   PF   | 
|   法屬南部領地   |   TF   | 
|   加彭   |   GA   | 
|   甘比亞   |   GM   | 
|   喬治亞   |   GE   | 
|   德國   |   DE   | 
|   迦納   |   GH   | 
|   直布羅陀   |   GI   | 
|   希臘   |   GR   | 
|   格陵蘭   |   GL   | 
|   格瑞那達   |   GD   | 
|   瓜地洛普   |   GP   | 
|   關島   |   GU   | 
|   瓜地馬拉   |   GT   | 
|   根西島   |   GG   | 
|   幾內亞   |   GN   | 
|   幾內亞比索   |   GW   | 
|   蓋亞納   |   GY   | 
|   海地   |   HT   | 
|   赫德島和麥克唐納群島   |   HM   | 
|   宏都拉斯   |   HN   | 
|   香港   |   HK   | 
|   匈牙利   |   HU   | 
|   冰島   |   IS   | 
|   印度   |   IN   | 
|   印尼   |   ID   | 
|   伊朗   |   IR   | 
|   伊拉克   |   IQ   | 
|   愛爾蘭   |   IE   | 
|   曼島   |   IM   | 
|   以色列   |   IL   | 
|   義大利   |   IT   | 
|   象牙海岸   |   CI   | 
|   牙買加   |   JM   | 
|   日本   |   JP   | 
|   澤西島   |   JE   | 
|   約旦   |   JO   | 
|   哈薩克   |   KZ   | 
|   肯亞   |   KE   | 
|   吉里巴斯   |   KI   | 
|   科索沃   |   XK   | 
|   科威特   |   KW   | 
|   吉爾吉斯   |   KG   | 
|   寮國   |   LA   | 
|   拉脫維亞   |   LV   | 
|   黎巴嫩   |   LB   | 
|   賴索托   |   LS   | 
|   賴比瑞亞   |   LR   | 
|   利比亞   |   LY   | 
|   列支敦斯登   |   LI   | 
|   立陶宛   |   LT   | 
|   盧森堡   |   LU   | 
|   澳門   |   MO   | 
|   馬達加斯加   |   MG   | 
|   馬拉威   |   MW   | 
|   馬來西亞   |   MY   | 
|   馬爾地夫   |   MV   | 
|   馬利   |   ML   | 
|   馬爾他   |   MT   | 
|   馬紹爾群島   |   MH   | 
|   馬丁尼克   |   MQ   | 
|   茅利塔尼亞   |   MR   | 
|   模里西斯   |   MU   | 
|   馬約特島   |   YT   | 
|   墨西哥   |   MX   | 
|   密克羅尼西亞   |   FM   | 
|   摩爾多瓦   |   MD   | 
|   摩納哥   |   MC   | 
|   蒙古   |   MN   | 
|   蒙特內哥羅   |   ME   | 
|   蒙特色拉特島   |   MS   | 
|   摩洛哥   |   MA   | 
|   莫三比克   |   MZ   | 
|   緬甸   |   MM   | 
|   納米比亞   |   NA   | 
|   諾魯   |   NR   | 
|   尼泊爾   |   NP   | 
|   荷蘭   |   NL   | 
|   新喀里多尼亞   |   NC   | 
|   紐西蘭   |   NZ   | 
|   尼加拉瓜   |   NI   | 
|   尼日   |   NE   | 
|   奈及利亞   |   NG   | 
|   紐埃島   |   NU   | 
|   諾福克島   |   NF   | 
|   北韓   |   KP   | 
|   北馬其頓   |   MK   | 
|   北馬里亞納群島   |   MP   | 
|   挪威   |   NO   | 
|   阿曼   |   OM   | 
|   巴基斯坦   |   PK   | 
|   帛琉   |   PW   | 
|   巴勒斯坦   |   PS   | 
|   巴拿馬   |   PA   | 
|   巴布亞紐幾內亞   |   PG   | 
|   巴拉圭   |   PY   | 
|   秘魯   |   PE   | 
|   菲律賓   |   PH   | 
|   皮特肯群島   |   PN   | 
|   波蘭   |   PL   | 
|   葡萄牙   |   PT   | 
|   波多黎各   |   PR   | 
|   卡達   |   QA   | 
|   剛果共和國   |   CG   | 
|   留尼旺   |   RE   | 
|   羅馬尼亞   |   RO   | 
|   俄羅斯聯邦   |   RU   | 
|   盧安達   |   RW   | 
|   聖巴泰勒米島   |   BL   | 
|   “聖赫勒拿島、亞森欣島和特里斯坦達庫尼亞島”   |   SH   | 
|   聖克里斯多福及尼維斯   |   KN   | 
|   聖露西亞   |   LC   | 
|   法屬聖馬丁   |   MF   | 
|   聖皮埃赫及密克隆   |   PM   | 
|   聖文森及格瑞那丁   |   VC   | 
|   薩摩亞   |   WS   | 
|   聖馬利諾   |   SM   | 
|   聖多美普林西比   |   ST   | 
|   沙烏地阿拉伯   |   SA   | 
|   塞內加爾   |   SN   | 
|   塞爾維亞   |   RS   | 
|   賽席爾   |   SC   | 
|   獅子山   |   SL   | 
|   新加坡   |   SG   | 
|   荷屬聖馬丁   |   SX   | 
|   斯洛伐克   |   SK   | 
|   斯洛維尼亞   |   SI   | 
|   索羅門群島   |   SB   | 
|   索馬利亞   |   SO   | 
|   南非   |   ZA   | 
|   南喬治亞和南桑威奇群島   |   GS   | 
|   南韓   |   KR   | 
|   南蘇丹   |   SS   | 
|   西班牙   |   ES   | 
|   斯里蘭卡   |   LK   | 
|   蘇丹   |   SD   | 
|   蘇利南   |   SR   | 
|   斯瓦巴和揚馬延   |   SJ   | 
|   瑞典   |   SE   | 
|   瑞士   |   CH   | 
|   敘利亞阿拉伯共和國   |   SY   | 
|   臺灣   |   TW   | 
|   塔吉克   |   TJ   | 
|   坦尚尼亞   |   TZ   | 
|   泰國   |   TH   | 
|   東帝汶   |   TL   | 
|   多哥   |   TG   | 
|   托克勞   |   TK   | 
|   東加   |   TO   | 
|   千里達及托巴哥   |   TT   | 
|   突尼西亞   |   TN   | 
|   土耳其   |   TR   | 
|   土庫曼   |   TM   | 
|   英屬土克斯及開科斯群島   |   TC   | 
|   吐瓦魯   |   TV   | 
|   烏干達   |   UG   | 
|   烏克蘭   |   UA   | 
|   阿拉伯聯合大公國   |   AE   | 
|   英國   |   UK   | 
|   聯合國   |   UN   | 
|   美國   |   US   | 
|   美國本土外小島嶼   |   UM   | 
|   美屬維京群島   |   VI   | 
|   烏拉圭   |   UY   | 
|   烏茲別克   |   UZ   | 
|   萬那杜   |   VU   | 
|   梵蒂岡   |   VA   | 
|   委內瑞拉   |   VE   | 
|   越南   |   VN   | 
|   瓦利斯和富圖那   |   WF   | 
|   西撒哈拉   |   EH   | 
|   葉門   |   YE   | 
|   尚比亞   |   ZM   | 
|   辛巴威   |   ZW   | 

# 目標指標
<a name="timeseries-objective-metric"></a>

Autopilot 會產生準確度指標來評估候選模型，並協助您選擇要使用哪個模型來產生預測。您可以讓 Autopilot 為您最佳化預測器，也可以手動選擇預測器的演算法。根據預設，Autopilot 使用 Average Weighted Quantile Loss (平均加權分位數損失)。

下列清單包含目前可用來測量時間序列預測模型效能的測量結果名稱。

**`RMSE`**  
均方根誤差 (RMSE) – 測量預測值與實際值之間的平方差異的平方根，並對所有值進行平均。這是指出是否存在較大模型錯誤與異常值的重要指標。其數值範圍從零 (0) 到無限大，數字越小，表示模型越適合資料。RMSE 取決於規模，不應用於比較不同大小的資料集。

**`wQL`**  
加權分位數損失 (WQL)–透過測量預測與實際 P10、P50 和 P90 分位數之間的加權絕對差異來評估預測的準確性，數值越低表示效能越好。

**`Average wQL (default)`**  
平均加權分位數損失 (平均 WQL)–透過平均 P10、P50 和 P90 分位數的準確度來評估預測。數值越低表示模型越準確。

**`MASE`**  
平均絕對比例誤差 (MASE) – 透過簡單基準預測方法的平均絕對誤差標準化的預測的平均絕對誤差。值越低表示模型越準確，其中 MASE < 1 估計值比基準更好，MASE > 1 估計值比基準較差。

**`MAPE`**  
平均絕對誤差百分比 (MAPE) – 所有時間點的平均誤差百分比 (平均預測值與實際值的百分比差異)。數值越低表示模型越準確，其中 MAPE = 0 是沒有錯誤的模型。

**`WAPE`**  
加權絕對誤差百分比 (WAPE) – 絕對誤差的總和，由絕對目標的總和標準化，測量預測值與觀測值的整體偏差。數值越低表示模型越準確。

# 演算法支援時間序列預測
<a name="timeseries-forecasting-algorithms"></a>

Autopilot 可訓練以下六種內建演算法，搭配您的目標時間。然後，使用堆疊整合方法，組合這些候選模型，為指定的目標指標建立最佳預測模型。
+ **卷積神經網路 - 分位數迴歸 (CNN-QR)**–CNN-QR 是專有的機器學習算法，用於使用因果卷積神經網路 (CNN) 預測時間序列。CNN-QR 最適用於包含數百個時間序列的大型資料集。
+ **DeepAR \$1** – DeepAR \$1 是一種專有的機器學習演算法，用於使用循環神經網路 (RNN) 預測時間序列。DeepAR A\$1 最適合包含數百個特徵時間序列的大型資料集。
+ **Prophet** - [Prophet](https://facebook.github.io/prophet/) 是流行的本機 Bayesian 結構時間序列模型，其中非線性趨勢適合每年、每週和及每日季節性的新增模型。Autopilot Prophet 演算法使用 Prophet 的 Python 實作的 [Prophet 類別](https://facebook.github.io/prophet/docs/quick_start.html#python-ap)。它最適合具有強烈季節性影響的時間序列和多個季節的歷史資料。
+ **非參數時間序列 (NPTS)** – NPTS 專有演算法是可擴展的機率基準預測器。它透過對過去的觀察進行取樣來預測特定時間序列的未來值分佈。NPTS 在處理稀疏或間歇時間序列時特別有用。
+ **整合移動自回歸模型 (ARIMA)** – 是常用的時間序列預測統計演算法。此演算法擷取輸入資料集內的標準時間結構 (規律的時間組織)。它對於時間序列少於 100 個的簡單資料集特別有用。
+ **指數平滑法 (ETS)** – 是常用的時間序列預測統計演算法。該演算法對於具有 100 個時間序列以下的簡單資料集以及具有季節性模式的資料集特別有用。ETS 計算時間序列資料集中所有觀測值的加權平均值作為其預測，權重隨著時間的推移呈指數下降。

# 預測已部署的 Autopilot 模型
<a name="timeseries-forecasting-deploy-models"></a>

使用 AutoML API 訓練模型後，您可以部署模型以進行即時或批次式預測。

AutoML API 會為您的時間序列資料訓練多個模型候選，並根據您的目標指標選擇最佳預測模型。當您的候選模型經過訓練後，您就可以在 [BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-CandidateName) 的回應 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) 中找到最佳候選者。

若要使用此最佳效能模型取得預測，您可以設定端點以互動方式取得預測，或使用批次預測對批次觀察進行預測。

**考量事項**
+ 提供用於預測的輸入資料時，資料結構描述應與用於訓練模型的結構描述保持相同，包括欄位數、欄位標題以及資料類型。您可以預測相同或不同時間戳記範圍內的現有或新項目 ID，以預測不同的時間段。
+ 預測模型預測訓練時輸入請求中指定的未來預測範圍點，即從*目標結束日期*到*目標結束日期 \$1 預測範圍*。若要使用模型來預測特定日期，您應該提供與原始輸入資料相同格式的資料，並延伸到指定的*目標結束日期*。在這個案例中，模型會從新的目標結束日期開始預測。

  例如，如果您的資料集包含從 1 月至 6 月的每月資料，且預測範圍時程為 2，則模型會預測未來 2 個月的目標值，即 7 月和 8 月。如果在八月，您想要預測接下來的 2 個月，這次您的輸入資料應為 1 月至 8 月，且模型會預測接下來的 2 個月 (9 月、10 月)。
+ 預測未來資料點時，沒有設定要提供的歷史資料量下限。包含足夠的資料來擷取時間序列中的季節性和週期性模式。

**Topics**
+ [即時預測](timeseries-forecasting-realtime.md)
+ [批次預測](timeseries-forecasting-batch.md)

# 即時預測
<a name="timeseries-forecasting-realtime"></a>

當您需要即時產生預測時，即時預測非常有用，例如對於需要立即回應的應用程式或對單一資料點進行預測時。

透過將 AutoML 模型部署為即時端點，您可以隨需產生預測，並將接收新資料和取得預測之間的延遲降至最低。這使得即時預測非常適合需要立即、個人化或事件驅動預測功能的應用程式。

對於即時預測，資料集應該是輸入資料集的子集。即時端點的輸入資料大小約為 6MB，回應逾時限制為 60 秒。我們建議您一次攜帶一個或幾件項目。

您可以使用 SageMaker APIs 擷取 AutoML 任務的最佳候選項目，然後使用該候選項目建立 SageMaker AI 端點。

或者，您可以在建立 Autopilot 實驗時選擇自動部署選項。若要取得有關設定自動部署模型的資訊，請參閱[如何啟用自動部署](autopilot-create-experiment-timeseries-forecasting.md#timeseries-forecasting-auto-model-deployment)。

**若要使用最佳模型候選項目建立 SageMaker AI 端點：**

1. 

**擷取 AutoML 任務的詳細資訊。**

   下列 AWS CLI 命令範例使用 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API 來取得 AutoML 任務的詳細資訊，包括最佳模型候選項目的相關資訊。

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
   ```

1. 

**從 [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers) 擷取容器定義，以獲得最佳模型候選項目。**

   容器定義是用於託管訓練 SageMaker AI 模型以進行預測的容器化環境。

   ```
   BEST_CANDIDATE=$(aws sagemaker describe-auto-ml-job-v2 \
     --auto-ml-job-name job-name 
     --region region \
     --query 'BestCandidate.InferenceContainers[0]' \
     --output json
   ```

   此命令會擷取最佳模型候選項目的容器定義，並將其存放在 `BEST_CANDIDATE` 變數中。

1. 

**使用最佳候選容器定義建立 SageMaker AI 模型。**

   使用上一個步驟中的容器定義，利用 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API 建立一個 SageMaker AI 模型。

   ```
   aws sagemaker create-model \
               --model-name 'your-candidate-name>' \
               --primary-container "$BEST_CANDIDATE"
               --execution-role-arn 'execution-role-arn>' \
               --region 'region>
   ```

   `--execution-role-arn` 參數指定使用模型進行推論時，SageMaker AI 擔任的 IAM 角色。如需此角色所需許可的詳細資訊，請參閱 [CreateModel API：執行角色許可](https://docs.aws.amazon.com/)。

1. 

**使用模型建立 SageMaker AI 端點組態。**

   下列 AWS CLI 命令使用 [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html) API 來建立端點組態。

   ```
   aws sagemaker create-endpoint-config \
     --production-variants file://production-variants.json \
     --region 'region'
   ```

   `production-variants.json` 檔案包含模型組態的位置，包括模型名稱和執行個體類型。
**注意**  
建議使用 [m5.12xlarge](https://aws.amazon.com/ec2/instance-types/m5/) 執行個體進行即時預測。

   ```
   [
       {
         "VariantName": "variant-name",
         "ModelName": "model-name",
         "InitialInstanceCount": 1,
         "InstanceType": "m5.12xlarge"
       }
     ]
   }
   ```

1. 

**使用端點組態建立 SageMaker AI 端點。**

   下列 AWS CLI 範例使用 [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) API 來建立端點。

   ```
   aws sagemaker create-endpoint \
               --endpoint-name 'endpoint-name>' \
               --endpoint-config-name 'endpoint-config-name' \
               --region 'region'
   ```

   使用 [DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) API 來檢查即時推論端點部署的進度。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker describe-endpoint \
               --endpoint-name 'endpoint-name' \
               --region 'region'
   ```

   `EndpointStatus`變更為後`InService`，端點即可用於即時推論。

1. 

**叫用 SageMaker AI 端點進行預測。**

   ```
   aws sagemaker invoke-endpoint \
               --endpoint-name 'endpoint-name' \ 
               --region 'region' \
               --body file://input-data-in-bytes.json \
               --content-type 'application/json' outfile
   ```

   其中 `input-data-in-bytes.json` 檔案包含預測的輸入資料。

# 批次預測
<a name="timeseries-forecasting-batch"></a>

批次預測 (也稱為離線推論) 會根據一批觀察產生模型預測。對於大型資料集來說，或者如果您不需要立即回應模型預測請求，批次推論是不錯的選擇。

相反地，線上推論 (即時推論) 可即時產生預測。

您可以使用 SageMaker APIs 擷取 AutoML 任務的最佳候選項目，然後使用該候選項目提交一批輸入資料以進行推論。

1. 

**擷取 AutoML 任務的詳細資訊。**

   下列 AWS CLI 命令範例使用 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API 來取得 AutoML 任務的詳細資訊，包括最佳模型候選項目的相關資訊。

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
   ```

1. 

**從 [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers) 擷取容器定義，以獲得最佳模型候選項目。**

   容器定義是用於託管訓練 SageMaker AI 模型以進行預測的容器化環境。

   ```
   BEST_CANDIDATE=$(aws sagemaker describe-auto-ml-job-v2 \
         --auto-ml-job-name job-name 
         --region region \
         --query 'BestCandidate.InferenceContainers[0]' \
         --output json
   ```

   此命令會擷取最佳模型候選項目的容器定義，並將其存放在 `BEST_CANDIDATE` 變數中。

1. 

**使用最佳候選容器定義建立 SageMaker AI 模型。**

   使用上一個步驟中的容器定義，利用 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API 建立一個 SageMaker AI 模型。

   ```
   aws sagemaker create-model \
         --model-name 'model-name' \
         --primary-container "$BEST_CANDIDATE"
         --execution-role-arn 'execution-role-arn>' \
         --region 'region>
   ```

   `--execution-role-arn` 參數指定使用模型進行推論時，SageMaker AI 擔任的 IAM 角色。如需此角色所需許可的詳細資訊，請參閱 [CreateModel API：執行角色許可](https://docs.aws.amazon.com/)。

1. 

**建立批次轉換任務。**

   下列範例使用 [CreateTransformJob](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-transform-job.html) API 建立轉換任務。

   ```
   aws sagemaker create-transform-job \ 
          --transform-job-name 'transform-job-name' \
          --model-name 'model-name'\
          --transform-input file://transform-input.json \
          --transform-output file://transform-output.json \
          --transform-resources file://transform-resources.json \
          --region 'region'
   ```

   輸入、輸出和資源詳細資訊在不同的 JSON 檔案中定義：
   + `transform-input.json`:

     ```
     {
       "DataSource": {
         "S3DataSource": {
           "S3DataType": "S3Prefix",
           "S3Uri": "s3://my-input-data-bucket/path/to/input/data"
         }
       },
       "ContentType": "text/csv",
       "SplitType": "None"
     }
     ```
   + `transform-output.json`:

     ```
     {
       "S3OutputPath": "s3://my-output-bucket/path/to/output",
       "AssembleWith": "Line"
     }
     ```
   + `transform-resources.json`:
**注意**  
我們建議將 [m5.12xlarge](https://aws.amazon.com/ec2/instance-types/m5/) 執行個體用於一般用途工作負載，將 `m5.24xlarge` 執行個體用於巨量資料預測任務。

     ```
     {
       "InstanceType": "instance-type",
       "InstanceCount": 1
     }
     ```

1. 

**使用 [DescribeTransformJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTransformJob.html) API 監控轉換任務的進度。**

   請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker describe-transform-job \
         --transform-job-name 'transform-job-name' \
         --region region
   ```

1. 

**擷取批次轉換輸出。**

   任務完成後，即可在 `S3OutputPath` 中使用預測結果。

   輸出檔案名稱的格式如下：`input_data_file_name.out`。例如，如果輸入檔案是 `text_x.csv`，則輸出名稱將是 `text_x.csv.out`。

   ```
   aws s3 ls s3://my-output-bucket/path/to/output/
   ```

下列程式碼範例說明使用適用於 Python (boto3) 的 AWS SDK 和 AWS CLI 進行批次預測。

------
#### [ AWS SDK for Python (boto3) ]

 下列範例使用**適用於 Python 的AWS SDK (boto3)** 進行批次預測。

```
import sagemaker 
import boto3

session = sagemaker.session.Session()

sm_client = boto3.client('sagemaker', region_name='us-west-2')
role = 'arn:aws:iam::1234567890:role/sagemaker-execution-role'
output_path = 's3://test-auto-ml-job/output'
input_data = 's3://test-auto-ml-job/test_X.csv'

best_candidate = sm_client.describe_auto_ml_job_v2(AutoMLJobName=job_name)['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['CandidateName']

# create model
reponse = sm_client.create_model(
    ModelName = best_candidate_name,
    ExecutionRoleArn = role,
    Containers = best_candidate_containers 
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName=f'{best_candidate_name}-transform-job',
    ModelName=model_name,
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': 'S3Prefix',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/csv",
        'SplitType': 'None'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': 'ml.m5.2xlarge',
        'InstanceCount': 1,
    },
)
```

批次推論任務以下列格式傳回回應。

```
{'TransformJobArn': 'arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-transform-job',
 'ResponseMetadata': {'RequestId': '659f97fc-28c4-440b-b957-a49733f7c2f2',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amzn-requestid': '659f97fc-28c4-440b-b957-a49733f7c2f2',
   'content-type': 'application/x-amz-json-1.1',
   'content-length': '96',
   'date': 'Thu, 11 Aug 2022 22:23:49 GMT'},
  'RetryAttempts': 0}}
```

------
#### [ AWS Command Line Interface (AWS CLI) ]

1. **取得最佳候選項目容器定義**。

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name 'test-automl-job' --region us-west-2
   ```

1. **建立模型**

   ```
   aws sagemaker create-model --model-name 'test-sagemaker-model'
   --containers '[{
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz",
       "Environment": {
           "AUTOML_SPARSE_ENCODE_RECORDIO_PROTOBUF": "1",
           "AUTOML_TRANSFORM_MODE": "feature-transform",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "application/x-recordio-protobuf",
           "SAGEMAKER_PROGRAM": "sagemaker_serve",
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code"
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/tuning/flicdf10v2-dpp0-xgb/test-job1E9-244-7490a1c0/output/model.tar.gz",
       "Environment": {
           "MAX_CONTENT_LENGTH": "20971520",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv",
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,probabilities" 
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3", 
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz", 
       "Environment": { 
           "AUTOML_TRANSFORM_MODE": "inverse-label-transform", 
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv", 
           "SAGEMAKER_INFERENCE_INPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,labels,probabilities", 
           "SAGEMAKER_PROGRAM": "sagemaker_serve", 
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code" 
       } 
   }]' \
   --execution-role-arn 'arn:aws:iam::1234567890:role/sagemaker-execution-role' \
   --region 'us-west-2'
   ```

1. **建立轉換任務**。

   ```
   aws sagemaker create-transform-job --transform-job-name 'test-tranform-job'\
    --model-name 'test-sagemaker-model'\
    --transform-input '{
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "SplitType": "None"
       }'\
   --transform-output '{
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line"
       }'\
   --transform-resources '{
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       }'\
   --region 'us-west-2'
   ```

1. **檢查轉換任務的進度**。

   ```
   aws sagemaker describe-transform-job --transform-job-name  'test-tranform-job' --region us-west-2
   ```

   以下是轉換任務的回應。

   ```
   {
       "TransformJobName": "test-tranform-job",
       "TransformJobArn": "arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-tranform-job",
       "TransformJobStatus": "InProgress",
       "ModelName": "test-model",
       "TransformInput": {
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "CompressionType": "None",
           "SplitType": "None"
       },
       "TransformOutput": {
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line",
           "KmsKeyId": ""
       },
       "TransformResources": {
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       },
       "CreationTime": 1662495635.679,
       "TransformStartTime": 1662495847.496,
       "DataProcessing": {
           "InputFilter": "$",
           "OutputFilter": "$",
           "JoinSource": "None"
       }
   }
   ```

   `TransformJobStatus` 變更為之後 `Completed`，您可以在 `S3OutputPath` 檢查推論結果。

------

# Amazon SageMaker Autopilot資料探勘筆記本
<a name="timeseries-forecasting-data-exploration-notebook"></a>

Amazon SageMaker Autopilot 會自動清除並預先處理您的資料集。為了協助使用者了解他們的資料、找出關於時間序列的模式、關係與異常狀況，Amazon SageMaker Autopilot 會以筆記本的形式產生**資料探勘**靜態報告，供使用者參考。

資料探勘筆記本是針對每個 Autopilot 任務所產生。報告存放在 Amazon S3 儲存貯體，您可以從任務輸出路徑存取報告。

您可以在 `[AutoMLJobArtifacts.DataExplorationNotebookLocation](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html#sagemaker-DescribeAutoMLJobV2-response-AutoMLJobArtifacts)` 對 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` 的回應找到資料探勘筆記本的 Amazon S3 字首。

# Amazon SageMaker Autopilot 產生的報告
<a name="timeseries-forecasting-reports"></a>

除了資料探勘筆記本之外，Autopilot 還會為每個實驗的最佳候選模型產生各種報告。
+ 可解釋性報告提供有關模型如何進行預測的洞察。
+ 效能報告提供模型預測能力的量化評估。
+ 在對歷史資料測試模型效能後，會產生回溯測試結果報告。

## 可解釋性報告
<a name="timeseries-forecasting-explainability-report"></a>

Autopilot 可解釋性報表可協助您更了解您的資料集的屬性如何影響特定時間序列 (項目與維度組合) 與時間點的預測。Autopilot 使用稱為*影響分數*的指標來量化每個屬性的相對影響，並判斷它們是否增加或減少預測值。

例如，假設目標所為 `sales` 且有兩個相關屬性的預測案例：`price` 與 `color`。Autopilot 可能會發現該項目的顏色對某些商品的銷售影響很大，但對其他項目的影響微不足道。它也可能發現，在夏季的促銷活動對銷售有很大的影響，但在冬季促銷影響不大。

僅在以下情況下才會產生可解釋性報告：
+ 時間序欄資料集包含其他特徵欄位，或與假日行事曆相關聯。
+ 最終整合包括 CNN-QR 與 DeepAR \$1 的基本模型。

### 解釋影響分數
<a name="timeseries-forecasting-explainability-impact-scores"></a>

影響分數會衡量屬性對預測值的相對影響。例如，如果屬性 `price` 的影響分數是屬性 `store location` 的兩倍，則您可以得出結論，商品價格對預測值的影響是商店位置的兩倍。

影響分數也會提供屬性是否增加或減少預測值的相關資訊。

影響分數範圍從 -1 到 1，其中符號表示影響的方向。分數 0 表示無影響，而接近 1 或 -1 的分數表示有重大影響。

值得注意的是，影響力分數衡量的是屬性的相對影響，而不是絕對影響。因此，影響分數無法用於確定特定屬性是否可以改善模型的準確性。如果某個屬性的影響分數較低，不一定表示它對預測值的影響較低； 這表示與它對預測值的影響比預測器使用的其他屬性要小。

### 尋找可解釋性報告
<a name="timeseries-forecasting-explainability-report-location"></a>

您可以在 `[BestCandidate.CandidateProperties.CandidateArtifactLocations.Explainability](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-Explainability)` 對 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` 的回應找到為最佳候選產生的可解釋性成品的 Amazon S3 字首。

## 模型效能報告
<a name="timeseries-forecasting-model-performance-report"></a>

Autopilot 模型品質報告 (也稱為效能報告) 提供 AutoML 任務所產生的最佳候選模型 (最佳預測器) 的洞察與品質資訊。這包含有關任務詳細資訊、目標函式與準確性指標 (`wQL`、`MAPE`、`WAPE`、`RMSE`、`MASE`) 的資訊。

您可以在 `[BestCandidate.CandidateProperties.CandidateArtifactLocations.ModelInsights](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-ModelInsights)` 的 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` 回應中找到最佳候選產生的模型品質報告成品的 Amazon S3 字首。

## 回溯測試結果報告
<a name="timeseries-forecasting-model-backtest-report"></a>

回溯測試結果透過評估時間序列預測模型的預測準確性與可靠性，提供對時間序列預測模型效能的洞察。它可以幫助分析師與資料科學家評估其在歷史資料的效能，並協助了解其在未來未見資料的潛在效能。

Autopilot 使用回溯測試來調整參數並產生準確性指標。在回溯測試期間，Autopilot 會自動將您的時間序列資料分為兩組：訓練集與測試集。訓練集用於訓練模型，然後使用該模型產生測試集中資料點的預測。Autopilot 使用此測試資料集，透過將預測值與測試集的觀測值進行比較來評估模型的準確性。

您可以在 `[BestCandidate.CandidateProperties.CandidateArtifactLocations.BacktestResults](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-BacktestResults)` 的 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` 回應中找到最佳候選產生的模型品質報告成品的 Amazon S3 字首。

# Autopilot 的時間序列預測資源限制
<a name="timeseries-forecasting-limits"></a>

下表列出 Amazon SageMaker Autopilot 中時間序列預測任務的資源限制，以及是否可以調整每個限制。


| **資源限制** | **預設值限制** | **可調整** | 
| --- | --- | --- | 
|  輸入資料集的大小  |  30 GB  |  是  | 
|  單一 Parquet 檔案的大小  |  2 GB  |  否  | 
|  資料集中的列數量上限  |  30 億  |  是  | 
|  群組數目欄位上限  |  5  |  否  | 
|  數值特徵上限的上限數量  |  13  |  否  | 
|  分類特徵數量的上限  |  10  |  否  | 
|  每個資料集的時間序列數上限 (項目與群組資料欄的唯一組合)  |  5,000,000  |  是  | 
|  預測總時程上限  |  500  |  是  | 

# 使用 API 建立微調文字生成模型的 AutoML 任務
<a name="autopilot-create-experiment-finetune-llms"></a>

大型語言模型 (LLM) 在多種生成任務中脫穎而出，包括文字生成、摘要、完稿、問答等。之所以能有如此表現，可以歸因於其規模龐大，並對各種資料集和各類任務進行了廣泛的訓練。但是，醫療保健和金融服務等特定領域可能需要進行自訂微調，以適應獨特的資料和使用案例。透過根據特定領域量身打造的訓練，LLM 可以提高效能，並為目標應用程式提供更準確的輸出。

Autopilot 提供一系列微調預先訓練的生成文字模型的功能。明確來說，Autopilot 支援一系列由 JumpStart 提供支援的通用大型語言模型 (LLM) 進行**指令微調**。

**注意**  
現階段，可在 Autopilot 中進行微調的文字生成模型，僅在 SageMaker Canvas 提供服務的區域內可用。如需[支援區域的完整清單](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html)，請參閱 SageMaker Canvas 的文件。

微調預先訓練的模型需要有明確指令的特定資料集，以指導模型如何生成輸出或針對任務執行動作。該模型從資料集中學習，調整其參數以符合提供的說明。指令微調包含使用格式設定為提示-回應配對，並以指令形式表達的標記範例。如需微調的詳細資訊，請參閱[微調基礎模型](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-fine-tuning.html)。

以下指南描述建立 Amazon SageMaker Autopilot 任務作為前導實驗的過程，藉由 SageMaker [API 參考](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)微調文字生成 LLM。

**注意**  
文字和影像分類、時間序列預測以及大型語言模型的微調等任務，僅能透過 [AutoML REST API](autopilot-reference.md) 第 2 版獨家取得。如果您選擇的語言是 Python，您可以直接參考 [適用於 Python (Boto3) 的 AWS SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html) 或 Amazon SageMaker Python SDK 的 [AutoMLV2 物件](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2)。  
偏好使用者介面便利性的使用者，可以使用 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) 存取預先訓練的模型、生成式 AI 基礎模型，或建立針對特定文字、影像分類、預測需求或生成式 AI 量身打造的自訂模型。

若要以程式設計方式建立 Autopilot 實驗來微調 LLM，您可以使用 Amazon SageMaker Autopilot 支援的任何語言或 AWS CLI來呼叫 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) API。

有關此 API 動作如何以您選擇的語言轉換為函式的詳細資訊，請參閱 `CreateAutoMLJobV2` 的[另請參閱](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso)章節，並選擇 SDK。例如，對於 Python 使用者，請參閱 適用於 Python (Boto3) 的 AWS SDK中的`[create\$1auto\$1ml\$1job\$1v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)`的完整請求語法。

**注意**  
Autopilot 在微調大型語言模型時，無需訓練和評估多個候選模型。相反地，Autopilot 會使用您的資料集直接微調您的目標模型，以增強預設目標指標，即交叉熵損失。在 Autopilot 中微調語言模型時，無需設定 `AutoMLJobObjective`欄位。

一旦您的 LLM 經過微調，您可以在進行 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)` API 呼叫時，透過 `[BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateProperties.html#sagemaker-Type-CandidateProperties-CandidateMetrics)` 存取各種 ROUGE 分數來評估其效能。該模型還提供了有關其訓練和驗證損失以及困惑度的資訊。如需評估經微調的模型所產生文字品質的完整指標清單，請參閱[用於微調 Autopilot 中大型語言模型的指標](autopilot-llms-finetuning-metrics.md)。

## 先決條件
<a name="autopilot-llms-finetuning-api-prerequisites"></a>

使用 Autopilot 在 SageMaker AI 中建立微調實驗之前，請務必執行下列步驟：
+ (選用) 選擇您要微調的預先訓練模型。

  如需 Amazon SageMaker Autopilot 中可用於微調的預先訓練模型清單，請參閱[支援大型語言模型進行微調](autopilot-llms-finetuning-models.md)。選擇模型並非強制要求；如果未指定模型，Autopilot 將自動預設為 *Falcon7BInstruct*。
+ 建立指令的資料集。請參閱[資料集檔案類型與輸入資料格式](autopilot-llms-finetuning-data-format.md)，以了解指令型資料集的格式需求。
+ 將您的資料集放入 Amazon S3 儲存貯體。
+ 授予對 Amazon S3 儲存貯體的完整存取權，該儲存貯體包含用於執行實驗的 SageMaker AI 執行角色的輸入資料。
  + 如需有關擷取 SageMaker AI 執行角色的資訊，請參閱[取得您的執行角色](sagemaker-roles.md#sagemaker-roles-get-execution-role)。
  + 如需授予 SageMaker AI 執行角色存取 Amazon S3 中一或多個特定儲存貯體的相關資訊，請參閱[建立執行角色](sagemaker-roles.md#sagemaker-roles-create-execution-role)中的*新增額外的 Amazon S3 權限給 SageMaker AI 執行角色*。
+ 此外，您應該為執行角色提供必要的權限，以存取 JumpStart 使用的預設儲存 Amazon S3 儲存貯體。儲存和擷取 JumpStart 預先訓練模型成品時，需要此存取權。若要授予此 Amazon S3 儲存貯體的存取權，您必須在執行角色上建立新的內嵌自訂政策。

  以下是在 `us-west-2` 中設定 AutoML 微調任務時，您可以在 JSON 編輯器中使用的範例政策：

  *JumpStart 的儲存貯體名稱遵循取決於 的預定模式 AWS 區域。您必須相應地調整儲存貯體的名稱。*

  ```
  {
      "Sid": "Statement1",
      "Effect": "Allow",
      "Action": [
          "s3:GetObject",
          "s3:PutObject",
          "s3:ListBucket"
      ],
      "Resource": [
          "arn:aws:s3:::jumpstart-cache-prod-us-west-2",
          "arn:aws:s3:::jumpstart-cache-prod-us-west-2/*"
      ]
  }
  ```

完成此操作後，您可以透過這個執行角色的 ARN 在 Autopilot API 請求中使用。

## 必要參數
<a name="autopilot-llms-finetuning-api-required-params"></a>

當呼叫 `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` 以建立 LLM 微調的 Autopilot 實驗時，您必須提供以下值：
+ 用於指定任務的名稱的 `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)`。名稱應為類型`string`，並且最小長度為 1 個字元，最大長度為 32 個字元。
+ 至少在`[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)`中有一個`training`類型的`[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)`。此通道指定微調資料集的 Amazon S3 儲存貯體名稱。您有選擇定義`validation`通道的選項。如果未提供驗證通道，且在 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) 中設定了 `ValidationFraction`，則會使用此分數將訓練資料集隨機劃分為訓練和驗證集。此外，您可以指定資料集的內容類型 (CSV 或 Parquet 檔案)。
+ `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` 類型的 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 用於配置訓練任務的設定。

  特別是，您可以在 `BaseModelName` 欄位中指定要微調的基本模型名稱。如需 Amazon SageMaker Autopilot 中可用於微調的預訓練模型清單，請參閱[支援大型語言模型進行微調](autopilot-llms-finetuning-models.md)。
+ 以 `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)` 指定 Amazon S3 輸出路徑，以存放 AutoML 任務的成品。
+ `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)` 用來指定用於存取您的資料的角色的 ARN。

以下是對 `CreateAutoMLJobV2` 進行 API 呼叫以微調 (`Falcon7BInstruct`) 模型時，所使用的完整請求格式範例。

```
{
   "AutoMLJobName": "<job_name>",
   "AutoMLJobInputDataConfig": [ 
      { 
         "ChannelType": "training",
         "CompressionType": "None",
         "ContentType": "text/csv", 
         "DataSource": { 
            "S3DataSource": { 
               "S3DataType": "S3Prefix",
               "S3Uri": "s3://<bucket_name>/<input_data>.csv"
            }
         }
      }
   ],
  "OutputDataConfig": {
      "S3OutputPath": "s3://<bucket_name>/output",
      "KmsKeyId": "arn:aws:kms:<region>:<account_id>:key/<key_value>"
   },
   "RoleArn":"arn:aws:iam::<account_id>:role/<sagemaker_execution_role_name>",
   "AutoMLProblemTypeConfig": {
        "TextGenerationJobConfig": {
            "BaseModelName": "Falcon7BInstruct"
       }
   }
}
```

所有其他參數都是選用參數。

## 選用的參數
<a name="autopilot-llms-finetuning-api-optional-params"></a>

以下各章節提供一些選用參數的詳細資訊，您可以將這些參數傳送至您的微調 AutoML 任務。

### 如何指定 AutoML 任務的訓練和驗證資料集
<a name="autopilot-llms-finetuning-data-training-or-validation"></a>

您可以提供自己的驗證資料集和自訂資料分割比例，或讓 Autopilot 自動分割資料集。

每個 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html) 物件 (請參閱 [AutomlJobinputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig) 所需的參數) 都有一個 `ChannelType`，可以設定為 `training` 或 `validation` 值，指定建構機器學習模型時如何使用資料。

至少必須提供一個資料來源，最多允許兩個資料來源：一個用於訓練資料，另一個用於驗證資料。將資料分割為訓練和驗證資料集的方式，取決於您有一個或兩個資料來源。
+ 如果您只有**一個資料來源**，則`ChannelType`依預設會將其設定為`training`，且必須具有此值。
  + 如果未設定 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) 中的 `ValidationFraction` 值，則預設會使用來自此來源的 0.2 (20%) 資料進行驗證。
  + 如果設定`ValidationFraction`為介於 0 和 1 之間的值，則會根據指定的值來分割資料集，其中值會指定用於驗證的資料集分數。
+ 如果您有**兩個資料來源**，則必須將其中一個`AutoMLJobChannel`物件的`ChannelType`設定為`training`，即預設值。其他資料來源的`ChannelType`必須設定為`validation`。這兩個資料來源必須具有相同的格式 (CSV 或 Parquet)，以及相同的結構描述。在這種情況下，您不得設定`ValidationFraction`的值，因為每個來源的所有資料都會用於訓練或驗證。設定此值會導致錯誤。

### 如何啟用自動部署
<a name="autopilot-llms-finetuning-auto-model-deployment"></a>

Autopilot 可讓您將經微調的模型自動部署到端點。若要啟用經微調的模型的自動部署，請在 AutoML 任務請求中包括`[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)`。這可讓您將經微調的模型部署到 SageMaker AI 端點。以下是可用於自訂的組態。
+ 若要讓 Autopilot 產生端點名稱，請將`[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`設定為`True`。
+ 若要為端點提供您自己的名稱，請設定`[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents) to False and provide a name of your choice in [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`。

### 使用 AutoML API 微調模型時如何設定接受 EULA
<a name="autopilot-llms-finetuning-set-eula"></a>

對於需要在微調之前接受終端使用者授權協議的模型，您可以在設定 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 時將 `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` 中 `[ModelAccessConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelAccessConfig.html)` 的 `AcceptEula` 屬性設定為 `True`，以接受 EULA。

### 如何設定超參數以最佳化模型的學習過程
<a name="autopilot-llms-finetuning-set-hyperparameters"></a>

設定 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` 時，您可以在 `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` 的 `TextGenerationHyperParameters` 屬性中設定超參數值，用以最佳化文字生成模型的學習過程。

Autopilot 允許在所有模型中設定四個常見的超參數。
+ `epochCount`：其值應為字串，包含 `1` 到 `10` 範圍內的整數值。
+ `batchSize`：其值應為字串，包含 `1` 到 `64` 範圍內的整數值。
+ `learningRate`：其值應為字串，包含 `0` 到 `1` 範圍內的浮點值。
+ `learningRateWarmupSteps`：其值應為字串，包含 `0` 到 `250` 範圍內的整數值。

如需每個超參數的詳細資訊，請參閱[用於最佳化文字生成模型學習過程的超參數](autopilot-llms-finetuning-hyperparameters.md)。

下列 JSON 範例顯示傳遞至 TextGenerationJobConfig 的 `TextGenerationHyperParameters` 欄位，其中所有四個超參數都已設定。

```
"AutoMLProblemTypeConfig": {
  "TextGenerationJobConfig": {
    "BaseModelName": "Falcon7B",
    "TextGenerationHyperParameters": {"epochCount":"5", "learningRate":"0.000001", "batchSize": "32", "learningRateWarmupSteps": "10"}
  }
}
```

# 支援大型語言模型進行微調
<a name="autopilot-llms-finetuning-models"></a>

使用 Autopilot API，使用者可以微調由 Amazon SageMaker JumpStart 提供支援的大型語言模型 (LLM)。

**注意**  
對於需要接受終端使用者授權協議的經微調的模型，您必須在建立 AutoML 任務時明確宣告接受 EULA。請注意，微調預先訓練的模型後，原始模型的權重會變更，因此您之後在部署經微調的模型時不需要接受 EULA。  
如需使用 AutoML API 建立微調任務時如何接受 EULA 的資訊，請參閱[使用 AutoML API 微調模型時如何設定接受 EULA](autopilot-create-experiment-finetune-llms.md#autopilot-llms-finetuning-set-eula)。

您可以在下列[模型表](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html#built-in-algorithms-with-pre-trained-model-table)中搜尋 **JumpStart 模型 ID**，然後依照**來源**欄中的連結找到每個模型的完整詳細資訊。這些詳細資訊可能包括模型支援的語言、可能表現出的偏差、用於微調的資料集等。

下表列出您可以使用 AutoML 任務進行微調的受支援 JumpStart 模型。


| JumpStart 模型 ID | API 請求中的 `BaseModelName` | Description | 
| --- | --- | --- | 
| huggingface-textgeneration-dolly-v2-3b-bf16 | Dolly3B |  Dolly 3B 是採用 [pythia-2.8b](https://huggingface.co/EleutherAI/pythia-2.8b#pythia-28b) 的 28 億參數指令遵循大型語言模型。它在指示/回應微調資料集 [databricks-dolly-15k](https://huggingface.co/datasets/databricks/databricks-dolly-15k) 上進行訓練，可以執行腦力激盪、分類、問答、文字生成、資訊擷取和摘要等任務。  | 
| huggingface-textgeneration-dolly-v2-7b-bf16 | Dolly7B |  Dolly 7B 是採用 [pythia-6.9b](https://huggingface.co/EleutherAI/pythia-6.9b) 的 69 億參數指令遵循大型語言模型。它在指示/回應微調資料集 [databricks-dolly-15k](https://huggingface.co/datasets/databricks/databricks-dolly-15k) 上進行訓練，可以執行腦力激盪、分類、問答、文字生成、資訊擷取和摘要等任務。  | 
| huggingface-textgeneration-dolly-v2-12b-bf16 | Dolly12B |  Dolly 12B 是採用 [pythia-12b](https://huggingface.co/EleutherAI/pythia-12b) 的 120 億參數指令遵循大型語言模型。它在指示/回應微調資料集 [databricks-dolly-15k](https://huggingface.co/datasets/databricks/databricks-dolly-15k) 上進行訓練，可以執行腦力激盪、分類、問答、文字生成、資訊擷取和摘要等任務。  | 
| huggingface-llm-falcon-7b-bf16 | Falcon7B |  Falcon 7B 是擁有 70 億個參數的因果大型語言模型，經過 15,000 億個標記訓練，並透過精選語料庫進行增強。Falcon-7B 僅使用英文和法文資料進行訓練，無法適當推廣到其他語言。由於該模型是以大量網路資料進行訓練的，因此它帶有網路上常見的刻板印象和偏見。  | 
| huggingface-llm-falcon-7b-instruct-bf16 | Falcon7BInstruct |  Falcon 7B Instruct 是根據 Falcon 7B 建置的 70 億參數因果大型語言模型，並依據 2.5 億個聊天/指令資料集的混合標記進行了微調。Falcon 7B Instruct 主要是以英文資料進行訓練，無法適當地推廣到其他語言。此外，由於它是在代表網路的大規模語料庫上進行訓練的，因此它帶有網路上常見的刻板印象和偏見。  | 
| huggingface-llm-falcon-40b-bf16 | Falcon40B |  Falcon 40B 是擁有 400 億個參數的因果大型語言模型，經過 1,000 億個標記訓練，並透過精選語料庫進行增強。它主要以英文、德文、西班牙文和法文進行訓練，對於義大利文、葡萄牙文、波蘭文、荷蘭文、羅馬尼亞文、捷克文和瑞典文的功能有限，無法適當地推廣到其他語言。此外，由於它是在代表網路的大規模語料庫上進行訓練的，因此它帶有網路上常見的刻板印象和偏見。  | 
| huggingface-llm-falcon-40b-instruct-bf16 | Falcon40BInstruct |  Falcon 40B Instruct 是根據 Falcon40B 建置的 400 億參數因果大型語言模型，並在 Baize 混合模型上進行了微調；主要是以英文和法文資料進行訓練，無法適當推廣到其他語言。此外，由於它是在代表網路的大規模語料庫上進行訓練的，因此它帶有網路上常見的刻板印象和偏見。  | 
| huggingface-text2text-flan-t5-large | FlanT5L |  [https://huggingface.co/docs/transformers/model_doc/t5](https://huggingface.co/docs/transformers/model_doc/t5) 模型系列是一組大型語言模型，可根據多個任務進行微調，並可進一步訓練。這些模型非常適合語言翻譯、文字生成、句子完成、詞義消歧、摘要或問答等任務。Flan T5 L 是擁有 7.8 億個參數的大型語言模型，經過多種語言的訓練。您可以在 JumpStart [模型表](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html#built-in-algorithms-with-pre-trained-model-table)中，依照模型 ID 搜尋模型，並在其擷取的詳細資訊中找到 Flan T5 L 支援的語言清單。  | 
| huggingface-text2text-flan-t5-xl | FlanT5XL |  [https://huggingface.co/docs/transformers/model_doc/t5](https://huggingface.co/docs/transformers/model_doc/t5) 模型系列是一組大型語言模型，可根據多個任務進行微調，並可進一步訓練。這些模型非常適合語言翻譯、文字生成、句子完成、詞義消歧、摘要或問答等任務。Flan T5 XL 是擁有 30 億個參數的大型語言模型，經過多種語言的訓練。您可以在 JumpStart 的[模型表](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html#built-in-algorithms-with-pre-trained-model-table)中，依照模型 ID 搜尋模型，並在其擷取的詳細資訊中找到 Flan T5 XL 支援的語言清單。  | 
| huggingface-text2text-flan-t5-xxll | FlanT5XXL |  [https://huggingface.co/docs/transformers/model_doc/t5](https://huggingface.co/docs/transformers/model_doc/t5) 模型系列是一組大型語言模型，可根據多個任務進行微調，並可進一步訓練。這些模型非常適合語言翻譯、文字生成、句子完成、詞義消歧、摘要或問答等任務。Flan T5 XXL 是擁有 110 億個參數的模型。您可以在 JumpStart 的[模型表](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html#built-in-algorithms-with-pre-trained-model-table)中，依照模型 ID 搜尋模型，並在其擷取的詳細資訊中找到 Flan T5 XXL 支援的語言清單。  | 
| meta-textgeneration-llama-2-7b | Llama2-7B |  Llama 2 是經過預先訓練和微調的生成文字模型的集合，規模從 70 億到 700 億個參數不等。Llama2-7B 是擁有 70 億參數的模型，專門用於英文，可以適用於各種自然語言生成任務。  | 
| meta-textgeneration-llama-2-7b-f | Llama2-7BChat |  Llama 2 是經過預先訓練和微調的生成文字模型的集合，規模從 70 億到 700 億個參數不等。Llama2-7B 是針對對話使用案例進行了最佳化的 70 億參數聊天模型。  | 
| meta-textgeneration-llama-2-13b | Llama2-13B |  Llama 2 是經過預先訓練和微調的生成文字模型的集合，規模從 70 億到 700 億個參數不等。Llama2-13B 是擁有 130 億參數的模型，專門用於英文，可以適用於各種自然語言生成任務。  | 
| meta-textgeneration-llama-2-13b-f | Llama2-13BChat |  Llama 2 是經過預先訓練和微調的生成文字模型的集合，規模從 70 億到 700 億個參數不等。Llama2-13B 是針對對話使用案例進行了最佳化的 130 億參數聊天模型。  | 
| huggingface-llm-mistral-7b | Mistral7B |  Mistral 7B 是擁有七十億參數的程式碼和通用英文文字生成模型，它可用於各種使用案例，包括文字摘要、分類、文字完成或程式碼完成。  | 
| huggingface-llm-mistral-7b-instruct | Mistral7BInstruct |  Mistral 7B Instruct 是針對對話使用案例進行微調的 Mistral 7B 版本，它專門使用各種公開的英語對話資料集。  | 
| huggingface-textgeneration1-mpt-7b-bf16 | MPT7B |  MPT 7B 是一種解碼器式轉換器大型語言模型，具有 67 億個參數，根據 1 兆個英文文字和代碼標記從頭進行預先訓練。它已準備好處理長上下文的內容。  | 
| huggingface-textgeneration1-mpt-7b-instruct-bf16 | MPT7BInstruct |  MPT 7B Instruct 是短格式指令遵循任務的模型。它是透過根據衍生自 [databricks-dolly-15k](https://huggingface.co/datasets/databricks/databricks-dolly-15k) 的資料集和 [Anthropic Helpful and Harmless (HH-RLHF)](https://huggingface.co/datasets/Anthropic/hh-rlhf) 資料集來微調 MPT 7B 而建置。  | 

# 資料集檔案類型與輸入資料格式
<a name="autopilot-llms-finetuning-data-format"></a>

指令微調使用標記資料集來改善預先訓練的 LLM 在特定自然語言處理 (NLP) 任務上的效能。帶有標籤的範例的格式會設定為提示-回應配對，並依照指示的用詞表達。



若要瞭解支援的資料集檔案類型，請參閱[支援的資料集檔案類型](#autopilot-llms-finetuning-dataset-format)。

若要瞭解輸入資料格式，請參閱[指令微調的輸入資料格式](#autopilot-llms-finetuning-input-format)。

## 支援的資料集檔案類型
<a name="autopilot-llms-finetuning-dataset-format"></a>

Autopilot 支援格式化為 CSV 檔案 (預設) 或 Parquet 檔案的指令微調資料集。
+ **CSV** (逗號分隔值) 是一種基於行的文件格式，以人類可讀的純文字格式存放資料，這是資料交換的流行選擇，因其具備廣泛的應用程式支援。
+ **Parquet** 是一種二進位欄型檔案格式，其資料存放和處理比 CSV 等人類可讀的檔案格式更有效率。這使其成為解決巨量資料問題的更好選擇。

**注意**  
資料集可能包含多個檔案，每個檔案都必須符合特定的範本。如需關於格式化您的輸入資料的相關資訊，請參閱[指令微調的輸入資料格式](#autopilot-llms-finetuning-input-format)。

## 指令微調的輸入資料格式
<a name="autopilot-llms-finetuning-input-format"></a>

資料集的每個檔案都必須遵循下列格式：
+ 資料集必須只包含兩個以逗號分隔且具名的資料欄，分別為`input`和`output`。Autopilot 不允許任何額外的資料欄。
+ `input`欄位包含提示，其對應的`output`列包含預期的答案。`input`和`output`都是字串格式。

以下範例說明了在 Autopilot 中進行指令微調的輸入資料格式。

```
input,output
"<prompt text>","<expected generated text>"
```

**注意**  
我們建議使用至少 1000 列的資料集，以確保模型的最佳學習和效能。

此外，Autopilot 會根據所使用的模型類型，設定資料集中資料列數和內容長度的最大限制。
+ 資料集中的列數限制適用於資料集內所有檔案 (包括多個檔案) 的累計列數。如果定義了兩種[通道類型](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html) (一個用於訓練，另一個用於驗證)，則限制會套用至兩個通道中所有資料集的總列數。當資料列數目超過臨界值時，任務會失敗，並顯示驗證錯誤。
+ 當資料集中資料列的輸入或輸出長度超過語言模型上下文所設定的限制時，系統會自動截斷該資料列。如果資料集中超過 60% 的資料列在輸入或輸出中遭到截斷，Autopilot 都會因驗證錯誤而終止任務。

下表顯示每個模型的各項限制。


| JumpStart 模型 ID | API 請求中的 `BaseModelName` | 資料列限制 | 上下文長度限制 | 
| --- | --- | --- | --- | 
| huggingface-textgeneration-dolly-v2-3b-bf16 | Dolly3B | 10,000 列 | 1024 個標記 | 
| huggingface-textgeneration-dolly-v2-7b-bf16 | Dolly7B | 10,000 列 | 1024 個標記 | 
| huggingface-textgeneration-dolly-v2-12b-bf16 | Dolly12B | 10,000 列 | 1024 個標記 | 
| huggingface-llm-falcon-7b-bf16 | Falcon7B | 1,000 列 | 1024 個標記 | 
| huggingface-llm-falcon-7b-instruct-bf16 | Falcon7BInstruct | 1,000 列 | 1024 個標記 | 
| huggingface-llm-falcon-40b-bf16 | Falcon40B | 10,000 列 | 1024 個標記 | 
| huggingface-llm-falcon-40b-instruct-bf16 | Falcon40BInstruct | 10,000 列 | 1024 個標記 | 
| huggingface-text2text-flan-t5-large | FlanT5L | 10,000 列 | 1024 個標記 | 
| huggingface-text2text-flan-t5-xl | FlanT5XL | 10,000 列 | 1024 個標記 | 
| huggingface-text2text-flan-t5-xxll | FlanT5XXL | 10,000 列 | 1024 個標記 | 
| meta-textgeneration-llama-2-7b | Llama2-7B | 10,000 列 | 2048 個標記 | 
| meta-textgeneration-llama-2-7b-f | Llama2-7BChat | 10,000 列 | 2048 個標記 | 
| meta-textgeneration-llama-2-13b | Llama2-13B | 7,000 列 | 2048 個標記 | 
| meta-textgeneration-llama-2-13b-f | Llama2-13BChat | 7,000 列 | 2048 個標記 | 
| huggingface-llm-mistral-7b | Mistral7B | 10,000 列 | 2048 個標記 | 
| huggingface-llm-mistral-7b-instruct | Mistral7BInstruct | 10,000 列 | 2048 個標記 | 
| huggingface-textgeneration1-mpt-7b-bf16 | MPT7B | 10,000 列 | 1024 個標記 | 
| huggingface-textgeneration1-mpt-7b-instruct-bf16 | MPT7BInstruct | 10,000 列 | 1024 個標記 | 

# 用於最佳化文字生成模型學習過程的超參數
<a name="autopilot-llms-finetuning-hyperparameters"></a>

您可以調整下列超參數的任意組合，以最佳化基礎模型的學習過程。這些參數適用於所有模型。
+ **Epoch 計數**：`epochCount` 超參數決定模型遍歷整個訓練資料集的次數。它會影響訓練持續時間，如果設定得當，可防止過度擬合。大量的 epoch 可能會增加微調任務的整體執行時間。我們建議在 `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` 的 `CompletionCriteria` 中設定較大的 `MaxAutoMLJobRuntimeInSeconds`，以避免微調任務過早停止。
+ **批次大小**：`batchSize` 超參數定義每次訓練迭代中使用的資料樣本數量。它可能會影響收斂速度和記憶體用量。隨著批次大小的增加，記憶體不足 (OOM) 錯誤的風險會增加，這可能會表現為 Autopilot 中的內部伺服器錯誤。若要檢查此類錯誤，請檢查 Autopilot 任務啟動之訓練任務的 `/aws/sagemaker/TrainingJobs` 日誌群組。您可以在 AWS 管理主控台從 存取 CloudWatch 中的這些日誌。選擇**日誌**，然後選擇 `/aws/sagemaker/TrainingJobs` **日誌群組**。若要修正 OOM 錯誤，請減少批次大小。

  我們建議從批次大小 1 開始，然後逐步增加，直到發生記憶體不足錯誤為止。做為參考，10 個 epoch 通常需要 72 小時才能完成。
+ **學習率**：`learningRate` 超參數控制訓練期間更新模型參數的步驟大小。它決定模型參數在訓練期間更新速度的快慢。高學習率表示參數更新的步驟大小較大，可以帶來更快的收斂速度，但也可能導致最佳化過程超出最佳解而變得不穩定。低學習率表示參數會以較小的步驟大小更新，這可以帶來更穩定的收斂，但代價是學習速度較慢。
+ **學習率暖機步驟**：`learningRateWarmupSteps` 超參數指定學習率在達到目標值或最大值之前，逐漸增加的訓練步數。這有助於模型更有效地收斂，並避免最初較高的學習率可能出現的發散或收斂緩慢等問題。

若要了解如何在 Autopilot 中調整微調實驗的超參數，並探索其可能值，請參閱[如何設定超參數以最佳化模型的學習過程](autopilot-create-experiment-finetune-llms.md#autopilot-llms-finetuning-set-hyperparameters)。

# 用於微調 Autopilot 中大型語言模型的指標
<a name="autopilot-llms-finetuning-metrics"></a>

下一節說明可用來了解微調大型語言模型 (LLMs) 的指標。Autopilot 會使用您的資料集直接對目標 LLM 進行微調，以增強預設目標指標，即交叉熵損失。

交叉熵損失是一種廣泛使用的指標，用於評估預測的概率分佈與訓練資料中文字的實際分佈之間的不相似性。透過將交叉熵損失最小化，模型學習會進行更精確並與上下文相關的預測，特別是在與文字生成相關的任務中。

微調 LLM 後，您可以使用 ROUGE 分數範圍評估其產生文字的品質。此外，您可以在評估過程中分析困惑度、交叉熵訓練和驗證損失。
+ 困惑損失可衡量模型在一系列文字中預測下一個字的程度，而較低的值則表示對語言和上下文有更好的理解。
+ Recall-Oriented Understudy for Gisting Evaluation (ROUGE) 是一組用於自然語言處理 (NLP) 和機器學習領域的指標，用於評估機器生成文字的品質，如文字摘要或文字生成。它主要評估所產生文字與驗證資料集的基本事實參考 (人類撰寫) 文字之間的相似性。ROUGE 指標旨在評估文字相似性的各個層面，包括系統產生和參考文字中 n-gram (連續單字序列) 的精確率和召回率。目標是評估模型擷取參考文字中存在的資訊的程度。

  ROUGE 指標有幾種變體，根據使用的 n-gram 類型和正在評估的文字品質的特定方面。

  下列清單包含在 Autopilot 中微調大型語言模型後可用 ROUGE 指標的名稱和說明。  
**`ROUGE-1`, `ROUGE-2`**  
ROUGE-N 是主要的 ROUGE 指標，衡量系統產生和參考文字之間 n-gram 的重疊程度。ROUGE-N 可以調整為不同的 `n` 值 (此處為 `1` 或 `2`)，以評估系統產生的文字從參考文字擷取 n-gram 的程度。  
**`ROUGE-L`**  
ROUGE-L (ROUGE-Longest通用子序列) 計算系統生成的文字和參考文字之間的最長通用子序列。除了內容重疊之外，此變體還會考慮文字順序。  
**`ROUGE-L-Sum`**  
ROUGE-L-SUM (摘要的最長通用子序列) 是專門用於評估文字摘要系統的指標。它著重於測量機器產生的摘要和參考摘要之間最長的常見子序列。ROUGE-L-SUM 會考慮文字中的單字順序，這在文字摘要任務中很重要。

# Autopilot 模型部署和預測
<a name="autopilot-llms-finetuning-deploy-models"></a>

微調大型語言模型 (LLM) 之後，您可以透過設定端點以取得互動式預測來部署模型，以進行即時文字生成。

**注意**  
我們建議您在上執行即時推論任務，以`ml.g5.12xlarge`獲得更好的效能。或者，`ml.g5.8xlarge` 執行個體適用於 Falcon-7B-Instruct 和 MPT-7B-Instruc 指示的文字生成任務。  
您可以在 Amazon EC2 提供的執行個體類型中，在[加速運算](https://aws.amazon.com/ec2/instance-types/)類別中找到這些執行個體的詳細資訊。

## 即時文字生成
<a name="autopilot-llms-finetuning-realtime"></a>

您可以使用 SageMaker API 手動將您的經微調的模型部署到 SageMaker AI 託管[即時推論端點](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html)，然後透過如下方式調用端點來開始進行預測。

**注意**  
或者，您可以在 Autopilot 中建立微調實驗時，選擇自動部署選項。如需設定自動化部署模型的相關資訊，請參閱[如何啟用自動部署](autopilot-create-experiment-finetune-llms.md#autopilot-llms-finetuning-auto-model-deployment)。  
您還可以使用 SageMaker Python SDK 和`JumpStartModel`類別，對由 Autopilot 微調的模型執行推論。這可以透過在 Amazon S3 中為模型的成品指定自訂位置來完成。如需將模型定義為 JumpStart 模型，以及部署模型以供推論使用的詳細資訊，請參閱[使用 JumpStartModel 類別進行低程式碼部署](https://sagemaker.readthedocs.io/en/stable/overview.html#deploy-a-pre-trained-model-directly-to-a-sagemaker-endpoint)。

1. **取得候選推論容器定義**

   您可以從 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html#API_DescribeAutoMLJobV2_ResponseSyntax) API 呼叫的回應中，擷取的 `BestCandidate` 物件內部中找到 `InferenceContainerDefinitions`。推論的容器定義指的是容器化環境，專為部署和執行經過訓練的模型進行預測而設計。

   下列 AWS CLI 命令範例使用 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API 為您的任務名稱取得建議的容器定義。

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
   ```

1. **建立 SageMaker AI 模型**

   使用上一個步驟中的容器定義，透過使用 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API 來建立 SageMaker AI 模型。請參閱下列 AWS CLI 命令做為範例。使用 `CandidateName` 做為您的型號名稱。

   ```
   aws sagemaker create-model --model-name '<your-candidate-name>' \
                       --primary-container '<container-definition' \
                       --execution-role-arn '<execution-role-arn>' --region '<region>
   ```

1. **建立端點組態**

   下列 AWS CLI 命令範例使用 [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html) API 來建立端點組態。
**注意**  
若要防止端點建立因為模型下載過時而逾時，建議您設定 `ModelDataDownloadTimeoutInSeconds = 3600` 和 `ContainerStartupHealthCheckTimeoutInSeconds = 3600`。

   ```
   aws sagemaker create-endpoint-config --endpoint-config-name '<your-endpoint-config-name>' \
                       --production-variants '<list-of-production-variants>' ModelDataDownloadTimeoutInSeconds=3600 ContainerStartupHealthCheckTimeoutInSeconds=3600 \
                       --region '<region>'
   ```

1. **建立端點** 

   下列 AWS CLI 範例使用 [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) API 來建立端點。

   ```
   aws sagemaker create-endpoint --endpoint-name '<your-endpoint-name>' \
                       --endpoint-config-name '<endpoint-config-name-you-just-created>' \
                       --region '<region>'
   ```

   使用 [DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) API來檢查端點部署的進度。請參閱下列 AWS CLI 命令做為範例。

   ```
   aws sagemaker describe-endpoint —endpoint-name '<endpoint-name>' —region <region>
   ```

   `EndpointStatus`變更為後`InService`，端點即可用於即時推論。

1. **調用 API 端點** 

   下列命令會調用端點以進行即時推論。您的提示需要以位元組為單位進行編碼。
**注意**  
輸入提示的格式取決於語言模型。關於文字生成提示格式的詳細資訊，請參閱[請求文字生成模型即時推論的格式](#autopilot-llms-finetuning-realtime-prompt-examples)。

   ```
   aws sagemaker invoke-endpoint --endpoint-name '<endpoint-name>' \ 
                     --region '<region>' --body '<your-promt-in-bytes>' [--content-type] 'application/json' <outfile>
   ```

## 請求文字生成模型即時推論的格式
<a name="autopilot-llms-finetuning-realtime-prompt-examples"></a>

不同的大型語言模型 (LLM) 可能具有特定的軟體相依性、執行時期環境和硬體需求，這些需求會影響 Autopilot 建議的容器來託管模型以供推論使用。此外，每個模型都指定了所需的輸入資料格式和預期的預測和輸出格式。

以下是某些型號和建議容器的範例輸入。
+ 對於建議使用的 Falcon 模型容器`huggingface-pytorch-tgi-inference:2.0.1-tgi1.0.3-gpu-py39-cu118-ubuntu20.04`：

  ```
  payload = {
      "inputs": "Large language model fine-tuning is defined as",
      "parameters": {
          "do_sample": false,
          "top_p": 0.9,
          "temperature": 0.1,
          "max_new_tokens": 128,
          "stop": ["<|endoftext|>", "</s>"]
      }
  }
  ```
+ 對於所有其他具有推薦容器 `djl-inference:0.22.1-fastertransformer5.3.0-cu118` 的模型：

  ```
  payload= {
      "text_inputs": "Large language model fine-tuning is defined as"
  }
  ```

# 使用 Studio Classic 使用者介面為表格式資料建立迴歸或分類 Autopilot 實驗
<a name="autopilot-automate-model-development-create-experiment-ui"></a>

**重要**  
自 2023 年 11 月 30 日起，Autopilot 的使用者介面將移至 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html)，作為更新的 [Amazon SageMaker Studio](studio-updated.md) 體驗的一部分。SageMaker Canvas 為分析師和公民資料科學家提供無程式碼功能，例如資料準備、特徵工程、演算法選擇、訓練和調校、推論等。使用者可以利用內建視覺效果和假設分析，探索其資料和不同案例，並透過自動化預測輕鬆產生模型。Canvas 支援各種使用案例，包括電腦視覺、需求預測、智慧搜尋和生成式 AI。  
 [Amazon SageMaker Studio Classic](studio.md) ([Studio](studio-updated.md) 的先前體驗) 的使用者可以繼續使用 Studio Classic 的 Autopilot 使用者介面。具編碼經驗的使用者可以繼續使用任何支援 SDK 中的 [API 參考](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)，以進行技術實作。  
如果您在 Studio Classic 中一直使用 Autopilot，並且想遷移至 SageMaker Canvas，您可能需要將其他許可授予使用者設定檔或 IAM 角色，以建立和使用 SageMaker Canvas 應用程式。如需詳細資訊，請參閱[(選用) 從 Studio Classic 中的 Autopilot 遷移至 SageMaker Canvas](studio-updated-migrate-ui.md#studio-updated-migrate-autopilot)。  
本指南中所有使用者介面相關的指示，均涉及移至 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) 之前的 Autopilot 獨立功能。遵循這些指示的使用者應使用 [Studio Classic](studio.md)。

您可以使用 Amazon SageMaker Studio Classic 使用者介面，為表格式資料的分類或迴歸問題建立 Autopilot 實驗。使用者介面可協助您指定實驗的名稱、提供輸入和輸出資料的位置，以及指定要預測的目標資料。或者，您也可以選擇指定要解決的問題類型 (迴歸、分類、多類別分類)、選擇建模策略 (*堆疊整合*或*超參數最佳化*)、選取 Autopilot 任務用來訓練資料的演算法清單等等。

使用者介面具有說明、切換開關、下拉式功能表、選項按鈕等，可協助您瀏覽建立候選模型。實驗執行之後，您可以比較試驗，並深入研究每個模型的預處理步驟、演算法和超參數範圍的詳細資訊。或者，您也可以選擇下載其[可解釋性](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-explainability.html)與[效能](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-insights.html)報告。使用提供的[筆記本](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-notebook-output.html )來查看自動化資料探索或候選模型定義的結果。

 或者，您也可以使用[使用 AutoML API 建立表格式資料的迴歸或分類任務](autopilot-automate-model-development-create-experiment.md)中的 Autopilot AutoML API。

# 設定 Autopilot 實驗的預設參數 (適用於管理員)
<a name="autopilot-set-default-parameters-create-experiment"></a>

當您使用 Studio Classic 使用者介面建立 Autopilot 實驗時，Autopilot 支援設定預設值以簡化 Amazon SageMaker Autopilot 的組態。系統管理員可以使用 Studio Classic [生命週期組態](studio-lcc.md) (LCC) 在組態檔中設定基礎結構、網路與安全性值，並預先填入 `AutoML` 任務的[進階設定](autopilot-automate-model-development-create-experiment-ui.md#advanced-settings)。

這樣，他們就可以完全控制與 Amazon SageMaker Studio Classic 關聯的資源 (包括 SageMaker AI 執行個體、資料來源、輸出資料和其他相關服務) 的網路連線以及存取權限。具體來說，管理員可以為 Studio Classic 網域或個別使用者設定檔設定所需的網路架構，例如 Amazon VPC、子網路和安全群組。使用 Studio Classic 使用者介面建立 Autopilot 實驗時，資料科學家可以專注於資料科學特定的參數。此外，管理員可以透過設定預設加密金鑰，管理員可以在執行 Autopilot 實驗的執行個體管理資料的加密。

**注意**  
此特徵目前在亞太地區 (香港) 及中東 (巴林) 選擇加入的區域不可用。

在以下各節中，您可以在使用 Studio Classic 使用者介面建立 Autopilot 實驗時，找到支援預設值設定的完整參數清單，並了解如何設定這些預設值。

**Topics**
+ [支援的預設參數清單](#autopilot-list-default-parameters-create-experiment)
+ [設定預設 Autopilot 實驗參數](#autopilot-set-default-parameters-create-experiment-howto)

## 支援的預設參數清單
<a name="autopilot-list-default-parameters-create-experiment"></a>

下列參數支援使用組態檔設定預設值，以便使用 Studio Classic 使用者介面建立 Autopilot 實驗。設定後，這些值會自動填入 Studio Classic 使用者介面中 Autopilot 的**建立實驗**標籤的對應欄位。如需每個欄位的完整說明，請參閱[進階設定 (選用)](autopilot-automate-model-development-create-experiment-ui.md#advanced-settings)。
+ **安全：**Amazon VPC、子網路與安全群組。
+ **Access：** AWS IAM 角色 ARNs。
+ **Encryption：** AWS KMS key IDs。
+ **標籤：**用於標籤和組織 SageMaker AI 資源的鍵值對。

## 設定預設 Autopilot 實驗參數
<a name="autopilot-set-default-parameters-create-experiment-howto"></a>

系統管理員可以在組態檔設定預設值，然後手動將檔案放置在特定使用者 Studio Classic 環境中的建議位置，或將檔案傳送至生命週期組態指令碼 (LCC)，以自動針對指定網域或使用者設定檔自訂 Studio Classic 環境。
+ 若要設定組態檔，請先從  填入其預設參數。

  若要設定 [支援的預設參數清單](#autopilot-list-default-parameters-create-experiment) 列出的任何或所有預設值，管理員可以建立名為 `config.yaml` 的組態檔，其結構應符合此[樣本組態檔](https://sagemaker.readthedocs.io/en/stable/overview.html#configuration-file-structure)。下列的程式碼片段顯示了包含所有受支援的 `AutoML` 參數的樣本組態檔。如需有關此檔案格式的詳細資訊，請參閱[完整結構描述](https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/config/config_schema.py)。

  ```
  SchemaVersion: '1.0'
  SageMaker:
    AutoMLJob:
      # https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html
      AutoMLJobConfig:
        SecurityConfig:
          EnableInterContainerTrafficEncryption: true
          VolumeKmsKeyId: 'kms-key-id'
          VpcConfig:
            SecurityGroupIds:
              - 'security-group-id-1'
              - 'security-group-id-2'
            Subnets:
              - 'subnet-1'
              - 'subnet-2'
      OutputDataConfig:
        KmsKeyId: 'kms-key-id'
      RoleArn: 'arn:aws:iam::111222333444:role/Admin'
      Tags:
      - Key: 'tag_key'
        Value: 'tag_value'
  ```
+ 然後，[手動將檔案複製到其建議的路徑或使用[生命週期組態 (LCC)，將組態檔](#autopilot-intelligent-defaults-lcc-setup)](#autopilot-intelligent-defaults-manual-setup)置於建議的位置。

  組態檔必須存在於使用者 Studio Classic 環境中的下列位置中的至少一個。依預設，SageMaker AI 會在兩個位置搜尋組態檔：
  + 首先，在 `/etc/xdg/sagemaker/config.yaml`。我們將此檔案稱為*管理員組態檔*。
  + 然後，在 `/root/.config/sagemaker/config.yaml`。我們將此文件稱為*使用者組態檔*。

  使用*管理員*組態檔，管理員可以定義一組預設值。或者，他們可以使用*使用者*組態檔來取代*管理員*組態檔設定的值，或設定其他預設參數值。

  下列程式碼片段顯示樣本指令碼，該指令碼會將預設參數組態檔寫入使用者 Studio Classic 環境中的*管理員*位置。您可以將 `/etc/xdg/sagemaker` 取代為 `/root/.config/sagemaker`，以將檔案寫入*使用者*位置。

  ```
  ## Sample script with AutoML intelligent defaults
  #!/bin/bash
  
  sudo mkdir -p /etc/xdg/sagemaker
  
  echo "SchemaVersion: '1.0'
  CustomParameters:
    AnyStringKey: 'AnyStringValue'
  SageMaker:
    AutoMLJob:
      # https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html
      AutoMLJobConfig:
        SecurityConfig:
          EnableInterContainerTrafficEncryption: true
          VolumeKmsKeyId: 'kms-key-id'
          VpcConfig:
            SecurityGroupIds:
              - 'security-group-id-1'
              - 'security-group-id-2'
            Subnets:
              - 'subnet-1'
              - 'subnet-2'
      OutputDataConfig:
        KmsKeyId: 'kms-key-id'
      RoleArn: 'arn:aws:iam::111222333444:role/Admin'
      Tags:
      - Key: 'tag_key'
        Value: 'tag_value'
  " | sudo tee /etc/xdg/sagemaker/config.yaml
  ```
  + **手動複製檔案**–若要手動複製組態檔，請從 Studio Classic 終端機執行上個步驟建立的[指令碼](#autopilot-intelligent-defaults-manual-setup)。在此情況下，執行指令碼的使用者設定檔可以使用僅適用於它們的預設值來建立 Autopilot 實驗。
  + **建立 SageMaker AI 生命週期組態** – 或者，您可以使用[生命週期組態](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html) (LCC) 來自動化 Studio Classic 環境的自訂。LCC 是由 Amazon SageMaker Studio Classic 生命週期事件 (例如啟動 Studio Classic 應用程式) 觸發的 Shell 指令碼。此自訂功能包括安裝自訂套件、設定筆記本擴充功能、預先載入資料集、設定原始程式碼儲存庫，或是預先填入預設參數。系統管理員可以將 LCC 附加至 Studio Classic 網域，以自動設定該網域中每個使用者設定檔的預設值。

    以下各節將詳細說明如何建立生命週期組態，讓使用者可以在啟動 Studio Classic 時自動載入 Autopilot 預設參數。您可以選擇使用 SageMaker AI 主控台或 AWS CLI建立 LCC。

------
#### [ Create a LCC from the SageMaker AI Console ]

    使用下列步驟建立包含預設參數的 LCC、將 LCC 附加至網域或使用者設定檔，然後啟動使用 SageMaker AI 主控台預先填入 LCC 設定的預設參數的 Studio Classic 應用程式。
    + **若要使用 SageMaker AI 主控台建立執行包含預設值的[指令碼](#autopilot-intelligent-defaults-script)的生命週期組態**
      + 開啟位於 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 的 SageMaker AI 主控台。
      + 在左側，導覽至**管理員組態**，然後選擇**生命週期組態**。
      + 從**生命週期組態**頁面，導覽至 Studio Classic 索引標籤，然後選擇**建立組態**。
      + 在**名稱** 中，使用英數字元和 “-” 來輸入名稱，但不能輸入空格。名稱最多可使用 63 個字元。
      + 將您的[指令碼](#autopilot-intelligent-defaults-script)貼到**指令碼**區段。
      + 選擇**建立組態**以建立生命週期組態。這會建立類型為 `Kernel gateway app` 的 LCC。
    +  **將生命週期組態附加至 Studio Classic 網域、空間或使用者設定檔**

      依照將[生命週期組態附加至 Studio Classic 網域或使用者設定檔](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc-create-console.html#studio-lcc-create-console-step2)中的步驟，將 LCC 附加至 Studio Classic 網域或特定使用者設定檔。
    +  **使用生命週期組態啟動您的 Studio Classic 應用程式**

      一旦 LCC 附加到網域或使用者設定檔，受影響的使用者就可以從 Studio 中的 Studio Classic 登陸頁面啟動 Studio Classic 應用程式，以自動取得 LCC 設定的預設值。建立 Autopilot 實驗時，這會自動填入 Studio Classic 使用者介面。

------
#### [ Create a LCC from the AWS CLI ]

    使用下列程式碼片段來啟動使用 AWS CLI執行[指令碼](#autopilot-intelligent-defaults-manual-setup)的 Studio Classic 應用程式。請注意，`lifecycle_config.sh` 是在此範例指定給指令碼的名稱。

    開始之前：
    +  AWS CLI 完成[從 建立生命週期組態中所述的先決條件，確保您已更新並設定 AWS CLI](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc-create-cli.html)。
    + 安裝 [OpenSSL](https://www.openssl.org/source/) 文件。 AWS CLI 命令會使用開放原始碼程式庫 *OpenSSL*，以 Base64 格式編碼您的指令碼。此要求可防止由於間距和換行編碼而發生的錯誤。

    您現在可以按照以下三個步驟操作：
    +  **參考組態指令碼 `lifecycle_config.sh` 建立新的生命週期組態**

      ```
      LCC_CONTENT=`openssl base64 -A -in lifecycle_config.sh`
      
      ## Create a new lifecycle config 
      aws sagemaker create-studio-lifecycle-config --region region \
      --studio-lifecycle-config-name lcc-name \
      --studio-lifecycle-config-content $LCC_CONTENT \
      --studio-lifecycle-config-app-type default
      ```

      記下傳回之新建立之生命週期組態的 ARN。需要此 ARN 才能將生命週期組態附加至您的應用程式。
    +  **將生命週期組態附加至 `JupyterServerApp`**

      以下範例示範如何建立附加生命週期組態的新使用者設定檔。若要更新現有的使用者設定檔，請使用 AWS CLI [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html) 命令。若要建立或更新網域，請參閱 [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html) 及 [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)。將上個步驟的生命週期組態 ARN 新增至 `JupyterServerAppSettings` 應用程式類型的設定。您可以使用生命週期組態清單，同時新增多個生命週期組態。

      ```
      # Create a new UserProfile
      aws sagemaker create-user-profile --domain-id domain-id \
      --user-profile-name user-profile-name \
      --region region \
      --user-settings '{
      "JupyterServerAppSettings": {
        "LifecycleConfigArns":
          ["lifecycle-configuration-arn"]
        }
      }'
      ```

      一旦 LCC 連接到網域或使用者設定檔，受影響的使用者可以依照關閉和更新 [Amazon SageMaker Studio Classic 中的步驟關閉和更新其現有的 Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-tasks-update-studio.html) 應用程式，或從 AWS 主控台啟動新的 Studio Classic 應用程式，以自動取得 LCC 設定的預設值。建立 Autopilot 實驗時，這會自動填入 Studio Classic 使用者介面。或者，他們可以使用 啟動新的 Studio Classic 應用程式 AWS CLI ，如下所示。
    +  **使用 啟動具有生命週期組態的 Studio Classic 應用程式 AWS CLI**

      ```
      # Create a Jupyter Server application
      aws sagemaker create-app --domain-id domain-id \
      --user-profile-name user-profile-name \
      --region region \
      --app-type JupyterServer \
      --resource-spec LifecycleConfigArn=lifecycle-configuration-arn \
      --app-name default
      ```

      如需有關使用 AWS CLI建立生命週期組態的詳細資訊，請參閱[從 AWS CLI建立生命週期組態](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc-create-cli.html)。

------

**使用 Studio Classic 使用者介面建立 Autopilot 實驗**

1. 登入 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)，從左側導覽窗格選擇 **Studio**，選取您的網域和使用者設定檔，然後選擇**開啟 Studio**。

1. 在 Studio 中，選擇左上角導覽窗格中的 Studio Classic 圖示。這會開啟 Studio Classic 應用程式。

1. 從您選擇的空間執行或開啟 Studio Classic 應用程式，或**建立 Studio Classic 空間**。在**首頁**索引標籤，選取 **AutoML**。這會開啟新的 **AutoML** 索引標籤。

1. 選取**建立 AutoML 實驗**。這會開啟新的**建立實驗**索引標籤。

1. 在 **實驗和資料詳細資訊** 區段，輸入下列資訊：

   1. **實驗名稱** – 必須是目前帳戶中唯一的 AWS 區域 ，且最多包含 63 個英數字元。可以包含連字號 (-)，但不能包含空格。

   1. **輸入資料** – 提供輸入資料的 Amazon Simple Storage Service (Amazon S3) 儲存貯體位置。此 S3 儲存貯體必須位於您目前的 AWS 區域。URL 必須是 Amazon SageMaker AI 具有寫入許可的 `s3://` 格式。檔案必須採用 CSV 或 Parquet 格式，且至少包含 500 列。選取**瀏覽**以捲動可用的路徑，選取**預覽**以查看輸入資料的範例。

   1. **您的 S3 輸入是清單檔案嗎？** –資訊清單檔案包含輸入資料的中繼資料。中繼資料指定資料在 Amazon S3 中的位置。它還指定資料的格式以及訓練模型時要使用資料集中的哪些屬性。當您的標籤資料在 `Pipe` 模式進行串流傳輸時，您可以使用清單檔案作為預處理的替代方法。

   1. **自動拆分資料？** –Autopilot 可以將您的資料分為 80-20%，用於訓練和驗證資料。如果您偏好自訂分割，您可以選擇**指定分割比例**。若要使用自訂資料集進行驗證，請選擇**提供驗證集**。

   1. **輸出資料位置 (S3 儲存貯體)**–您要存放輸出資料的 S3 儲存貯體位置的名稱。此儲存貯體的 URL 必須是 Amazon S3 格式，其中 Amazon SageMaker AI 具有寫入許可。S3 儲存貯體必須位於目前 AWS 區域。Autopilot 也可以在與輸入資料相同的位置為您建立此資料。

1. 選擇**下一步：目標和特徵**。**目標和特徵**索引標籤隨即開啟。

1. 在**目標和特徵**區段：
   + 選取要設定為模型預測目標的欄位。
   + 或者，您可以在**樣本權重**區段傳遞範例權重欄位的名稱，以要求在訓練和評估期間對您的資料集行進行加權。如需可用目標指標的詳細資訊，請參閱[Autopilot 加權指標](autopilot-metrics-validation.md#autopilot-weighted-metrics)。
**注意**  
僅在[整合模式](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html#autopilot-training-mode)下支援樣本權重。
   + 您還可以選取要進行訓練的特徵並變更其資料類型。可用的資料類型如下：`Text`、`Numerical`、`Categorical`、`Datetime`、`Sequence` 與 `Auto`。根據預設，會選取所有特徵。

1. 選擇**下一步：訓練方法**。**訓練方法**索引標籤隨即開啟。

1. 在**訓練方法**區段，選取您的訓練選項：**整合**、**超參數最佳化(HPO)** 或**自動**，讓 Autopilot 依據資料集大小自動選擇訓練方法。每種訓練模式都會在您的資料集執行一組預先定義的演算法來訓練候選模型。根據預設，Autopilot 會預先選取指定訓練模式的所有可用演算法。您可以使用所有演算法執行 Autopilot 訓練實驗，也可以選擇自己的子集。

   有關訓練模式和可用演算法的詳細資訊，請參閱[訓練模式和演算法](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html)頁面中的 **Autopilot 訓練模式**區段。

1. 選擇**下一步：部署和進階設定**以開啟**部署和進階設定**索引標籤。設定包括自動顯示端點名稱、機器學習問題類型，以及執行實驗的其他選項。

   1. **部署設定**–Autopilot可以自動建立端點並為您部署模型。

      若要自動部署到自動產生的端點，或為自訂部署提供端點名稱，請將**自動部署？**的切換設定為**是**。如果您從 Amazon SageMaker Data Wrangler 匯入資料，您可以使用其他選項來自動部署最佳模型，無論是否經過 Data Wrangler 的轉換。
**注意**  
如果您的 Data Wrangler 流程包含多列作業 (例如 `groupby`、`join` 或 `concatenate`)，則無法使用這些轉換進行自動部署。有關詳情，請參閱[在資料流程自動訓練模型](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler-autopilot.html)。

   1. **進階設定 (選用)** – Autopilot 提供額外的控制項以手動設定實驗參數，例如定義問題類型、Autopilot 任務與試驗的時間限制、安全性和加密設定。
**注意**  
Autopilot 支援設定預設值，以簡化使用 Studio Classic 使用者介面的 Autopilot 實驗的組態。系統管理員可以使用 Studio Classic [生命週期組態](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html) (LCC) 在組態檔中設定基礎結構、網路與安全性值，並預先填入 `AutoML` 任務的*進階設定*。  
若要了解管理員如何自動自訂 Autopilot 實驗，請參閱[設定 Autopilot 實驗的預設參數 (適用於管理員)](autopilot-set-default-parameters-create-experiment.md)。

      1. **機器學習問題類型** – Autopilot 可以從您的資料集自動推論監督式學習問題的類型。如果您想要手動選擇，您可以透過**選取機器學習問題類型**下拉式功能表。請注意，預設為**自動**。在某些情況下，SageMaker AI 無法準確推論。發生這種情況時，您必須為任務的成功提供價值。特別是，您可以從以下類型進行選擇：
         + **二進位分類**–二進位分類會根據其屬性 (例如根據診斷測試結果判斷某人患有疾病的診斷測試結果)，將輸入資料分配給兩個預先定義且互斥的類別之一。
         + **迴歸** – 迴歸建立輸入變數 (也稱為自變數或特徵) 與目標變數 (也稱為從屬變數) 之間的關係。此關係透過將輸入變數對應至連續輸出的數學函式或模型擷取。它通常用於根據平方英尺及浴室數量、股市趨勢等特徵預測房價或估計銷售數據等任務。
         + **多類別分類** – 多類別分類會根據其屬性將輸入資料指派給其中一個類別，例如與文字文件最相關的主題 (例如政治、金融或哲學) 的預測。

      1. **執行期**–您可以定義最大時間限制。達到時間限制時，超過時間限制的試驗及任務會自動停止。

      1. **存取** – 您可以選擇 Amazon SageMaker Studio Classic 擔任的角色，以代您暫時存取 AWS 服務 （特別是 SageMaker AI 和 Amazon S3)。如果沒有明確定義角色，Studio Classic 會自動使用附加至您的使用者設定檔的預設 SageMaker AI 執行角色。

      1. **加密** – 若要增強靜態資料的安全性並防止未經授權的存取，您可以指定加密金鑰來加密 Amazon S3 儲存貯體以及附加到 Studio Classic 網域的 Amazon Elastic Block Store (Amazon EBS) 磁碟區的資料。

      1. **安全性** – 您可以選擇執行 SageMaker AI 任務的虛擬私有雲 (Amazon VPC)。確保 Amazon VPC 有權存取您的輸入與輸出 Amazon S3 儲存貯體。

      1. **專案**–指定要與此 Autopilot 實驗與模型輸出相關聯的 SageMaker AI 專案名稱。當您指定專案時，Autopilot 會將專案標記為實驗。這可讓您知道哪些模型輸出與此專案相關聯。

      1. **標籤**–標籤是鍵值對的陣列。使用標籤來分類資源 AWS 服務，例如其用途、擁有者或環境。

   1. 選取**下一步：檢視並建立**以在建立 Autopilot 實驗之前取得其摘要。

1. 選取**建立實驗**。建立實驗會在 SageMaker AI 中啟動 Autopilot 工作。Autopilot 提供實驗的狀態、筆記本中資料探索程序和候選模型的資訊、產生模型及其報告的清單，以及用於建立模型的工作設定檔。

   如需 Autopilot 任務所產生之筆記本的相關資訊，請參閱[為管理 AutoML 任務而產生的 Autopilot 筆記本](autopilot-automate-model-development-notebook-output.md)。有關每個候選模型及其報告的詳細資訊，請參閱[檢視模型詳細資訊](autopilot-models-details.md)和[檢視 Autopilot 模型效能報告](autopilot-model-insights.md)。

**注意**  
若要避免產生不必要的費用：如果您部署不再需要的模型，請刪除在該部署期間建立的端點和資源。如需按區域定價執行個體的相關資訊，請參閱 [Amazon SageMaker 定價](https://aws.amazon.com/sagemaker/pricing/)。

# Amazon SageMaker Autopilot 範例筆記本
<a name="autopilot-example-notebooks"></a>

下列筆記本提供可處理 Autopilot 各種使用案例的實用實作範例。

您可以在 SageMaker AI GitHub 範例儲存庫的 [https://github.com/aws/amazon-sagemaker-examples/tree/main/autopilot](https://github.com/aws/amazon-sagemaker-examples/tree/main/autopilot) 目錄中找到 Autopilot 的所有筆記本。

我們建議您在 Studio Classic 內複製完整 Git 儲存庫，以直接存取並執行筆記本。如需如何在 Studio Classic 中複製 Git 儲存庫的資訊，請參閱[複製 Amazon SageMaker Studio Classic 中的 Git 儲存庫](studio-tasks-git.md)。


| **使用案例** | **Description** | 
| --- | --- | 
| [無伺服器推論](https://github.com/aws/amazon-sagemaker-examples/tree/main/autopilot/autopilot-serverless-inference) |  根據預設，Autopilot 可讓您將產生的模型部署到即時推論端點。在這個儲存庫中，筆記本會說明如何將使用 `ENSEMBLING` 和 `HYPERPARAMETER OPTIMIZATION (HPO)` 模式訓練的 Autopilot 模型部署到無伺服器端點。無伺服器端點會自動啟動運算資源，並根據流量進行縮減與擴增，無需選擇執行個體類型或管理擴展政策。  | 
|  [自訂功能選擇](https://github.com/aws/amazon-sagemaker-examples/tree/main/autopilot/custom-feature-selection)  |  Autopilot 會檢查您的資料集並執行多個候選項目，以找出資料預先處理步驟、機器學習演算法和超參數的最佳組合。您可以輕鬆部署在即時端點上或進行批次處理。 在某些情況下，您可能希望將自訂資料處理程式碼提供給 Autopilot 時具有彈性。例如，您的資料集可能包含大量獨立變數，您可能希望合併自訂功能選擇步驟，先移除不相關的變數。然後，可以使用產生的較小型資料集啟動一個 Autopilot 任務。最後，您還希望同時包含 Autopilot 的自訂處理程式碼和模型，進行即時或批次處理。  | 
|  [Pipeline 範例](https://github.com/aws/amazon-sagemaker-examples/tree/main/autopilot/sagemaker-autopilot-pipelines)  |  雖然 Autopilot 精簡機器學習 (ML) 模型建置程序，但 MLOps 工程師仍然需要負責在生產中建立、自動化和管理端對端機器學習工作流程。SageMaker Pipelines 可協助自動化機器學習 (ML) 生命週期的各個步驟，例如資料預先處理、模型訓練、超參數調校、模型評估和部署。這個筆記本示範如何將 Autopilot 合併到 SageMaker Pipelines 端對端 AutoML 訓練工作流程。若要在 Pipelines 內啟動 Autopilot 實驗，您必須使用 Pipelines [Lambda](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-lambda) 或 [Processing](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-processing) 步驟寫入自訂整合程式碼，才能建立模型建置工作流程。如需詳細資訊，請參閱[使用 Amazon SageMaker Pipelines 將 Amazon SageMaker Autopilot ML 模型從實驗遷移至生產](https://aws.amazon.com/blogs/machine-learning/move-amazon-sagemaker-autopilot-ml-models-from-experimentation-to-production-using-amazon-sagemaker-pipelines/)。 或者，在[集成模式](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-model-support-validation.html)下使用 Autopilot 時，您可以參考筆記本範例，這個筆記本範例會示範如何使用 [SageMaker 管道原生 AutoML 步驟](https://github.com/aws/amazon-sagemaker-examples/blob/main/autopilot/sagemaker-autopilot-pipelines/autopilot_pipelines_demo_notebook.ipynb)中的原生 AutoML 步驟。使用 Pipelines 內做為原生步驟支援的 Autopilot，您就可以立即將自動化訓練步驟 ([AutoMLStep](https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-steps.html#step-type-automl)) 新增至 Pipelines，並在集成模式下調用 Autopilot 實驗。  | 
| [使用 Amazon SageMaker Autopilot 進行直接行銷](https://sagemaker-examples.readthedocs.io/en/latest/autopilot/sagemaker_autopilot_direct_marketing.html) |  此筆記本示範如何使用[銀行行銷資料集](https://archive.ics.uci.edu/ml/datasets/bank+marketing)，預測客戶是否會加入銀行的定期存款。您可以在此資料集上使用 Autopilot，探索各種管道候選項目所包含的選項以取得最準確的機器學習 (ML) 管道。Autopilot 會在雙步驟的程序中產生每個候選項目。第一個步驟會在資料集上執行自動化功能工程設計。第二個步驟會訓練並調校演算法以產生模型。此筆記本包含說明如何訓練模型以及如何部署模型，以使用最佳候選項目執行批次推論的相關指示。  | 
| [使用 Amazon SageMaker Autopilot 進行客戶流失預測](https://sagemaker-examples.readthedocs.io/en/latest/autopilot/autopilot_customer_churn.html) |  此筆記本描述使用機器學習 (ML) 來自動識別不滿意的客戶，此功能也稱為客戶流失預測。此範例說明如何分析可公開取得的資料集，以及在該資料集上執行功能工程設計。接著，它說明如何選取最佳效能的管道以及訓練演算法的最佳超參數來調校模型。最後，它說明如何將模型部署到託管端點，並根據基本事實如何評估其預測。但是，機器學習 (ML) 模型很少給出完美的預測。這就是這個筆記本也在說明如何在確定使用機器學習 (ML) 的財務結果時，合併預測錯誤之相對成本的原因。  | 
| [使用 Amazon SageMaker Autopilot 和批次轉換進行最佳候選客戶流失預測 (Python SDK)](https://sagemaker-examples.readthedocs.io/en/latest/autopilot/autopilot_customer_churn_high_level_with_evaluation.html) |  此筆記本也描述使用機器學習來自動識別不滿意的客戶，此功能也稱為客戶流失預測。這個筆記本示範如何設定模型以取得推論機率、選取前 N 個模型，以及在保留測試集上進行批次轉換以進行評估。  這個筆記本使用 2020 年 6 月 19 日發行的 SageMaker Python SDK >= 1.65.1。   | 
| [將您自己的資料處理程式碼帶入 Amazon SageMaker Autopilot](https://sagemaker-examples.readthedocs.io/en/latest/autopilot/custom-feature-selection/Feature_selection_autopilot.html) |  這個筆記本示範如何在使用 Amazon SageMaker Autopilot 時合併和部署自訂資料處理程式碼。它新增一個自訂功能選擇步驟，以移除與 Autopilot 任務不相關的變數。然後，它會示範如何在即時端點上部署 Autopilot 所產生的自訂處理程式碼和模型，或者，進行批次處理。  | 
| 更多筆記本 | 您可以在根目錄中找到更多說明其他使用案例的筆記本，例如[批次轉換](https://github.com/aws/amazon-sagemaker-examples/blob/main/autopilot/ap-batch-transform.ipynb)、[時間序列預測](https://github.com/aws/amazon-sagemaker-examples/blob/main/autopilot/autopilot_time_series.ipynb)等。 | 

# 影片：使用 Autopilot 自動化並探索機器學習程序
<a name="autopilot-videos"></a>

這裡是一系列的影片，其中提供了使用 Studio Classic 的 Amazon SageMaker Autopilot 功能的導覽。它們展示了如何啟動 AutoML 任務、分析和預先處理資料、如何在候選模型上執行特徵工程和超參數最佳化，以及如何將產生的模型指標視覺化和進行比較。

**Topics**
+ [使用 Amazon SageMaker Autopilot 啟動 AutoML 任務](#autopilot-video-start-automl-job)
+ [檢閱在 Autopilot 中自動化的資料探索和特徵工程。](#autopilot-video-generated-notebooks)
+ [調校模型以最佳化效能](#autopilot-video-optimizing-model-performance)
+ [選擇並部署最佳模型](#autopilot-video-choose-and-deploy-the-best-model)
+ [Amazon SageMaker Autopilot 教學課程](#autopilot-walkthrough)

## 使用 Amazon SageMaker Autopilot 啟動 AutoML 任務
<a name="autopilot-video-start-automl-job"></a>

此影片向您示範如何使用 Autopilot 啟動 AutoML 任務。(長度：8:41)

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/qMEtqJPhqpA/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/qMEtqJPhqpA)


## 檢閱在 Autopilot 中自動化的資料探索和特徵工程。
<a name="autopilot-video-generated-notebooks"></a>

此影片向您展示如何檢閱 Amazon SageMaker Autopilot 產生的資料探索和候選定義筆記本。(長度：10:04)

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/WsfRAeGzgm8/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/WsfRAeGzgm8)


## 調校模型以最佳化效能
<a name="autopilot-video-optimizing-model-performance"></a>

此影片向您展示如何在訓練期間使用超參數調校來最佳化模型效能。(長度：4:59)

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/KZSTsWrDGXs/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/KZSTsWrDGXs)


## 選擇並部署最佳模型
<a name="autopilot-video-choose-and-deploy-the-best-model"></a>

此影片向您示範如何使用任務指標來選擇最佳模型，然後如何進行部署。(長度：5:20)

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/vRHyX3kDstI/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/vRHyX3kDstI)


## Amazon SageMaker Autopilot 教學課程
<a name="autopilot-walkthrough"></a>

此影片會引導您完成端對端示範，其中我們會先使用 Amazon SageMaker Autopilot 自動建立二進位分類模型。我們看看如何使用自動產生的筆記本來建立和最佳化候選模型。我們還看看 Amazon SageMaker Experiments 的熱門候選項目。最後，我們部署熱門候選項目 (以 XGBoost 為基礎)，並使用 SageMaker Model Monitor 設定資料擷取。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/DRjOOaR2prQ/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/DRjOOaR2prQ)


# Autopilot 配額
<a name="autopilot-quotas"></a>

使用 Amazon SageMaker Autopilot 時，有一些配額會限制您可用的資源。其中一些限制是可增加的，有些則不可增加。

**注意**  
以下各節中所記錄的資源配額適用於 Amazon SageMaker Studio Classic 3.22.2 版及更高版本。有關更新您的 SageMaker Studio Classic 版本的資訊，請參閱 [關閉並更新 Amazon SageMaker Studio Classic 和應用程式](studio-tasks-update.md)。

**Topics**
+ [您可以提高的配額](#autopilot-quotas-limits-increasable)
+ [資源配額](#autopilot-quotas-resource-limits)

## 您可以提高的配額
<a name="autopilot-quotas-limits-increasable"></a>

下表包含您可以增加的配額資源限制：


| 資源 | 區域 | 預設限制 | 最多可提高至 | 
| --- | --- | --- | --- | 
| 輸入資料集的大小 | 全部 | 100 GB | 數百個 GB | 
| 單一 Parquet 檔案的大小\$1 | 全部 | 2 GB | N/A | 
| 次取樣的目標資料集大小\$1\$1 | 全部 | 5 GB | 數百個 GB | 
| Autopilot 並行任務的數量 | us-east-1、us-east-2、us-west-2、ap-northeast-1、eu-west-1、eu-central-1 | 4 | 數百 | 
| Autopilot 並行任務的數量 | ap-northeast-2、ap-southeast-2、eu-west-2、ap-southeast-1 | 2 | 數百 | 
| Autopilot 並行任務的數量 | 所有其他區域 | 1 | 數十 | 

**注意**  
\$1這個 2 GB 的大小限制適用於單一已壓縮的 Parquet 檔案。您可以提供 Parquet 資料集，其中包含多個壓縮的 Parquet 檔案，其大小最大可達輸入資料集的大小上限。在解壓縮檔案後，這些檔案可能會擴展到更大的大小。  
\$1\$1Autopilot 會對大於目標資料集大小的輸入資料集進行自動次取樣，同時負責類別不平衡，並保留罕見的類別標籤。

**請求提高配額：**

1. 開啟 [ Service Quotas 主控台](https://console.aws.amazon.com/servicequotas/home/services/sagemaker/quotas)。

1. 選取您的配額增加量，然後選擇**在帳戶層級請求增加**。

1. 在**增加配額值**中，輸入您要請求的新限制值。

1. 選擇**請求**。

## 資源配額
<a name="autopilot-quotas-resource-limits"></a>

下表包含 AWS 區域 中 Amazon SageMaker Autopilot 任務的執行期資源限制。


| 資源 | 每個 Autopilot 任務的限制 | 
| --- | --- | 
| 一個 Autopilot 任務的執行期上限 | 30 天 | 

# Autopilot 的 API 參考指南
<a name="autopilot-reference"></a>

本節提供用於以程式設計方式建立和管理 Amazon SageMaker Autopilot 資源 (AutoML 任務) 的 HTTP 服務 REST API 子集。

如果您選擇的語言是 Python，您可以直接參考 [適用於 Python (Boto3) 的 AWS SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html) 或 Amazon SageMaker Python SDK 的 [AutoMLV2 物件](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2)。

## AutoML API 動作
<a name="autopilot-api-actions"></a>

此清單詳細說明參考 API 中可用的操作，以便以程式設計的方式管理 AutoML 任務。
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListAutoMLJobs.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListAutoMLJobs.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidatesForAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListCandidatesForAutoMLJob.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopAutoMLJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopAutoMLJob.html)

**注意**  
[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) 和 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) 是 [CreateAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html) 和 [DescribeAutoMLJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJob.html) 的新版本，且向後相容。  
我們建議使用 `CreateAutoMLJobV2`。`CreateAutoMLJobV2` 可以管理與舊版 `CreateAutoMLJob` 相同的表格式問題類型，以及非表格式問題類型，例如影像或文字分類，或時間序列預測。  
在[將 CreateAutoMLJob 遷移至 CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development-create-experiment.html#autopilot-create-experiment-api-migrate-v1-v2) 中查看如何將 `CreateAutoMLJob` 遷移至 `CreateAutoMLJobV2` 的指南。

## AutoML API 資料類型
<a name="autopilot-api-data-types"></a>

此清單詳細說明上述動作用來作為傳入請求或傳出回應的 API AutoML 物件。
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateGenerationConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateStep.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidateStep.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLChannel.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLContainerDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLContainerDefinition.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSource.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSource.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLInferenceContainerDefinitions.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLInferenceContainerDefinitions.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobArtifacts.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobArtifacts.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobCompletionCriteria.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobCompletionCriteria.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobInputDataConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobInputDataConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobStepMetadata.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobStepMetadata.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobSummary.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobSummary.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLProblemTypeConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLProblemTypeConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobCompletionCriteria.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobCompletionCriteria.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobSummary.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobSummary.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLPartialFailureReason.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLPartialFailureReason.html) 
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLProblemTypeConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLProblemTypeConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLProblemTypeResolvedAttributes.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLProblemTypeResolvedAttributes.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLResolvedAttributes.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLResolvedAttributes.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLSecurityConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLSecurityConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLS3DataSource.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLS3DataSource.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html) 
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateProperties.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateProperties.html) 
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_FinalAutoMLJobObjectiveMetric.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_FinalAutoMLJobObjectiveMetric.html) 
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HolidayConfigAttributes.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HolidayConfigAttributes.html) 
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ImageClassificationJobConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ImageClassificationJobConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDatum.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MetricDatum.html) 
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html) 
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployResult.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployResult.html) 
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResolvedAttributes.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResolvedAttributes.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularJobConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularResolvedAttributes.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TabularResolvedAttributes.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationResolvedAttribute.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationResolvedAttribute.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesTransformations.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesTransformations.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TuningJobCompletionCriteria.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TuningJobCompletionCriteria.html)