在 Amazon SageMaker 建模管线中使用 ClarifyCheck 和 QualityCheck 步骤进行基准计算、偏差检测和生命周期检查 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Amazon SageMaker 建模管线中使用 ClarifyCheck 和 QualityCheck 步骤进行基准计算、偏差检测和生命周期检查

以下主题讨论了使用 ClarifyCheckQualityCheck 步骤时,Amazon SageMaker 建模管线中的基准和模型版本的演变过程。

对于 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 模型监控器在端点上检测到违反特定类型检查的情况,您希望跳过此类对照先前基准的检查,但保留先前基准作为新模型版本的模型注册表中的 DriftCheckBaselines

True/ False 没有偏差检查 通过运行该步骤计算的新基线 模型注册表中最新批准模型的基准或作为步骤参数提供的基准
这发生在以下情况下:
  • 您正在开始管道的初始运行,构建第一个模型版本并生成初始基准。

  • 您之所以启动管道以再训练新的模型版本,是因为模型监控器在端点上检测到违反特定类型检查的情况。如果您希望跳过对照先前基准的检查,直接在模型注册表中用新计算出的基准对 DriftCheckBaselines 进行刷新

True/ True 没有偏差检查 通过运行该步骤计算出的新基准 通过运行该步骤新计算出的基准(属性 CalculatedBaseline 的值)
注意

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

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

对照 SageMaker Pipelines 中的先前基准进行偏差检测

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

SageMaker Pipelines 的基准和模型版本生命周期和演进

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

下图说明了以模型版本为中心的基准演进和生命周期视图。