Amazon SageMaker 與 Hugging Face 的合作夥伴關係
TL;DR
Hugging Face 與 Amazon 已建立策略合作夥伴關係,透過將 Hugging Face Transformers 整合至 Amazon SageMaker,簡化尖端 NLP 模型的訓練與部署。此次合作引入了專用的 Hugging Face Deep Learning Containers (DLCs) 以及 SageMaker Python SDK 的一級擴充功能,將設定與執行實驗的時間從數天縮短至數分鐘。
Hugging Face Deep Learning Containers (DLCs)
Amazon SageMaker 現在提供 Hugging Face DLCs,這些是預裝了深度學習框架與函式庫(例如 transformers、datasets 與 tokenizers)的 Docker 映像檔。這些容器讓使用者無需從頭開始建置與優化環境。
DLCs 的主要特性包括:
- Framework Support: 優化過的 TensorFlow 與 PyTorch 版本皆可使用。
- Infrastructure Flexibility: 支援單一 GPU、單節點多 GPU 以及多節點叢集。
- Performance: 針對 PyTorch 與 TensorFlow 進行內建優化,以提高訓練速度並優化性價比。
- Open Source: DLCs 採用 Apache 2.0 授權。
SageMaker Python SDK Integration
為了加速從資料科學到生產環境的轉型,Hugging Face 開發了 SageMaker Python SDK 的一級擴充功能。此整合讓使用者可以建立 HuggingFace Estimator 來管理端到端的訓練流程。
Core Capabilities
- Automatic Model Tuning: 與 SageMaker 的 Automatic Model Tuning 整合,以優化超參數並提高模型準確度。
- Experiment Tracking: 與 SageMaker Studio IDE 相容,用於追蹤與比較訓練產出物與實驗。
- Managed Infrastructure: SageMaker 會自動管理 Amazon EC2 執行個體,上傳訓練腳本(例如
train.py),並處理來自 Amazon S3 的資料 I/O。
Advanced Training Features
此合作夥伴關係引入了多項高效能訓練功能,以處理大規模 NLP 工作負載。
Distributed Training
使用者可以直接透過 HuggingFace Estimator 定義分佈參數,來利用 SageMaker 分佈式訓練函式庫:
- Data Parallelism: 整合至
TrainerAPI,以簡化在大規模資料集上的訓練。 - Model Parallelism: 透過將模型分割至多個 GPU/節點,支援訓練具有數十億個參數的模型。
Cost and Workflow Optimization
- Managed Spot Instances: 使用者可以利用 EC2 spot instances 來降低高達 90% 的訓練成本。對於長時間運行的工作,建議搭配使用
checkpoint_s3_uri。 - Git Repository Integration: Estimator 的
entry_point與source_dir可以直接指向 GitHub 儲存庫,無需在本地端下載腳本。 - SageMaker Metrics: 系統可以自動使用正規表示式解析日誌,將訓練指標(例如
eval_loss、eval_accuracy)傳送到 Amazon CloudWatch。
Deployment and Inference
雖然最初的重點在於訓練,但此整合已於 2021 年 7 月 8 日擴展,以包含在 Amazon SageMaker 中輕鬆部署與推論 Transformers 模型。
Summary of Benefits
根據 Hugging Face FAQ,使用 SageMaker 執行 Hugging Face 模型具有三個主要優勢:
- Cost-Effectiveness: 執行個體按秒計費,並在工作結束時自動終止。
- MLOps Automation: 訓練中繼資料、日誌以及用於檢查點與產出物的 S3 I/O 均由全權管理。
- Scalability: 能夠啟動多個並行訓練工作,並進行大規模的分佈式訓練。