

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

# 使用第三方 Git 儲存庫演練 SageMaker MLOps AI 專案
<a name="sagemaker-projects-walkthrough-3rdgit"></a>

**重要**  
自 2023 年 11 月 30 日起，先前的 Amazon SageMaker Studio 體驗現在命名為 Amazon SageMaker Studio Classic。下節專門介紹如何使用 Studio Classic 應用程式。如需使用已更新 Studio 體驗的資訊，請參閱 [Amazon SageMaker Studio](studio-updated.md)。  
Studio Classic 仍會針對現有工作負載進行維護，但無法再用於加入。您只能停止或刪除現有的 Studio Classic 應用程式，而且無法建立新的應用程式。建議您[將工作負載遷移至新的 Studio 體驗](studio-updated-migrate.md)。

本演練使用範本 [使用 CodePipeline 搭配第三方 Git 儲存庫進行模型建置、訓練和部署的 MLOps 範本](sagemaker-projects-templates-sm.md#sagemaker-projects-templates-git-code-pipeline) 來示範如何使用 MLOps 專案建立 CI/CD 系統以建置、訓練和部署模型。

**先決條件**

若要完成本演練，您需要：
+ 用於登入 Studio Classic 的 IAM 或 IAM Identity Center 帳戶。如需相關資訊，請參閱[Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)。
+ 使用 SageMaker AI 提供的專案範本的許可。如需相關資訊，請參閱[授予使用專案所需的 SageMaker Studio 許可](sagemaker-projects-studio-updates.md)。
+ 對 Studio Classic 使用者介面的基本熟悉程度。如需相關資訊，請參閱[Amazon SageMaker Studio Classic UI 概觀](studio-ui.md)。
+ 兩個空的 GitHub 儲存庫。您將這些儲存庫輸入到專案範本中，該範本將使用模型建置和部署程式碼來植入這些儲存庫。

**Topics**
+ [步驟 1：設定 GitHub 連線](#sagemaker-proejcts-walkthrough-connect-3rdgit)
+ [步驟 2：建立專案](#sagemaker-proejcts-walkthrough-create-3rdgit)
+ [步驟 3：在程式碼中進行變更](#sagemaker-projects-walkthrough-change-3rdgit)
+ [步驟 4：核准模型](#sagemaker-proejcts-walkthrough-approve-3rdgit)
+ [(選擇性) 步驟 5：將模型版本部署至生產](#sagemaker-projects-walkthrough-prod-3rdgit)
+ [步驟 6：清除資源](#sagemaker-projectcts-walkthrough-cleanup-3rdgit)

## 步驟 1：設定 GitHub 連線
<a name="sagemaker-proejcts-walkthrough-connect-3rdgit"></a>

在此步驟中，您可以使用[AWS CodeConnections 連線](https://docs.aws.amazon.com/dtconsole/latest/userguide/welcome-connections.html)至 GitHub 儲存庫。SageMaker AI 專案會使用此連線來存取您的原始程式碼儲存庫。

**若要設定 GitHub 連線：**

1. 前往 [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) 登入 CodePipeline 主控台

1. 在導覽窗格中，於**設定**下選擇**連線**。

1. 選擇**建立連線**。

1. 在**選取供應商**，選取 **GitHub**。

1. 在**連線名稱**中輸入名稱。

1. 選擇**連線到 GitHub**。

1. 如果先前未安裝 AWS Connector GitHub 應用程式，請選擇**安裝新應用程式**。

   這會顯示您有權存取的所有 GitHub 個人帳戶和組織的清單。

1. 選擇您要在其中建立連線與 SageMaker 專案和 GitHub 儲存庫搭配使用的帳戶。

1. 選擇**設定**。

1. 您可以選擇性地選取特定儲存庫或選擇**所有儲存庫**。

1. 選擇**儲存**。安裝應用程式後，系統會將您重新導向至**連線至 GitHub** 頁面，並自動填入安裝 ID。

1. 選擇**連線**。

1. 將金鑰為 `sagemaker` 和值為 `true` 的標籤新增至此 CodeConnections 連線。

1. 複製連線 ARN 以儲存供稍後使用。您可以在專案建立步驟中使用 ARN 做為參數。

## 步驟 2：建立專案
<a name="sagemaker-proejcts-walkthrough-create-3rdgit"></a>

在此步驟中，您可以使用 SageMaker AI 提供的專案範本來建置、訓練和部署模型，以建立 SageMaker AI MLOps 專案。

**建立 SageMaker AI MLOps 專案**

1. 登入 Studio。如需詳細資訊，請參閱[Amazon SageMaker AI 網域概觀](gs-studio-onboard.md)。

1. 在 Studio 側邊欄中，選擇**首頁**圖示 (![](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 從功能表中選取**部署**，然後選取**專案**。

1. 選擇**建立專案**。

   會顯示**建立專案**索引標籤。

1. 對於 **SageMaker AI 專案範本**，請選擇**使用 CodePipeline 搭配第三方 Git 儲存庫進行模型建置、訓練和部署**。

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

1. 在**模型建置程式碼儲存庫資訊**下，提供下列參數：
   + 在**分支**中，輸入從 Git 儲存庫要用於管道活動的分支。
   + 在**完整儲存庫名稱**中，以{{使用者名稱/儲存庫名稱}}或{{組織/儲存庫名稱}}的格式輸入 Git 儲存庫名稱。
   + 針對**程式碼連線 ARN**，輸入您在步驟 1 中建立的 CodeConnections 連線 ARN。

1. 在**模型部署程式碼儲存庫資訊**下，提供下列參數：
   + 在**分支**中，輸入從 Git 儲存庫要用於管道活動的分支。
   + 在**完整儲存庫名稱**中，以{{使用者名稱/儲存庫名稱}}或{{組織/儲存庫名稱}}的格式輸入 Git 儲存庫名稱。
   + 針對**程式碼連線 ARN**，輸入您在步驟 1 中建立的 CodeConnections 連線 ARN。

1. 選擇**建立專案**。

專案會顯示在**專案**清單中，其**狀態**為**已建立**。

## 步驟 3：在程式碼中進行變更
<a name="sagemaker-projects-walkthrough-change-3rdgit"></a>

現在對建置模型的管道程式碼進行變更，並遞交變更以啟動新的管道執行。管道執行會註冊新的模型版本。

**變更程式碼**

1. 在您的模型建置 GitHub 儲存庫中，導覽到 `pipelines/abalone` 資料夾。按兩下 `pipeline.py` 以開啟程式碼檔案。

1. 在 `pipeline.py` 檔案中，尋找設定訓練執行個體類型的行。

   ```
   training_instance_type = ParameterString(
           name="TrainingInstanceType", default_value="ml.m5.xlarge"
   ```

   開啟要編輯的檔案，變更 `ml.m5.xlarge` 為 `ml.m5.large`，然後遞交。

遞交程式碼變更之後，MLOps 系統會啟動建立新模型版本的管道執行。在下一個步驟中，您會核准新模型版本以將其部署至生產中。

## 步驟 4：核准模型
<a name="sagemaker-proejcts-walkthrough-approve-3rdgit"></a>

現在，您核准在上一個步驟中建立的新模型版本，以啟動將模型版本部署到 SageMaker AI 端點的操作。

**核准模型版本**

1. 在 Studio Classic 側邊欄中，選擇**首頁**圖示 (![](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 從功能表中選取**部署**，然後選取**專案**。

1. 尋找您在第一步中建立的專案名稱，然後按兩下以開啟您的專案的專案索引標籤。

1. 在專案索引標籤中，選擇**模型群組**，然後按兩下出現的模型群組名稱。

   模型群組索引標籤隨即出現。

1. 在模型群組索引標籤中，按兩下**版本 1**。**版本 1** 索引標籤隨即開啟。選擇**更新狀態**。

1. 在模型**更新模型版本狀態**對話方塊的**狀態**下拉式清單中，選擇**核准**，然後選擇**更新狀態**。

   核准模型版本會導致 MLOps 系統將模型部署至預備。若要檢視端點，請選擇專案索引標籤上的**端點**索引標籤。

## (選擇性) 步驟 5：將模型版本部署至生產
<a name="sagemaker-projects-walkthrough-prod-3rdgit"></a>

現在，您可以將模型版本部署到生產環境。

**注意**  
若要完成此步驟，您必須是 Studio Classic 網域中的管理員。如果您不是管理員，請略過此步驟。

**將模型版本部署到生產環境**

1. 前往 [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/) 登入 CodePipeline 主控台

1. 選擇**管道**，然後選擇名稱為 **sagemaker-{{projectname}}-{{projectid}}-modeldeploy** 的管道，其中 {{projectname}} 是您的專案名稱，{{projectid}} 是您的專案 ID。

1. 在 **DeployStaging** 階段中，選擇**檢閱**。

1. 在**檢閱**對話方塊中，選擇**核准**。

   核准 **DeployStaging** 階段會導致 MLOps 系統將模型部署至生產。若要檢視端點，請選擇 Studio Classic 中專案索引標籤上的**端點**索引標籤。

## 步驟 6：清除資源
<a name="sagemaker-projectcts-walkthrough-cleanup-3rdgit"></a>

若要停止產生費用，清除在此演練中已建立的資源。

**注意**  
若要刪除 CloudFormation 堆疊和 Amazon S3 儲存貯體，您需要是 Studio Classic 中的管理員。如果您不是管理員，請要求管理員完成這些步驟。

1. 在 Studio Classic 側邊欄中，選擇**首頁**圖示 (![](http://docs.aws.amazon.com/zh_tw/sagemaker/latest/dg/images/studio/icons/house.png))。

1. 從功能表中選取**部署**，然後選取**專案**。

1. 從下拉式清單中選取目標專案。如果沒有看到您的專案，請輸入專案名稱，並套用篩選器來尋找專案。

1. 選擇您的專案在主面板中查看其詳細資料。

1. 在**動作**功能表中，選擇**刪除**。

1. 從**刪除專案**視窗中，選擇**刪除**來確認您的選擇。

   這會刪除專案所建立的 Service Catalog 佈建產品。這包括為專案建立的程式 CodeCommit、CodePipeline 和 CodeBuild 資源。

1. 刪除專案建立的 CloudFormation 堆疊。有兩個堆疊，一個用於預備，一個用於生產。堆疊的名稱為 **sagemaker-{{projectname}}-{{project-id}}-deploy-staging** 和 **sagemaker-{{projectname}}-{{project-id}}-deploy-prod**，其中 {{projectname}} 是您的專案名稱，而 {{project-id}} 是您的專案 ID。

   如需有關如何刪除 CloudFormation 堆疊的資訊，請參閱*CloudFormation 《 使用者指南*》中的[刪除 CloudFormation 主控台上的堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)。

1. 刪除專案建立的 Amazon S3 儲存貯體。儲存貯體的名稱為 **sagemaker-project-{{project-id}}**，其中 {{project-id}} 是您的專案 ID。