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

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

基准计算、偏差检测和生命周期 ClarifyCheck 以及 Amazon SageMaker 模型构建管道中的 QualityCheck 步骤

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

对于 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步骤中使用,将新训练的模型与在模型注册表中注册的现有模型进行比较,以备将来的管道运行。

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

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

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

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

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