Amazon MLA-C01: MLOps 與模型生命週期管理 — 學習指南

屬於 AWS Machine Learning Engineer Associate MLA-C01 — 學習指南. 使用經過驗證的解答練習: Amazon 考試中心, 或參加限時模擬考試: ExamRoll.io.

核心概念

AWS 中的模型生命週期管理,核心概念是將模型視為具備版本控管的產物 (artifact),並具備可稽核的血緣關係 (lineage)、自動化的晉升閘道 (promotion gate) 以及可重現的管線 (pipeline)。Amazon SageMaker 提供了基礎元件 (primitives):用於流程編排的 SageMaker Pipelines、用於版本控制與審核狀態管理的 SageMaker Model Registry (ModelPackage/ModelPackageGroup)、用於 CI/CD 的 SageMaker Projects 和 CodePipeline,以及用於持續品質與偏見檢查的 Model Monitor/Clarify。一個健全的生命週期始於可重現的輸入——例如,儲存在 S3 中不可變的訓練資料,並透過伺服器端 KMS 加密、嚴格的儲存桶政策或 Lake Formation 控制來保護;在原始碼儲存庫中進行版本控制的程式碼;以及在傳遞給

undefined

或 sagemaker SDK

undefined

時,以容器映像檔 URI 和執行個體類型宣告的訓練環境。

操作控制包括透過

undefined

undefined

(Subnets 和 SecurityGroupIds) 以及

undefined

來實作網路隔離以防止對外連線 (egress),以及遵循最小權限原則設定範疇的 IAM 角色 (例如

undefined

僅具備對特定儲存桶的

undefined

undefined

權限)。當訓練任務完成後,使用

undefined

或 SDK 的

undefined

呼叫,將產物註冊到 Model Registry 中,並指定一個

undefined

,同時將

undefined

設定為 “PendingManualApproval” 以驅動人工審核閘道。血緣關係元資料——例如訓練超參數、Docker 映像檔、輸入資料的 S3 URI、Git commit——都應作為模型套件的元資料附加,這樣下游的 CI/CD 和稽核作業才能從生產環境的端點追溯回原始碼和資料集。

ML 的 CI/CD 與傳統 CI/CD 不同,因為其產物(模型、基準線、監控器)體積龐大且輸出具有非確定性。使用 SageMaker Projects 範本搭配 AWS CodePipeline 和 CodeBuild 來實作 CI/CD。使用 CodeBuild 執行單元測試、模型訓練的煙霧測試(例如,使用較短的 epoch 或資料子集)以及整合測試。使用 CodePipeline 來編排 source → build → register-model 等步驟,並整合一個

undefined

動作或基於 Lambda 的自訂動作,透過

undefined

來切換

undefined

undefined

。對於自動化晉升,CodePipeline 可以呼叫 SageMaker 的

undefined

undefined

API,或使用 SageMaker Projects 產生的 CloudFormation 堆疊,以可預測的基礎設施即程式碼 (infrastructure-as-code) 方式進行部署。

主要服務與組態設定

SageMaker Pipelines 是流程編排層:在 Python 中宣告

undefined

undefined

undefined

undefined

undefined

等步驟物件。在步驟上使用

undefined

(

undefined

),這樣當輸入和參數未變時,步驟可以重用輸出;這可以避免不必要的執行個體佈建。對於

undefined

,使用

undefined

,並將

undefined

undefined

設定為 “PendingManualApproval”,以便將審核閘道整合到管線圖中。使用

undefined

API 來啟動執行,並使用

undefined

或主控台來檢視執行狀態和血緣關係。

SageMaker Model Registry 將模型套件儲存在一個

undefined

下,並指派

undefined

識別碼。相關的 API 包括

undefined

undefined

undefined

,以及用來將

undefined

更改為 “Approved” 或 “Rejected” 的

undefined

undefined

物件應包含元資料欄位,如

undefined

(Containers、SupportedContentTypes、SupportedResponseMIMETypes) 和

undefined

。部署時,使用模型套件的 ARN 呼叫

undefined

,並指定

undefined

undefined

,然後呼叫

undefined

並設定

undefined

(EnableCapture=true、SamplingPercentage、DestinationS3Uri) 以啟用推論擷取。

對於監控和偏見偵測,請使用 SageMaker Model Monitor 和 SageMaker Clarify。Model Monitor 需要一個透過

undefined

建立的基準線,此操作會呼叫

undefined

來產生基準線統計數據和約束條件;這些基準線儲存在 S3 中,並在

undefined

中被引用。監控排程是透過

undefined

建立的,並可透過

undefined

/

undefined

