使用 Amazon SageMaker 進行訓練

Amazon SageMaker 提供您調校和偵錯模型,以及執行訓練實驗的一切所需,讓您輕鬆訓練機器學習 (ML)。

功能

實驗管理和追蹤

機器學習是根據持續實驗的重複流程,例如:嘗試新學習演算法或調整演算法的超參數,同時能觀察此等增量改變對模型效能和準確性的影響。一段時間後,這樣的資料爆炸讓我們更難以追蹤效能最好的模型、實驗過程中的觀察和教訓所得,以及首次用於建立這些模型的確切元素和程式。

Amazon SageMaker Experiments 利用簡易且可擴展的方法,幫助您追蹤、評估和組織訓練實驗。SageMaker Experiments 是和 Amazon SageMaker Studio,以及帶深度 Jupyter 整合的 Python SDK諧搭配使用。

Amazon SageMaker Experiments 協助您組織數千訓練實驗、記錄實驗成品,例如:資料組、超參數和指標,並重建實驗。由於 SageMaker Experiments 與 SageMaker Studio 的整合,您可視覺化模型,並輕鬆快速評估最佳模型。在實驗過程中,您可記錄和維護長串的筆記日誌和評語,並可輕鬆與小組成員點選和分析實驗。SageMaker Experiments 也保留實驗的完整歷程,因此若模型開始偏離其意圖成果,您可回溯並檢查其成品。

實驗

利用完整見解進行分析和偵錯

取得 ML 訓練流程的見解和能見度可說是挑戰重重。要確保您的模型參數正在學習正確的數值,其實並不容易。例如:使用卷積神經網路訓練電腦視覺模型時,您可能需要執行數小時的訓練工作。在此期間,您無法看到 ML 模型參數如何影響模型訓練,以及訓練流程是否可取得理想成果。

Amazon SageMaker Debugger 為訓練流程提供完整的能見度。SageMaker Debugger 為開發人員提供視覺界面,讓檢查作業變得更輕鬆,也能進一步分析偵錯資料,以及提供視覺指標,說明訓練流程內的潛在異常情況。

SageMaker Debugger 自動偵測和警示您最常發生的錯誤,例如:梯度數值變得太大或太小。也可使用 Debugger SDK 來自動偵測新類別的模型錯誤,或互動分析在 SageMaker Notebook 中執行的訓練。因此,機器學習模型的偵測時間,就能從數天減少至數分析。SageMaker Debugger 收集所得的資料將儲存在您的帳戶內,可用於對隱私權最敏感的應用程式中。

SageMaker Debugger 建立您的模式之即時效能指標。這些指標包括:訓練和驗證損失 (顯示模型的錯誤,應儘量保持低數值)、混淆矩陣 (供分類模型使用;說明誤判和誤報預測,以及它們在訓練期間的變化),以及學習梯度 (檢閱訓練期間的模型學習曲線,用以透過學習診斷問題,例如:模型的擬合不足或過度擬合,以及是否已恰當說明訓練和驗證資料組)。 可在 Amazon SageMaker Studio 的筆記本內檢視和視覺化這些指標。

當偵測到常見訓練問題時,SageMaker Debugger 也將提供警告和補救建議。例如:若您的模型已從資料學會一切,且沒有進步,但它仍在接受訓練 (需要不少時間和成本),SageMaker Debugger 將及早辨識此問題,讓您中斷訓練。它也可辨識常見的資料驗證問題,例如:持續設定您的網路權重為零,以及辨識您的模型是否開始過度擬合資料。

偵錯工具

單鍵式訓練

Amazon SageMaker 讓您輕鬆訓練模型。當您準備好在 SageMaker 中進行訓練時,只要指定您的資料在 Amazon S3 中的位置,並指出您需要的 SageMaker ML 執行個體類型和數量,就能按一下滑鼠開始進行訓練。SageMaker 會設定分散式運算叢集、執行訓練、將結果輸出到 Amazon S3,以及在訓練完成時縮減叢集。 

