基准计算、偏差检测和生命周期以及 Amazon Pi ClarifyCheck pelin SageMaker es 中的 QualityCheck 步骤 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

基准计算、偏差检测和生命周期以及 Amazon Pi ClarifyCheck pelin SageMaker es 中的 QualityCheck 步骤

以下主题讨论了使用和QualityCheck步骤时,Amazon Pipelin SageMaker es 中的基准ClarifyCheck和模型版本是如何演变的。

对于 ClarifyCheck 步骤,基准是位于带有后缀 constraints 的步骤属性中的单个文件。对于 QualityCheck 步骤,基准是位于步骤属性中的两个文件的组合:一个文件带有后缀 statistics,另一个文件带有后缀 constraints。在以下主题中,我们将讨论这些属性,并在前缀中说明它们的使用方式,以及在这两个管道步骤中对基准行为和生命周期的影响。例如,ClarifyCheck 步骤始终在 CalculatedBaselineConstraints 属性中计算和分配新的基准,而 QualityCheck 步骤在 CalculatedBaselineConstraintsCalculatedBaselineStatistics 属性中也执行相同的操作。

和 QualityCheck 步骤的基线计算 ClarifyCheck 和登记

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 的值)
注意

如果您在约束中使用科学记数法,则需要转换为浮点数。有关如何执行此操作的预处理脚本示例,请参阅创建模型质量基准

使用模型步骤注册模型时,可以将 BaselineUsedForDriftCheck 属性注册为 DriftCheckBaselines。然后,Model Monitor 可以使用这些基准文件进行模型和数据质量检查。此外,这些基线还可以在 ClarifyCheckStep 和QualityCheck步骤中使用,将新训练的模型与在模型注册表中注册的现有模型进行比较,以备将来的管道运行。

根据管道中以前的基线进行漂移检测

QualityCheck 步骤而言,当您启动管道进行定期再训练以获得新的模型版本时,如果数据质量和数据偏差在先前批准的模型版本的基准上存在 违规情况的架构(constraint_violations.json 文件),则您可能不想运行训练步骤。在运行 ClarifyCheck 步骤时,如果模型质量、模型偏差或模型可解释性违反了先前批准的模型版本的已注册基准,则您可能不想注册新训练的模型版本。在这些情况下,您可以通过将相应检查步骤的 skip_check 属性设置为 False 来启用所需的检查,如果对照先前基准检测到违规行为,则 ClarifyCheckQualityCheck 步骤将失败。然后,管道进程将不再继续,这样就不会注册偏离基准的模型。ClarifyCheckQualityCheck 步骤能够获得给定模型包组的最新批准模型版本的 DriftCheckBaselines,并与之进行比较。对于 QualityCheck 步骤,除了 supplied_baseline_statistics 之外,也可以直接通过 supplied_baseline_constraints 提供先前的基准,并且这些基准始终优先于从模型包组中提取的任何基准。

基准和模型版本生命周期以及流水线的演变

ClarifyCheckQualityCheck 步骤的 register_new_baseline 设置为 False,即可通过步骤属性前缀 BaselineUsedForDriftCheck 访问先前的基准。然后,当您使用模型步骤注册模型时,就可以将这些基准注册为新模型版本中的 DriftCheckBaselines。在模型注册表中批准此新模型版本后,此模型版本中的 DriftCheckBaseline 将可用于下一个管道进程中的 ClarifyCheckQualityCheck 步骤。如果要刷新某种检查类型的基准以用于将来的模型版本,可以将 register_new_baseline 设置为 True,以便带前缀 BaselineUsedForDriftCheck 的属性成为新计算出的基准。通过这些方式,您可以为将来训练的模型保留首选基准,或者在需要时刷新基准以进行偏差检查,从而在整个模型训练迭代中管理基准演进和生命周期。

下图说明了基线演变和生命周期的 model-version-centric视图。

基线演变和生命周期 model-version-centric视图。