Amazon MLA-C01: 電腦視覺、NLP 與專業化 ML — 學習指南
屬於 AWS Machine Learning Engineer Associate MLA-C01 — 學習指南. 使用經過驗證的解答練習: Amazon 考試中心, 或參加限時模擬考試: ExamRoll.io.
核心概念
AWS 中的電腦視覺與 NLP 解決方案,主要圍繞著三個層面的考量:資料擷取與安全性、特徵與標籤準備,以及模型生命週期(訓練、登錄、部署、監控)。對於影像分類和物件偵測,訓練工作流程的核心是將已標註的資產儲存在 Amazon S3 中,並採用嚴格的加密和網路控制。物件偵測使用如 Pascal VOC / COCO 的標註格式,而高吞吐量訓練則使用 RecordIO 或 TFRecord。對於文字分類和命名實體辨識 (NER),輸入通常是詞元化序列(例如 transformer 模型使用的 WordPiece/BPE)或帶有標籤且以換行符號分隔的 JSON。在使用 Rekognition Textract 的輸出或人工標註的範圍時,預處理必須保留詞元對字元的偏移量,以確保 NER 標籤對齊的一致性。針對表格式詐欺模型的特徵工程,重點在於時間窗口彙總、類別基數縮減,以及訓練和服務之間的一致性編碼。使用集中式轉換(例如 Feature Store 或 Data Wrangler 流程)可以防止離線訓練和線上推論之間的偏差。
模型的建置選擇對應到專門的 AWS 服務:Amazon SageMaker 提供內建演算法(XGBoost、Linear Learner、Random Cut Forest)和適用於各種框架(MXNet、TensorFlow、PyTorch)的受管容器,再加上用於偏差與可解釋性的 SageMaker Clarify。當需要低營運開銷時,Amazon Rekognition 涵蓋了用於標註、人臉/名人偵測的預建置影像 API,以及透過 Rekognition Custom Labels 進行的自訂標籤訓練。對於從文件中擷取文字和結構化資料,Amazon Textract 提供 OCR 以及表單/表格擷取功能;對於如情緒分析、實體辨識或主題建模等語言層級的任務,Amazon Comprehend 提供受管 API,而 Comprehend Medical 則專門用於臨床 NER。將這些部分整合到一個一致的管道中,使預處理、模型輸入和監控都可重現且可稽核,這對生產環境至關重要。
主要服務與組態
需要了解的核心 AWS 服務及相關的 API/組態參數包括 Amazon SageMaker (TrainingJob, ModelPackage, ModelPackageGroup, ModelRegistry)、SageMaker Pipelines (RegisterModel, CallbackStep, ConditionStep)、SageMaker Model Monitor and Clarify (BaselineConfig, DataConfig, ModelConfig, bias_config)、Amazon Rekognition、Amazon Comprehend、Amazon Textract、AWS Glue,以及 Lake Formation。為了實現安全的隔離儲存,請使用 SSE-KMS (透過 S3.PutBucketEncryption 搭配 SSEKMSKeyId) 來設定 S3 的伺服器端加密,附加儲存貯體政策以限制僅 SageMaker 執行角色能存取,並為 S3 啟用閘道 VPC 端點以進行私有網路傳輸。啟動訓練任務時,在 CreateTrainingJob 中設定 VpcConfig 參數(SecurityGroupIds 和 Subnets),讓執行個體在客戶 VPC 中運行,並啟用 NetworkIsolation 和 InstanceMetadataServiceConfiguration 來限制存取。
為了以最少的營運開銷集中管理模型,請使用 SageMaker Model Registry。方法是建立一個 ModelPackageGroup,並透過 CreateModelPackage 新增 ModelPackage 版本,同時將 ModelApprovalStatus 設定為 ‘PendingManualApproval’。透過在 SageMaker Pipelines 中加入一個 CallbackStep 或專用的「手動核准」步驟,來自動化手動核准閘門。管道會等待一個外部信號,然後您可以呼叫 UpdateModelPackage 將 ModelApprovalStatus 設定為 ‘Approved’ 以進行部署。對於已部署的即時端點,若要進行隨選的偏差或漂移評估,請使用 SageMaker Clarify 進行偏差指標分析,並使用 SageMaker Model Monitor 進行資料與預測漂移分析。具體作法為:在 CreateEndpoint 中啟用 DataCaptureConfig (EnableCapture、CaptureOptions、DestinationS3Uri) 來擷取推論負載,然後透過 CreateProcessingJob 啟動一個 Clarify 處理任務,並使用 Clarify SDK 的 DataConfig、ModelConfig 和 bias_config 參數來即時計算漂移指標。
相關服務包括:
- Amazon SageMaker (TrainingJob, CreateModelPackage, UpdateModelPackage, CreateProcessingJob, CreateMonitoringSchedule)
- SageMaker Pipelines (RegisterModel, CallbackStep, ConditionStep)
- SageMaker Clarify (DataConfig, ModelConfig, bias_config, explainability_config)
- Amazon Rekognition (StartProjectVersion, DetectLabels, CreateProjectVersion)
- Amazon Comprehend (DetectEntities, StartEntitiesDetectionJob)
- Amazon Textract (StartDocumentTextDetection, AnalyzeDocument)
- AWS Glue 和 AWS Lake Formation (Crawlers, Jobs, Data Catalog)
- Amazon Lookout for Metrics 和 Amazon QuickSight 用於異常視覺化
設計模式與權衡取捨
對於像詐欺偵測這樣的表格式分類問題,實務上的設計模式是使用 AWS Glue 或 DMS 將關聯式資料表的原始資料來源集中到一個安全的 S3 資料湖中,在 Glue Data Catalog 中將它們編目,並透過 Lake Formation 強制執行存取控制。轉換只需在 SageMaker Data Wrangler 流程或 Glue ETL 任務中定義一次,並持久化儲存在 SageMaker Feature Store 中,如此一來,相同的轉換便能在訓練和推論時執行。選擇 Feature Store 會增加前期的維運步驟,但能減少偏差和除錯時間;直接在任務中進行轉換的初期開銷較低,但會讓可重現性和線上特徵運算變得更加困難。在訓練演算法方面,XGBoost (SageMaker 提供的容器) 因其在表格式資料上的優異效能及對權重欄位的支援,是詐欺偵測的一個強力預設選項;您可以在 CreateTrainingJob 中使用 HyperParameters 來設定超參數,並傳入一個權重欄位或設定 scale_pos_weight 來應對類別不平衡問題,這樣可以避免使用更複雜的重採樣管線。
對於電腦視覺,如果您需要快速迭代且已標記的資料有限,Rekognition Custom Labels 提供了最快且維運工作最少的途徑;若想獲得最大程度的控制和使用自訂架構,請使用 SageMaker 訓練搭配 MXNet/PyTorch,並將資料集以 RecordIO 或 ImageFolder 格式儲存在 S3 上。對於物件偵測,建議優先使用能輸出 COCO 格式的框架進行訓練,並透過指定 InstanceType=ml.p3.2xlarge 或更高規格,以及在 TrainingJob 的 AlgorithmSpecification 和 TrainingInputMode 中設定 MPI 或 horovod 組態,來善用 SageMaker 的分散式訓練功能。權衡取捨包括吞吐量與成本:使用受管 Spot 執行個體的批次任務可以降低成本,但會增加延遲和終止風險;在 SageMaker Pipelines 中使用管線快取,能在輸入未改變時減少重複步驟的啟動,從而將不必要的運算啟動時間降至最低。
常見陷阱與決策標準
一個常見的陷阱是未能集中管理前處理的產物。如果在訓練和推論中,權杖化 (tokenization)、NER 的標籤對應或類別編碼器的應用方式不同,將會引入難以追蹤的預測錯誤。應使用 Feature Store 或將前處理產物(如 tokenizer、vocab.json、label_map)與模型套件一起保存在 Model Registry 中,這樣已部署的容器就能擷取並應用完全相同的轉換。另一個常見的失敗是為監控所捕獲的資料不足:如果在端點上未啟用 DataCaptureConfig,且沒有適當的真實標籤標註工作流程,Model Monitor 就無法計算漂移或品質指標,要釐清 F1 分數下降的原因就只能憑空猜測。對於類別不平衡問題,操作負擔最輕的解決方案是使用演算法支援的加權(例如 XGBoost 的 scale_pos_weight 超參數,或在訓練資料中提供一個權重欄位),而不是盲目地進行向上取樣/向下取樣,因為這可能會引入取樣偏差。
實務問題:使用情境
公司名稱:MeridianPay。MeridianPay 必須建立一個即時詐欺偵測管道,結合 S3 中的交易日誌和本地(on-prem)MySQL 資料庫中的客戶資料。需求包括安全隔離的儲存、具備手動審核機制的中央模型註冊表、連續訓練任務間的啟動延遲最小化、資料彙總後的自動化異常偵測與視覺化、以最少操作支援混合類別與數值特徵、處理類別不平衡,以及一個可依需求監控其漂移與偏誤的生產模型。
彙總與保護資料:使用 AWS DMS 將本地 MySQL 資料表持續複製到一個加密的 S3 登陸區 (landing zone),執行 AWS Glue 爬蟲 (crawler),並將產生的資料表註冊到 AWS Glue Data Catalog。透過 AWS Lake Formation 和 S3 儲存桶政策強制執行存取控制;為 S3 啟用 Gateway VPC Endpoint,並為 SageMaker 執行角色設定最小權限的 IAM。在 S3 上使用 SSE-KMS 搭配客戶管理的 KMS 金鑰,並透過
KmsMasterKeyId設定BucketEncryption。轉換與儲存特徵:在 SageMaker Data Wrangler 或 Glue ETL 任務中編寫轉換邏輯,將衍生特徵保存在 Amazon SageMaker Feature Store 的線上儲存區 (online store) 以供推論時低延遲查詢,並保存在離線儲存區 (offline store) 以供訓練使用。將 tokenizer/encoder 產物與模型產物一同儲存。使用 FeatureGroup API 建立特徵群組,並設定
RecordIdentifierFeatureName和EventTimeFeatureName以確保時間點正確性 (point-in-time correctness)。以最小操作負擔進行訓練:透過建立一個
CreateTrainingJob,並將其AlgorithmSpecification指向 XGBoost 容器的 URI,來使用 SageMaker XGBoost 內建容器;指定VpcConfig以在 VPC 中執行;傳入包含"objective":"binary:logistic"的HyperParameters,並將"scale_pos_weight"設定為負樣本與正樣本的比例,以解決類別不平衡問題。為減少重複的啟動延遲,實作 SageMaker Pipelines 並為資料準備步驟啟用快取,這樣連續的管道執行就會跳過未變更的步驟;盡可能使用持久化的特徵儲存區查詢,而非重新處理。模型註冊表與手動審核:透過
CreateModelPackage將訓練好的模型註冊到一個ModelPackageGroup中,並設定ModelApprovalStatus='PendingManualApproval'。整合一個 SageMaker Pipelines 的CallbackStep,使其在RegisterModel後暫停;審核人員接著呼叫UpdateModelPackage將ModelApprovalStatus設定為'Approved'。使用這個已核准的套件來進行CreateModel和CreateEndpoint的設定。異常偵測與視覺化:資料彙總後,使用 Amazon Lookout for Metrics 對時間序列的交易彙總資料執行自動異常偵測,並設定與 S3/Glue 的整合。在視覺化方面,可將 Lookout 的結果與資料連接到 QuickSight 儀表板,或使用 SageMaker Studio notebook 來視覺化特徵漂移。對於已部署端點的隨選模型偏誤/漂移評估,在
CreateEndpoint中啟用DataCaptureConfig,並執行一個隨選的 SageMaker Clarify 處理任務 (CreateProcessingJob),其DataConfig和ModelConfig指向捕獲的資料;使用 Model Monitor/CreateMonitoringSchedule來排定週期性檢查,並透過StartMonitoringSchedule觸發單次執行。
理由:此方法集中了資料與轉換,在能減少操作負擔的地方使用託管服務(例如在其各自領域使用 Glue/DMS/Lookout/Comprehend/Textract),利用 SageMaker Model Registry 和 Pipelines 進行版本控制和手動審核,只需最少的自訂基礎設施,透過演算法參數解決類別不平衡問題以避免繁重的重新取樣,並透過 Model Monitor 和 Clarify 提供排程和隨選的偏誤/漂移評估,同時保持資料加密和網路隔離。
← ML 工作負載的成本優化 · 所有領域
練習這些題目 → · 在 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.
通過考試 →