當您在 Amazon S3 指定資料位置時,SageMaker 就會根據您的需求,在與其本身軟體定義網路隔離的訓練叢集上執行您的演算法。當您開始選擇執行個體類型,其中包括:Amazon EC2 P3dn SageMaker 時,在雲端中以最強大 GPU 為基礎的 SageMaker 執行個體,將在自動調整規模群組內建立您的叢集。SageMaker 也將在每個節點附加 EBS 磁碟區、設定資料管道,並開始利用您的 TensorFlow、MXNet、Pytorch、 Chainer 或您的架構指令碼、內建或自訂演算法,開始進行訓練。完成訓練後,將把結果儲存於 S3 中,且將自動縮減叢集。

為了能輕鬆執行大規模訓練,我們佳化從 Amazon S3 訓練資料串流的方法。您可以透過 API 指定是否要將所有資料傳送到叢集中的每個節點,或是否要讓 SageMaker 根據您的演算法需求,管理各節點的資料分佈。透過結合內建的演算法,使用 Amazon SageMaker 可能取得的訓練可擴展性,可大幅減少執行訓練的時間和成本。

自動模型調校

Amazon SageMaker 透過調校數千種不同的演算法參數組合,自動調校您的模型,進而建立最準確的預測結果。

當您調校模型以提高準確性時,必需調整兩大項目:首先是修改您提供給模型的資料輸入 (例如,使用特定數量的日誌),其次是調整定義該模型行為的參數。這些稱為超參數,但要找出正確的值相當困難。通常,您會從隨機值開始下手,之後反覆進行調整,看看有什麼變化。視您的模型有多少超參數而定,這整個過程可能相當漫長。

SageMaker 透過在訓練期間提供自動模型調校選項,簡化這個流程。自動調整模型會使用機器學習,迅速將模型調校為盡可能的準確。這項功能可讓您略過手動調整超參數的乏味嘗試錯誤過程。自動調校模型會透過多重訓練回合來執行超參數佳化,其做法是探索資料中的有趣特性,並了解這些特性如何互動來影響準確度。您可節省數天、甚至是數週時間,就能取得品質最高的訓練模型。

可透過 API 或主控台指定訓練工作數,SageMaker 接著就能使用機器學習,調校您的模型,進行接下來的工作。整個流程包括:了解哪些項目會影響模型上不同類型的資料,還有在多個模型副本套用該知識,以快速找出最佳的可能結果。如果您是開發人員或資料科學家,這表示您只須注意對提供給模型的資料想作出的調整,就能大幅減少您在訓練期間必須留意的事項。

受管 Spot 訓練

使用受管 Spot 訓練,您可以減少訓練機器學習模型的費用高達 90%。受管 Spot 訓練使用 Amazon EC2 Spot 執行個體,這是備用 EC2 容量,因此相較於 Amazon EC2 隨需執行個體,執行訓練任務的成本低很多。Amazon SageMaker 負責管理訓練任務,以便在運算容量可用時執行這些任務。因此,您不用持續輪詢找尋容量,而且使用受管 spot 訓練無須建立額外的工具來管理中斷。受管 Spot 訓練與自動模型調校、Amazon SageMaker 隨附的內建演算法和架構以及自訂演算法搭配使用。

使用 Amazon SageMaker 進行自動模型調整以獲取準確的 ML 模型

在 GitHub 上實作這些自動模型調校練習。

使用 Amazon SageMaker 訓練和調整您的機器學習模型

聆聽此技術講座,以使用 Amazon SageMaker 將您的 ML 模型訓練至最高精準度。

透過更快地下載大型資料集來加速訓練任務

閱讀此博客文章,將 Amazon FSx for Lustre 持久性檔案系統與 Amazon SageMaker 搭配使用以訓練 ML 模型。