

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

# 在 上建立生產就緒的 ML 管道 AWS
<a name="welcome"></a>

*Josiah Davis、Verdi March、Yin Song、Baichuan Sun、Chen Wu 和 Wei Yih Yap、Amazon Web Services (AWS)*

*2021 年 1 月* ([文件歷史記錄](doc-history.md))

 機器學習 (ML) 專案需要大量的多階段工作，包括建模、實作和生產，以提供商業價值並解決實際問題。每個步驟都提供許多替代方案和自訂選項，這些選項使得在資源和預算的限制範圍內準備生產 ML 模型變得越來越具有挑戰性。在過去幾年，在 Amazon Web Services (AWS)，我們的資料科學團隊已在 ML 計畫上與不同的產業部門合作。我們識別了許多 AWS 客戶共用的困擾點，這源自於組織問題和技術挑戰，並且我們開發了交付生產就緒 ML 解決方案的最佳方法。

本指南適用於參與 ML 管道實作的資料科學家和 ML 工程師。它描述了我們交付生產就緒 ML 管道的方法。本指南討論如何從以互動方式 （在開發期間） 執行 ML 模型轉換到將它們部署為 ML 使用案例管道 （在生產期間） 的一部分。為此，我們也開發了一組範例範本 （請參閱 [ML Max 專案](https://github.com/awslabs/mlmax))，以加速將自訂 ML 解決方案交付至生產環境，因此您可以快速開始，而無需進行太多設計選擇。

## 概觀
<a name="overview"></a>

 建立生產就緒 ML 管道的程序包含下列步驟：
+ **[步驟 1](step1.md)。執行 EDA 並開發初始模型** – 資料科學家在 Amazon Simple Storage Service (Amazon S3) 中提供原始資料、執行探索性資料分析 (EDA)、開發初始 ML 模型，以及評估其推論效能。您可以透過 Jupyter 筆記本以互動方式執行這些活動。
+ **[步驟 2](step2.md). 建立執行階段指令碼** – 您可以將模型與執行階段 Python 指令碼整合，以便由 ML 架構 （在我們的案例中為 Amazon SageMaker AI) 管理和佈建。這是從獨立模型的互動開發轉向生產的第一步。具體而言，您可以分別定義預先處理、評估、訓練和推論的邏輯。
+ **[步驟 3](step3.md)：定義管道** – 您可以為管道的每個步驟定義輸入和輸出預留位置。這些的具體值將在稍後的執行時間提供 （步驟 5)。您專注於訓練、推論、交叉驗證和回溯測試的管道。
+ **[步驟 4](step4.md). 建立管道** – 您可以使用 建立基礎基礎設施，包括自動化 （幾乎一鍵式） 方式 AWS Step Functions 的狀態機器執行個體 AWS CloudFormation。
+ **[步驟 5](step5.md). 執行管道** – 執行步驟 4 中定義的管道。您也可以準備中繼資料和資料或資料位置，為您在步驟 3 中定義的輸入/輸出預留位置填入具體值。這包括步驟 2 中定義的執行階段指令碼，以及模型超參數。
+ **[步驟 6](step6.md). 擴展管道 ** – 您可以實作持續整合和持續部署 (CI/CD) 程序、自動化重新訓練、排程推論，以及管道的類似延伸。

下圖說明此程序的主要步驟。

![建立生產就緒 ML 管道的程序](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/ml-production-ready-pipelines/images/pipeline-steps.png)