來啟動/停止。若要對即時端點進行臨機 (ad hoc) 的偏見檢查,請使用 Clarify 容器(透過

undefined

undefined

)執行一個 SageMaker Processing 任務,並使用擷取的推論日誌作為輸入;Clarify 支援模型偏見檢查,並將報告回傳至 S3。

為了安全地匯總異質資料來源,請使用 AWS Glue 和 Lake Formation 來探索、編目和 ETL 資料,這些資料來源可來自 S3、JDBC 來源(例如透過 AWS Glue JDBC 連接器連接的本地 MySQL,並可選擇性地使用 DataSync 進行大量移動)以及串流來源。AWS Glue 任務 (PySpark) 可以將整理好的資料集寫入一個加密的 S3 資料湖,並透過 Lake Formation 進行精細的存取控制。對於自動化異常偵測加上視覺化,可在以下託管服務之間選擇:Amazon Lookout for Metrics 執行自動化的時間序列異常偵測,而 SageMaker Data Wrangler 提供快速的視覺化探索和轉換,並可將預處理管線匯出回 SageMaker Processing 或 Pipelines。若要實現具備視覺化儀表板的持續性異常偵測,可結合使用 Lookout for Metrics 進行偵測,並搭配 Amazon QuickSight 進行視覺化和深入分析 (drill-down)。

設計模式與權衡取捨

一個常見的模式是管線優先 (pipeline-first):編寫一個 SageMaker Pipeline,其中包含資料預處理 (ProcessingStep)、訓練 (TrainingStep)、模型評估 (ProcessingStep 或 ClarifyProcessor)、註冊模型 (RegisterModel) 以及部署 (ModelStep 或手動晉升)。使用步驟快取 (step caching) 來最小化重複的運算,並加速迭代開發。為了安全地晉升模型,將 model_approval_status 設定為 “PendingManualApproval”,並整合 CodePipeline 的 ManualApproval 動作或一個用來更新模型套件 (model package) 的核准 Lambda。這種設計提供了一條從資料和程式碼到生產環境的可稽核路徑,同時也實現了有人工介入的治理 (human-in-the-loop governance)。

對於 CI/CD,可以在兩種權衡之間做選擇:基於指標閘道 (metric gates) 的全自動晉升(速度快、手動步驟少),或是手動核准工作流程(為了合規性)。透過 CodeBuild 執行一個小型的 evaluate.py 來實作基於指標的閘道控制。這個 evaluate.py 會呼叫 SageMaker Runtime 或載入模型套件,計算指標,並產出一個供 CodePipeline 用來決定通過/失敗的產物 (artifact)。如果合規性要求人工簽核,可以插入一個 AWS CodePipeline ManualApprovalAction,它會透過 SNS 觸發一封電子郵件,並要求指定的核准人才能繼續;或者,將模型登錄 (Model Registry) 的狀態作為標準的真實來源 (canonical source of truth),並且只在 ModelApprovalStatus 等於 “Approved” 時才允許部署。

減少訓練任務的啟動延遲,通常關鍵在於避免重複的完整佈建。如果許多管線執行都是在相同的輸入上重新訓練,請啟用 Pipeline CacheConfig,這樣當輸入未變時,TrainingStep 就會被跳過。對於每次執行都必須訓練但又要求低延遲的迭代,可以在 SageMaker Studio 中使用較小的執行個體類型進行快速原型設計,或是在一個持續運作的 Amazon EC2 執行個體或由 EKS 支援的自訂訓練協調器上執行多個實驗,以避免容器冷啟動——這是用維運開銷來換取較低的延遲。若要達到生產級的可擴展性,則應接受一些啟動延遲,並轉而將重點放在自動化可重現性上。

常見的陷阱與決策標準

一個常見的錯誤是,在偵測模型漂移時僅依賴端點日誌,卻沒有在部署時啟用 DataCaptureConfig;若無資料擷取,Model Monitor 和 Clarify 便無法分析實際的推論輸入。務必使用 DataCaptureConfig (EnableCapture=true、DestinationS3Uri、CaptureOptions 和 InitialSamplingPercentage) 來設定 CreateEndpointConfig,並透過 CreateMonitoringSchedule 建立一個連結到基準線統計資料的監控排程。

另一個陷阱是 S3 和網路安全性不足。必須保持隔離的訓練任務應在 CreateTrainingJob 中使用 VpcConfig,並為 S3 物件啟用 KMS 加密。不要依賴公開存取控制;應改用 S3 儲存桶策略、VPC 端點 (com.amazonaws.region.s3) 和 IAM 角色範圍限定。最後,應避免脆弱的 CI/CD,做法是將評估指標和模型卡元數據內建至模型套件中,並使用不可變的版本控制 (ModelPackageVersion) 而非覆寫產物。

實務問題:使用情境

