步驟 6. 展開管道 - AWS 方案指引

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

步驟 6. 展開管道

本指南說明如何使用具體架構,在 上 AWS 快速開始建置 ML 管道。使管道成熟還有其他考量,例如中繼資料管理、實驗追蹤和監控。這些是本指南範圍以外的重要主題。以下各節討論管道管理的另一個層面,即管道自動化。

不同層級的自動化

雖然您可以在 SageMaker AI 主控台中手動設定訓練管道,但實際上,我們建議將 ML 訓練管道部署中的手動接觸點降至最低,以確保持續且重複地部署 ML 模型。根據您的需求和要解決的業務問題,您可以判斷和實作三個層級的部署策略:半自動化、全自動化和全受管。

  • 半自動化 – 根據預設,上一節討論的步驟遵循半自動化方法,因為它們使用 AWS CloudFormation 範本部署訓練和推論管道。這有助於確保管道的重現性,並協助您輕鬆變更和更新管道。

  • 完全自動化 – 更進階的選項是將持續整合和持續部署 (CI/CD) 用於開發、預備和生產環境。將 CI/CD 實務納入訓練管道的部署,可確保自動化包含可追蹤性和品質閘道。

  • 完全受管 – 最終,您可以開發完全受管的系統,以便您可以使用一組簡單的資訊清單部署 ML 訓練管道,並且系統可以自行設定和協調所需的 AWS 服務。

在本指南中,我們選擇呈現具體的架構。不過,您可以考慮使用其他技術。接下來的兩個部分討論平台和協調引擎的一些替代選擇。

適用於 ML 工作負載的不同平台

Amazon SageMaker AI 是用於訓練和服務 ML 模型的 AWS 受管服務。許多使用者都很喜歡其廣泛的內建功能,以及其為執行 ML 工作負載提供的許多選項。如果您剛開始在雲端實作 ML,SageMaker AI 特別有用。SageMaker AI 的主要功能包括:

  • 內建可追蹤性 (包括標籤、訓練、模型追蹤、最佳化和推論)。

  • 內建一鍵式選項,可用於以最少的 Python 和 ML 體驗進行訓練和推論。

  • 進階超參數調校。

  • 支援所有主要人工智慧和機器學習 (ML/AI) 架構和自訂 Docker 容器。

  • 內建監控功能。

  • 歷史記錄的內建追蹤,包括訓練任務、處理任務、批次轉換任務、模型、端點和可搜尋性。有些歷史記錄,例如訓練、處理和批次轉換,是不可變且僅附加的。

使用 SageMaker AI 的替代方案之一是 AWS Batch。 可針對您環境的運算和協調 AWS Batch 提供較低層級的控制,但它並非為機器學習而自訂建置。其一些主要功能包括:

  • Out-of-the-box工作負載立即可用的運算資源自動擴展。

  • Out-of-the-box支援任務優先順序、重試和任務相依性。

  • 佇列型方法,支援建置遞迴和隨需任務。

  • 支援 CPU 和 GPU 工作負載。使用 GPU 建置 ML 模型的能力至關重要,因為 GPU 可以大幅加快訓練程序,尤其是深度學習模型。

  • 能夠定義運算環境的自訂 Amazon Machine Image (AMI)。

適用於管道協調的不同引擎

第二個主要元件是管道協同運作層。 AWS 提供 Step Functions 以獲得完全受管的協同運作體驗。Step Functions 的熱門替代方案是 Apache Airflow。在兩者之間進行決策時,請考慮下列事項:

  • 必要的基礎設施 – AWS Step Functions 是全受管服務,而且是無伺服器服務,而 Airflow 需要管理您自己的基礎設施,並以開放原始碼軟體為基礎。因此,Step Functions 提供立即可用的高可用性,而管理 Apache Airflow 需要額外的步驟。

  • 排程功能 – Step Functions 和 Airflow 都提供類似的功能。

  • 視覺化功能和 UI – Step Functions 和 Airflow 都提供類似的功能。

  • 在運算圖表中傳遞變數 – Step Functions 提供有限的 AWS Lambda 函數使用功能,而 Airflow 則提供 XCom 介面。

  • 用量 – Step Functions 廣受 AWS 客戶歡迎,而 Airflow 已被資料工程社群廣泛採用。