Amazon SageMaker Pipelines 中具有 和 QualityCheck 步驟的基準計算、偏離偵測 ClarifyCheck 和生命週期 - Amazon SageMaker

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

Amazon SageMaker Pipelines 中具有 和 QualityCheck 步驟的基準計算、偏離偵測 ClarifyCheck 和生命週期

下列主題討論使用 和 QualityCheck 步驟時,基準ClarifyCheck和模型版本如何在 Amazon SageMaker Pipelines 中進化。

對於 ClarifyCheck 步驟而言,基準是位於具有尾碼 constraints 之步驟屬性中的單一檔案。對於 QualityCheck 步驟而言,基準是位於步驟屬性中的兩個檔案的組合:一個具有尾碼 statistics,另一個具有尾碼 constraints。在下列主題中,我們討論這兩個管道步驟中的這些屬性 (包含描述其使用方式的字首)、有影響力的基準行為以及生命週期。例如,ClarifyCheck 步驟一律會計算並指派 CalculatedBaselineConstraints 屬性中的新基準,而且 QualityCheck 步驟會在 CalculatedBaselineConstraintsCalculatedBaselineStatistics 屬性中執行相同的動作。

ClarifyCheck 和 QualityCheck 步驟的基準計算和註冊

ClarifyCheckQualityCheck 步驟一律會根據基礎處理任務執行的步驟輸入來計算新的基準。這些新計算的基準可透過具有字首 CalculatedBaseline 的屬性存取。您可以將這些屬性記錄為 模型步驟 中的模型套件之 ModelMetrics。此模型套件可以使用 5 個不同的基準註冊。您可以使用每種檢查類型的一個基準來註冊:資料偏差、模型偏差、執行 ClarifyCheck 步驟過程中的模型可解釋性、模型品質,以及執行 QualityCheck 步驟過程中的資料品質。在步驟執行之後,register_new_baseline 參數會指定在具有字首 BaselineUsedForDriftCheck 的屬性中設定的值。

下列潛在使用案例表格顯示了您可以為 ClarifyCheckQualityCheck 步驟設定的步驟參數所產生的不同行為:

您可能會考慮選取此組態之可能的使用案例 skip_check / register_new_baseline 步驟是否會執行漂移檢查? 步驟屬性 CalculatedBaseline 的值 步驟屬性 BaselineUsedForDriftCheck 的值

您正在進行定期重新訓練,並啟用檢查以取得新模型版本,但是您想沿用先前的基準,作為新模型版本的模型註冊表中的 DriftCheckBaselines

False/ False 對照現有基準執行漂移檢查 透過執行步驟計算的新基準 來自模型註冊表中最新核准之模型的基準或作為步驟參數提供的基準

您正在進行定期重新訓練,並啟用檢查以取得新模型版本,但想要使用新模型版本之新計算的基準重新整理模型註冊表中的 DriftCheckBaselines

False/ True 對照現有基準執行漂移檢查 透過執行步驟計算的新基準 透過執行步驟新計算的基準 (屬性 CalculatedBaseline 的值)

您正在啟動管道以重新訓練新的模型版本,因為 Amazon SageMaker Model Monitor 在端點上偵測到特定類型檢查的違規,而且您想要略過此類型檢查與上一個基準的比對,但繼續先前的基準,如同新模型版本的模型登錄DriftCheckBaselines檔一樣

True/ False 無漂移檢查 透過執行計算的新基準 來自模型註冊表中最新核准之模型的基準或作為步驟參數提供的基準
這發生的情況如下:
  • 您正在開始管道的初始執行、建置第一個模型版本,並產生初始基準。

  • 您正在啟動管道以重新訓練新模型版本,因為 Model Monitor 針對特定類型的檢查在端點上偵測到了違規。您想要略過針對先前基準的檢查,並直接使用模型註冊表中新計算的基準重新整理 DriftCheckBaselines

True/ True 無漂移檢查 透過執行步驟計算的新基準 透過執行步驟新計算的基準 (屬性 CalculatedBaseline 的值)
注意

如果您在限制中使用科學表示法,則需要轉換為浮點數。如需執行此動作的預處理指令碼範例,請參閱 Create a Model Quality Baseline

當您使用 模型步驟 註冊模型時,可以將 BaselineUsedForDriftCheck 屬性註冊為 DriftCheckBaselines。然後,Model Monitor 可以使用這些基準檔案進行模型和資料品質檢查。此外,這些基準也可用於 ClarifyCheckStep 和 QualityCheck 步驟,以比較新訓練的模型與在模型登錄檔中註冊以供未來管道執行的現有模型。

管道中針對先前基準的漂移偵測

QualityCheck 步驟中,當您啟動定期重新訓練的管道以取得新模型版本時,如果資料品質和資料偏差在先前核准的模型版本的基準方面有 違規的結構描述 (constraint_violations.json 檔案),您可能不想執行訓練步驟。如果在執行 ClarifyCheck 步驟時模型品質、模型偏差或模型可解釋性違反先前核准之模型版本的註冊基準,您也可能不想註冊新訓練的模型版本。在這些情況下,您可以透過將對應檢查步驟集的 skip_check 屬性設定為 False 來啟用所需的檢查。如果針對先前的基準線偵測到違規,則會導致 ClarifyCheckQualityCheck 步驟失敗。然後管道程序不會繼續進行,因此不會註冊從基準漂移的模型。ClarifyCheckQualityCheck 步驟可以取得最新核准之模型版本的 DriftCheckBaselines (屬於要針對其進行比較的指定模型套件群組)。先前的基準也可以直接透過 supplied_baseline_constraints (如果是 QualityCheck 步驟,則還可以使用 supplied_baseline_statistics) 提供,而且一律優先於從模型套件群組中提取的所有基準。

基準和模型版本生命週期,以及使用 Pipelines 的進化

ClarifyCheckQualityCheck 步驟的 register_new_baseline 設定為 False 後,您可以透過步驟屬性字首 BaselineUsedForDriftCheck 存取先前的基準。然後,您可以在使用 模型步驟 註冊模型時,將這些基準註冊為新模型版本中的 DriftCheckBaselines。在模型註冊表中核准此新模型版本後,此模型版本中的 DriftCheckBaseline 即可用於下一個管道程序中的 ClarifyCheckQualityCheck 步驟。如果您要重新整理未來模型版本之特定檢查類型的基準,可以將 register_new_baseline 設定為 True,以使具有字首 BaselineUsedForDriftCheck 的屬性成為新計算的基準。透過這些方式,您可以為未來訓練的模型保留偏好的基準,或在需要時重新整理漂移檢查的基準,以便在整個模型訓練重複過程中管理基準演進和生命週期。

下圖說明 model-version-centric基準演變和生命週期的檢視。

基準演變和生命週期的 model-version-centric檢視。