AcmePay — 交易串流的詐欺偵測。挑戰在於建立一個安全、可稽核的生命週期,此週期需能彙總 S3 交易日誌、客戶資料和地端 MySQL 表格、訓練一個 XGBoost 詐欺分類器、維護一個中央模型註冊表並在部署到生產環境前進行手動核准、依需求偵測資料與偏見漂移,並最小化版本控制和迭代執行的維運開銷。

  1. 集中化資料:使用 AWS Glue 透過 AWS Glue JDBC 連接器來爬取 S3 交易日誌和地端 MySQL(並透過安全的 DataSync 傳輸或 VPC peering 進行網路存取)。在 Glue Data Catalog 中將資料集編目,並透過 AWS Lake Formation 強制執行存取控制。將整理好的訓練集儲存在一個加密的 S3 前綴中(使用 KMS CMK),並使用儲存桶策略加上 VpcEndpoint 來防止公開存取。

  2. 建立可重現的管線:撰寫一個 SageMaker Pipeline,其中包含用於特徵工程的 ProcessingStep(使用 Data Wrangler 或 Glue ETL 匯出)、執行內建 XGBoost 容器並帶入超參數的 TrainingStep,以及一個呼叫 RegisterModel 並設定 model_package_group_name=“acmepay-fraud-group” 和 model_approval_status=“PendingManualApproval” 的 RegisterModel 步驟。在前處理和訓練步驟上啟用 CacheConfig,以便在輸入/程式碼未變更時重複使用輸出,從而減少重複的執行個體配置。

  3. CI/CD 與核准流程:建立一個 SageMaker Project 來搭建 AWS CodePipeline 的基礎架構。該管線會在 CodeBuild 中執行單元測試,觸發 SageMaker Pipeline,並在 RegisterModel 之後包含一個 CodePipeline 的 ManualApproval 動作。當手動核准動作被批准後,會調用一個 Lambda 函數,該函數呼叫 UpdateModelPackage 將 ModelApprovalStatus 設為 “Approved”,然後觸發 CreateEndpointConfig 和 CreateEndpoint 進行部署。使用 SageMaker Projects 產生的 CloudFormation 資源來保持基礎設施的可重現性。

  4. 安全的訓練與部署:提交訓練任務時使用 CreateTrainingJob 的 VpcConfig (SubnetIds, SecurityGroupIds) 並設定 EnableNetworkIsolation=true;確保 SageMaker 執行角色對 KMS 金鑰擁有 kms:Decrypt 權限,且 s3:GetObject 權限僅限於整理好的資料集前綴。對於端點,建立 CreateEndpointConfig 時需包含 DataCaptureConfig (EnableCapture=true, SamplingPercentage=100, DestinationS3Uri=s3://acmepay-prod/capture),以便保留推論資料以供監控。

  5. 依需求進行漂移與偏見檢查:在一個 ProcessingJob 中使用 SageMaker Clarify,對擷取的推論資料和真實標籤(如果有的話)依需求執行 ModelBias 和 ModelExplainability 分析;當資料科學團隊要求進行評估時,可從 Lambda 或 Step Functions 中透過 ClarifyProcessor.run() API 來調用。對於持續性的漂移警示,可透過 DefaultModelMonitor.suggest_baseline 建立一個 Model Monitor 基準線,並設定一個 MonitoringSchedule;使用 CreateMonitoringSchedule 來執行定期檢查,並設定 SNS 通知以應對違規情況。

AWS 的設計理念:Glue + Lake Formation 以最少的自訂 ETL 程式碼,集中化並保護異質來源的資料;SageMaker Pipelines + CacheConfig 最小化了迭代執行時的基礎設施變動;Model Registry 提供了不可變的版本控制和元數據 (ModelPackageGroupName 和 ModelPackageVersion),並透過 ModelApprovalStatus 與核准工作流程原生整合;而 SageMaker Clarify 加上 Model Monitor 則同時提供依需求的偏見評估和排程的漂移偵測。使用 SageMaker Projects 和 CodePipeline 標準化了 CI/CD 流程,並在生產部署前,強制執行從 “PendingManualApproval” 到 “Approved” 的可稽核、可重複的晉升流程。


模型部署與推論 · 所有領域 · 模型監控與可觀測性

練習這些題目 → · 在 ExamRoll.io 上限時練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通過考試 →

瀏覽 Amazon →

Related guides

一站式存取

一份訂閱。所有考試。

每個方案都可無限存取答案搜尋、練習測驗、AI 解釋和完整的資源庫 — 支援 20 多種語言。

每月
24.87
Just €0.83/day
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

最佳價值
12 個月
179.87
Just €0.49/daySave 40%
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

✓ 包含免費方案 · ✓ 隨時取消 · ✓ 所有方案解鎖完整產品