追蹤並設定調校任務的完成標準 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

追蹤並設定調校任務的完成標準

您可以使用完成條件指示自動模型調校 (AMT),在符合特定條件時停止調校任務。有了這些條件,即可設定最小模型效能或訓練任務數量上限,這些任務在根據目標指標進行評估時並不會改善。您也可以追蹤調校任務的進度,並決定讓該任務繼續或手動停止。本指南說明如何設定完成標準、查看進度並手動停止調校任務。

設定調校任務的完成標準

在超參數最佳化期間,調校任務會在循環內啟動數個訓練任務。調校任務將執行以下操作。

  • 查看您的訓練任務是否完成,並藉此更新統計資料

  • 決定接下來要評估的超參數組合。

AMT 會持續檢查從調校任務啟動的訓練任務,以更新統計資料。這些統計資料包括調校任務執行期和最佳訓練工作。然後,根據您的完成條件,AMT決定它是否應該停止任務。您也可以查看這些統計資料並手動停止任務。如需有關手動停止任務的詳細資訊,請參閱手動停止調校任務一節。

舉例來說,如果您的調校任務符合您的目標,您可以儘早停止調校以節省資源或確保模型品質。AMT 會根據完成條件檢查您的任務效能,並在符合任何條件時停止調校任務。

您可以指定下列類型的完成標準:

  • MaxNumberOfTrainingJobs — 在調校停止之前要執行的訓練任務數量上限。

  • MaxNumberOfTrainingJobsNotImproving — 無法根據目前最佳訓練任務的目標指標改善效能的訓練任務數量上限。例如,如果最佳訓練任務傳回的目標指標準確度為 90%,則 MaxNumberOfTrainingJobsNotImproving 會設為 10。在此範例中,10 項訓練任務無法傳回高於 90% 的準確度後,調校將停止。

  • MaxRuntimeInSeconds — 時鐘時間的上限 (以秒為單位),表示調校任務可執行的時間長度。

  • TargetObjectiveMetricValue — 評估調校任務時所依據的目標指標值。達到此值後, 會AMT停止調校任務。

  • CompleteOnConvergence — 在內部演算法判斷調校任務不太可能比最佳訓練任務的目標指標提升 1% 以上之後,所停止調校的旗標。

選取完成標準

您可以選擇一或多個完成標準,在符合條件後停止超參數調校任務。下列指示說明如何選取完成標準,以及如何決定哪一個標準最適合您的使用案例。

  • MaxNumberOfTrainingJobs中使用 ResourceLimitsAPI來設定在調整任務停止之前可執行的訓練任務數量上限。從大的數字著手,並根據您的調校任務目標的模型效能進行調整。大多數使用者會輸入 50 附近或較多訓練任務的值,以找出最佳的超參數組態。尋找更高等級模型效能的使用者,會使用 200 或更多的訓練任務。

  • 如果模型效能在指定數量的任務後無法改善,MaxNumberOfTrainingJobsNotImproving請在 BestObjectiveNotImproving API 欄位中使用 來停止訓練。根據目標函式評估模型效能。符合 MaxNumberOfTrainingJobsNotImproving 後, AMT將停止調校工作。調校任務往往會在任務開始時大幅取得進展。根據目標函式改善模型效能,將需要在調校結尾時投入較大量的訓練任務。根據您的目標指標查看類似的訓練任務效能,以針對 MaxNumberOfTrainingJobsNotImproving 選取一個值。

  • MaxRuntimeInSeconds中使用 ResourceLimitsAPI來設定調校任務可能需要的壁鐘時間上限。使用此欄位可滿足調校任務須完成或限制運算資源的截止日期要求。

    若要取得調校任務的估計總運算時間 (以秒為單位),請使用下列公式:

    估計的最長運算時間 (以秒為單位)= MaxRuntimeInSeconds * MaxParallelTrainingJobs * MaxInstancesPerTrainingJob

    注意

    調校任務的實際持續時間可能與此欄位所指定的值略有不同。

  • TargetObjectiveMetricValue中使用 TuningJobCompletionCriteria API 來停止調校任務。調校任務啟動的任何訓練任務達到此目標指標值之後,即可停止調校任務。如果您的使用案例須達到特定的效能層級,而非須花費運算資源來尋找最佳模型,則請使用此欄位。

  • 在 AMT 偵測到調校任務已收斂,且不太可能進一步取得重大進展後,CompleteOnConvergence使用 TuningJobCompletionCriteriaAPI停止調校任務。如果不清楚應使用哪個任何其他完成標準的值,請使用此欄位。AMT 根據在各種不同的基準上開發和測試的演算法來確定收斂。調校任務會在沒有任何訓練任務返回顯著改善 (1% 或更少) 時定義為收斂。目前為止,系統會根據效能最高的任務所傳回的目標指標來衡量改善狀況。

結合不同的完成標準

您也可以在相同的調校任務中結合任何不同的完成標準。AMT 將在符合任何一個完成條件時停止調校任務。例如,如果您想要調校模型,直到模型符合目標指標為止,但不想在任務收斂時繼續調校,請參考下列指引。

追蹤調校任務進度

您可以隨時使用 DescribeHyperParameterTuningJobAPI來追蹤正在執行的調校任務進度。不必指定完成標準,即可取得調校任務的追蹤資訊。使用下列欄位取得調校任務的相關統計資料。

  • BestTrainingJob – 描述到目前為止取得之最佳訓練任務的物件,根據您的目標指標進行評估。使用此欄位可查看您目前的模型效能,以及此最佳訓練任務的目標指標值。

  • ObjectiveStatusCounters – 指定調校任務中完成之訓練任務總數的物件。若要預估調校工作的平均持續時間,請使用 ObjectiveStatusCounters 和調校任務的總執行期。您可以使用平均持續時間來預估調校任務將執行多久。

  • ConsumedResources — 調校任務所耗用的資源總計,例如:RunTimeInSeconds。比較 中的 ConsumedResourcesAPI,與相同 DescribeHyperParameterTuningJob BestTrainingJob中的 API。您也可以ConsumedResources將 的回應與 進行比較ListTrainingJobsForHyperParameterTuningJobAPI,以評估您的調校任務是否在耗用的資源後取得令人滿意的進展。

  • TuningJobCompletionDetails – 調整任務完成資訊,包括下列項目:

    • 如果任務已收斂,則偵測到收斂的時間戳記。

    • 未改善模型效能的訓練任務數量。系統會根據最佳訓練任務的目標指標評估模型效能。

    使用調校任務完成標準,評估調校任務提高模型效能的可能性。如果模型效能執行到完成,則會根據最佳目標指標來評估模型效能。

手動停止調校任務

您可以決定是否要讓調校任務執行,直到調校任務完成為止,或者是否應手動停止該任務。若要判斷這一點,請使用 DescribeHyperParameterTuningJob 中參數傳回的資訊API,如上一節追蹤調校任務進度所示。例如,若您的模型效能在完成數個訓練任務後仍未改善,則可選擇停止調校任務。系統會根據最佳目標指標評估模型效能。

若要手動停止調校任務,請使用 StopHyperParameterTuningJobAPI並提供要停止的調校任務名稱。