Amazon SageMaker 是一項 Amazon Web Services (AWS) 提供的全受管機器學習 (ML) 服務。它旨在幫助開發人員和資料科學家更輕鬆、更快速地構建、訓練和部署機器學習模型。
在機器學習的開發生命週期中,從資料準備到模型訓練、部署和監控,每個階段都可能涉及複雜的工具和基礎設施管理。Amazon SageMaker 的目標就是簡化這個端到端 (end-to-end) 的過程,讓使用者能夠專注於解決實際問題,而不是底層的基礎設施。
主要功能和優勢 (涵蓋 ML 開發生命週期的各個階段):
- 資料準備 (Data Preparation):
- SageMaker Data Wrangler: 提供視覺化介面,幫助您匯入、探索、清理和轉換來自各種來源的資料,無需寫程式碼。
- SageMaker Feature Store: 一個專門用於儲存、更新和共享機器學習特徵 (features) 的資料庫,確保在訓練和推理之間特徵的一致性和可重用性。
- 模型建構 (Model Building):
- SageMaker Studio: 一個整合開發環境 (IDE),提供單一的 Web 界面,用於執行所有 ML 開發步驟,包括筆記本環境、版本控制、除錯和資料可視化。
- SageMaker Notebook Instances: 提供預配置的 Jupyter Notebook 環境,包含了常見的 ML 庫和框架。
- SageMaker Autopilot: 自動化機器學習 (AutoML) 功能,您只需提供資料集,它會自動進行資料預處理、特徵工程、演算法選擇和模型調優,生成最佳模型。
- SageMaker Canvas: 一個視覺化、無程式碼的介面,讓業務分析師和公民資料科學家也能建立機器學習模型。
- 模型訓練 (Model Training):
- 各種框架支援: 支援主流的 ML 框架,如 TensorFlow, PyTorch, Scikit-learn, Apache MXNet 等。
- 託管訓練: 您只需提供訓練指令碼和資料,SageMaker 會自動佈建、管理和擴展訓練資源(GPU/CPU 實例),並在訓練完成後自動關閉,按需計費。
- 分散式訓練: 支援在多個 GPU 或多個機器上進行分散式訓練,加速大型模型的訓練過程。
- 自動模型調優 (Automatic Model Tuning/Hyperparameter Tuning): 自動尋找最佳的模型超參數,以提高模型性能。
- SageMaker Experiments: 追蹤和管理所有訓練實驗的元數據,方便比較和再現結果。
- 模型部署 (Model Deployment):
- 託管端點 (Managed Endpoints): 將訓練好的模型部署為可擴展的 HTTPS 端點,供應用程式進行即時預測(推理)。SageMaker 會自動處理負載平衡、自動擴展和健康檢查。
- 無伺服器推論 (Serverless Inference): 專為間歇性或不可預測的推理工作負載設計,無需管理底層基礎設施,按實際請求付費。
- 非同步推論 (Asynchronous Inference): 適用於大型輸入或需要長時間處理的推理請求。
- 批次轉換 (Batch Transform): 適用於對大量資料集進行離線批次預測。
- SageMaker Edge Manager: 用於在邊緣設備上部署和管理 ML 模型。
- 模型監控與管理 (Model Monitoring and Management):
- SageMaker Model Monitor: 持續監控模型部署後的性能、數據漂移 (data drift) 和概念漂移 (concept drift),並在發現問題時發出警報。
- SageMaker Model Registry: 集中管理和版本控制您的所有模型,包括其元數據、性能指標和部署狀態。
- SageMaker Pipelines: 一個 CI/CD 服務,用於建立和管理 ML 工作流程的自動化管道,從數據準備到模型部署。
典型使用案例:
- 預測性分析: 預測客戶流失、銷售量、設備故障等。
- 推薦系統: 為客戶推薦產品、內容、服務。
- 電腦視覺: 圖像識別、物體偵測、人臉識別。
- 自然語言處理 (NLP): 情感分析、文本分類、機器翻譯、聊天機器人。
- 金融欺詐偵測: 識別潛在的欺詐交易。
- 醫療診斷輔助: 分析醫療影像、基因組數據。