

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

# 編譯模型 (Amazon SageMaker AI 主控台)
<a name="neo-job-compilation-console"></a>

您可以在 Amazon SageMaker AI 主控台建立 Amazon SageMaker Neo 編譯任務。

1. 在 **Amazon SageMaker AI** 主控台中，選擇**編譯任務**，然後選擇**建立編譯任務**。  
![\[建立編譯任務。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/8-create-compilation-job.png)

1. 在**建立編譯任務**頁面的**任務名稱**輸入名稱。然後選取 **IAM role (IAM 角色)**。  
![\[建立編譯任務頁面。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/9-create-compilation-job-config.png)

1. 如果您沒有 IAM 角色，請選擇 **Create a new role (建立新角色)**。  
![\[建立 IAM 角色位置。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/10a-create-iam-role.png)

1. 在 **Create an IAM role (建立 IAM 角色)** 頁面上，選擇 **Any S3 bucket (任何 S3 儲存貯體)**，然後選擇 **Create role (建立角色)**。  
![\[建立 IAM 角色頁面。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/10-create-iam-role.png)

1. 

------
#### [ Non PyTorch Frameworks ]

   在**輸入組態**區段的**模型成品位置**輸入欄位中，輸入包含您模型成品之 Amazon S3 儲存貯體 URI 的完整路徑。模型成品必須是壓縮的 tarball 檔案格式 (`.tar.gz`)。

   在**資料輸入組態**欄位中，輸入指定輸入資料形狀的 JSON 字串。

   針對**機器學習架構**，自行選擇架構。

![\[輸入組態頁面。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/neo-create-compilation-job-input-config.png)


   若要取決於架構尋找輸入資料形狀的 JSON 字串範例，請參閱 [Neo 期望的輸入資料形狀](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting.html#neo-troubleshooting-errors-preventing)。

------
#### [ PyTorch Framework ]

   類似的指示也適用於編譯 PyTorch 模型。然而，如果您使用 PyTorch 進行訓練並嘗試編譯 `ml_*` 目標的模型 (除了`ml_inf`)，則可以選擇性指定您使用的 PyTorch 版本。

![\[範例輸入組態區段，顯示在何處選擇架構版本。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/compile_console_pytorch.png)


   若要取決於架構尋找輸入資料形狀的 JSON 字串範例，請參閱 [Neo 期望的輸入資料形狀](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting.html#neo-troubleshooting-errors-preventing)。

**備註**  
如果您使用 PyTorch 2.0 版或更新版本儲存模型，則**資料輸入組態欄位**是選用的。SageMaker Neo 會從您使用 PyTorch 建立的模型定義檔案 (.pt 或 .pth) 取得輸入組態。如需如何建立定義檔案的更多相關資訊，請參閱*儲存 SageMaker AI Neo 模型*的[PyTorch](neo-compilation-preparing-model.md#how-to-save-pytorch)一節。
使用 PyTorch 架構編譯 `ml_*` 執行個體時，請使用**輸出組態**中的**編譯器選項**欄位來提供模型輸入的正確資料類型 (`dtype`)。預設設定為 `"float32"`。

![\[範例輸出組態區段。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/neo_compilation_console_pytorch_compiler_options.png)


**警告**  
 如果您指定引導至 `.pth` 檔案的 Amazon S3 儲存貯體 URI 路徑，開始編譯後您會收到下列錯誤訊息：`ClientError: InputConfiguration: Unable to untar input model.Please confirm the model is a tar.gz file`

------

1.  前往**輸出組態**區段。選擇要部署模型的位置。您可以將模型部署到**目標裝置**或**目標平台**。目標裝置包括雲端和Edge 裝置。目標平台是指您希望執行模型的特定作業系統、架構和加速器。

    針對 **S3 輸出位置**，請輸入您要用於儲存模型之 S3 儲存貯體的路徑。您可以選擇在 **編譯器選項**區段下，新增 JSON 格式的編譯器選項。  
![\[輸出組態頁面\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/neo-console-output-config.png)

1. 檢查編譯任務啟動後的狀態。這個任務狀態可以在**編譯任務**頁面的最上方找到，如下方的螢幕擷取畫面所示。您也可以在**狀態**欄檢查其狀態。  
![\[編譯任務狀態。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/12-run-model-compilation.png)

1. 檢查編譯任務完成後的狀態。您可以在**狀態**欄檢查狀態，如下方的螢幕擷取畫面所示。  
![\[編譯任務狀態。\]](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/neo/12a-completed-model-compilation.png)