本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
基准计算、偏差检测和生命周期以及 Amazon Pi ClarifyCheck pelin SageMaker es 中的 QualityCheck 步骤
以下主题讨论了使用和QualityCheck步骤时,Amazon Pipelin SageMaker es 中的基准ClarifyCheck和模型版本是如何演变的。
对于 ClarifyCheck
步骤,基准是位于带有后缀 constraints
的步骤属性中的单个文件。对于 QualityCheck
步骤,基准是位于步骤属性中的两个文件的组合:一个文件带有后缀 statistics
,另一个文件带有后缀 constraints
。在以下主题中,我们将讨论这些属性,并在前缀中说明它们的使用方式,以及在这两个管道步骤中对基准行为和生命周期的影响。例如,ClarifyCheck
步骤始终在 CalculatedBaselineConstraints
属性中计算和分配新的基准,而 QualityCheck
步骤在 CalculatedBaselineConstraints
和 CalculatedBaselineStatistics
属性中也执行相同的操作。
和 QualityCheck 步骤的基线计算 ClarifyCheck 和登记
ClarifyCheck
和 QualityCheck
步骤均始终根据底层处理作业运行中的步骤输入来计算新的基准。这些新计算的基准可通过带有前缀 CalculatedBaseline
的属性进行访问。您可以在模型步骤中将这些属性记录为模型包的 ModelMetrics
。此模型包可以注册 5 种不同的基准。您可以针对每种检查类型注册其中一种基准:运行 ClarifyCheck
步骤时进行的数据偏差、模型偏差和模型可解释性检查,以及运行 QualityCheck
步骤时进行的模型质量和数据质量检查。register_new_baseline
参数决定了步骤运行后在属性中设置的前缀为 BaselineUsedForDriftCheck
的值。
下表列出了可能的使用案例,显示了您可以为 ClarifyCheck
和 QualityCheck
步骤设置的步骤参数所产生的不同行为:
选择此配置时可能考虑的使用案例 | skip_check / register_new_baseline |
步骤会进行偏差检查吗? | 步骤属性 CalculatedBaseline 的值 |
步骤属性 BaselineUsedForDriftCheck 的值 |
---|---|---|---|---|
您正在定期进行再训练,并启用了检查以获得新的模型版本,但您希望保留先前基准 作为新模型版本的模型注册表中的 |
False / False |
根据现有基准进行偏差检查 | 通过运行该步骤计算出的新基准 | 模型注册表中最新批准模型的基准或作为步骤参数提供的基准 |
您正在定期进行再训练,并启用了检查以获得新的模型版本,但您希望用新计算出的基准对新模型版本的模型注册表中的 |
False / True |
根据现有基准进行偏差检查 | 通过运行该步骤计算出的新基准 | 通过运行该步骤新计算出的基准(属性 CalculatedBaseline 的值) |
您之所以启动管道是为了重新训练新模型版本,是因为 Amazon SageMaker Model Monitor 在终端节点上检测到针对特定类型检查的违规行为,并且您想跳过对照先前基准的此类检查,但要像新模型版本的模型注册表 |
True / False |
没有偏差检查 | 通过运行该步骤计算的新基线 | 模型注册表中最新批准模型的基准或作为步骤参数提供的基准 |
这发生在以下情况下:
|
True / True |
没有偏差检查 | 通过运行该步骤计算出的新基准 | 通过运行该步骤新计算出的基准(属性 CalculatedBaseline 的值) |
注意
如果您在约束中使用科学记数法,则需要转换为浮点数。有关如何执行此操作的预处理脚本示例,请参阅创建模型质量基准。
使用模型步骤注册模型时,可以将 BaselineUsedForDriftCheck
属性注册为 DriftCheckBaselines
。然后,Model Monitor 可以使用这些基准文件进行模型和数据质量检查。此外,这些基线还可以在 ClarifyCheckStep 和QualityCheck
步骤中使用,将新训练的模型与在模型注册表中注册的现有模型进行比较,以备将来的管道运行。
根据管道中以前的基线进行漂移检测
就 QualityCheck
步骤而言,当您启动管道进行定期再训练以获得新的模型版本时,如果数据质量和数据偏差在先前批准的模型版本的基准上存在 违规情况的架构(constraint_violations.json 文件),则您可能不想运行训练步骤。在运行 ClarifyCheck
步骤时,如果模型质量、模型偏差或模型可解释性违反了先前批准的模型版本的已注册基准,则您可能不想注册新训练的模型版本。在这些情况下,您可以通过将相应检查步骤的 skip_check
属性设置为 False
来启用所需的检查,如果对照先前基准检测到违规行为,则 ClarifyCheck
和 QualityCheck
步骤将失败。然后,管道进程将不再继续,这样就不会注册偏离基准的模型。ClarifyCheck
和 QualityCheck
步骤能够获得给定模型包组的最新批准模型版本的 DriftCheckBaselines
,并与之进行比较。对于 QualityCheck
步骤,除了 supplied_baseline_statistics
之外,也可以直接通过 supplied_baseline_constraints
提供先前的基准,并且这些基准始终优先于从模型包组中提取的任何基准。
基准和模型版本生命周期以及流水线的演变
将 ClarifyCheck
和 QualityCheck
步骤的 register_new_baseline
设置为 False
,即可通过步骤属性前缀 BaselineUsedForDriftCheck
访问先前的基准。然后,当您使用模型步骤注册模型时,就可以将这些基准注册为新模型版本中的 DriftCheckBaselines
。在模型注册表中批准此新模型版本后,此模型版本中的 DriftCheckBaseline
将可用于下一个管道进程中的 ClarifyCheck
和 QualityCheck
步骤。如果要刷新某种检查类型的基准以用于将来的模型版本,可以将 register_new_baseline
设置为 True
,以便带前缀 BaselineUsedForDriftCheck
的属性成为新计算出的基准。通过这些方式,您可以为将来训练的模型保留首选基准,或者在需要时刷新基准以进行偏差检查,从而在整个模型训练迭代中管理基准演进和生命周期。
下图说明了基线演变和生命周期的 model-version-centric视图。