

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

# 基准计算、偏差检测和生命周期以及 Amazon Pi ClarifyCheck pelin SageMaker es 中的 QualityCheck 步骤
<a name="pipelines-quality-clarify-baseline-lifecycle"></a>

以下主题讨论了使用和[`QualityCheck`](build-and-manage-steps-types.md#step-type-quality-check)步骤时，Amazon Pipelin SageMaker es 中的基准[`ClarifyCheck`](build-and-manage-steps-types.md#step-type-clarify-check)和模型版本是如何演变的。

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

## 和 QualityCheck 步骤的基线计算 ClarifyCheck 和登记
<a name="pipelines-quality-clarify-baseline-calculations"></a>

`ClarifyCheck` 和 `QualityCheck` 步骤均始终根据底层处理作业运行中的步骤输入来计算新的基准。这些新计算的基准可通过带有前缀 `CalculatedBaseline` 的属性进行访问。您可以在[模型步骤](build-and-manage-steps-types.md#step-type-model)中将这些属性记录为模型包的 `ModelMetrics`。此模型包可以注册 5 种不同的基准。您可以针对每种检查类型注册其中一种基准：运行 `ClarifyCheck` 步骤时进行的数据偏差、模型偏差和模型可解释性检查，以及运行 `QualityCheck` 步骤时进行的模型质量和数据质量检查。`register_new_baseline` 参数决定了步骤运行后在属性中设置的前缀为 `BaselineUsedForDriftCheck` 的值。

下表列出了可能的使用案例，显示了您可以为 `ClarifyCheck` 和 `QualityCheck` 步骤设置的步骤参数所产生的不同行为：


| 选择此配置时可能考虑的使用案例  | `skip_check` / `register_new_baseline` | 步骤会进行偏差检查吗？ | 步骤属性 `CalculatedBaseline` 的值 | 步骤属性 `BaselineUsedForDriftCheck` 的值 | 
| --- | --- | --- | --- | --- | 
| 您正在定期进行再训练，并启用了检查以获得新的模型版本，但您*希望保留先前基准* 作为新模型版本的模型注册表中的 `DriftCheckBaselines`。 | False/ False | 根据现有基准进行偏差检查 | 通过运行该步骤计算出的新基准 | 模型注册表中最新批准模型的基准或作为步骤参数提供的基准 | 
| 您正在定期进行再训练，并启用了检查以获得新的模型版本，但您*希望用新计算出的基准对新模型版本的模型注册表中的 `DriftCheckBaselines` 进行刷新*。 | False/ True | 根据现有基准进行偏差检查 | 通过运行该步骤计算出的新基准 | 通过运行该步骤新计算出的基准（属性 CalculatedBaseline 的值） | 
| 您之所以启动管道是为了重新训练新模型版本，是因为 Amazon SageMaker Model Monitor 在终端节点上检测到*针对特定类型检查的违规行为，并且您想跳过对照先前基准的此类检查，但要像新模型版本的模型注册表`DriftCheckBaselines`中那样延续之前的基准*。 | True/ False | 没有偏差检查 | 通过运行该步骤计算的新基线 | 模型注册表中最新批准模型的基准或作为步骤参数提供的基准 | 
| 这发生在以下情况下：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/pipelines-quality-clarify-baseline-lifecycle.html)  | True/ True | 没有偏差检查 | 通过运行该步骤计算出的新基准 | 通过运行该步骤新计算出的基准（属性 CalculatedBaseline 的值） | 

**注意**  
如果您在约束中使用科学记数法，则需要转换为浮点数。有关如何执行此操作的预处理脚本示例，请参阅[创建模型质量基准](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-baseline.html)。

使用[模型步骤](build-and-manage-steps-types.md#step-type-model)注册模型时，可以将 `BaselineUsedForDriftCheck` 属性注册为 `DriftCheckBaselines`。然后，Model Monitor 可以使用这些基准文件进行模型和数据质量检查。此外，这些基线还可以在 ClarifyCheckStep 和`QualityCheck`步骤中使用，将新训练的模型与在模型注册表中注册的现有模型进行比较，以备将来的管道运行。

## 根据管道中以前的基线进行漂移检测
<a name="pipelines-quality-clarify-baseline-drift-detection"></a>

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

## 基线和模型版本的生命周期以及管道的演变
<a name="pipelines-quality-clarify-baseline-evolution"></a>

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

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

![\[基线演变和生命周期 model-version-centric视图。\]](http://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/images/pipelines/Baseline-Lifecycle.png)
