使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。

使用 Amazon SageMaker 改进机器学习模型的治理

随着越来越多的公司在其主流企业应用程序中采用机器学习 (ML),他们的更多业务决策受到 ML 模型的影响。 因此,在所有 ML 模型中简化访问控制并增强透明度,可以更轻松地验证您的模型是否运行良好,并在它们运行不佳时采取措施。

在这篇文章中,我们探讨了公司如何使用集中式仪表板和模型的详细文档来提高模型的可见性,使用两个新功能:SageMaker 模型卡和 SageMaker 模型仪表板。 SageMaker 客户可以免费使用这两项功能。

模型治理概述

模型治理是一个框架,它提供了对模型开发、验证和使用的系统可见性。 模型治理适用于端到端 ML 工作流程,从识别 ML 用例到通过警报、报告和仪表板对已部署模型进行持续监控。 一个实施良好的模型治理框架应尽量减少查看、跟踪和管理生命周期任务所需的接口数量,以便更轻松地大规模监控 ML 生命周期。

如今,组织将大量技术专长投入到构建工具中,以自动化大部分治理和可审计性工作流程。 例如,模型构建者需要主动记录模型规范,例如模型的预期用途、风险评级和模型应衡量的性能标准。 此外,他们还需要记录对模型行为的观察,并记录他们做出某些关键决策的原因,例如他们优化模型的目标函数。

公司通常使用 Excel 或电子邮件等工具来捕获和共享此类模型信息,以用于批准生产使用。 但随着 ML 开发规模的增加,信息很容易丢失或放错地方,跟踪这些细节很快变得不可行。 此外,在部署这些模型之后,您可以将来自不同来源的数据拼接在一起,以获得对所有模型、端点、监控历史和沿袭的端到端可见性。 如果没有这样的视图,您很容易忘记您的模型,并且可能不知道何时需要对它们采取行动。 这个问题在受到高度监管的行业中更加严重,因为您必须遵守要求您采取此类措施的法规。

随着模型数量开始增加,管理自定义工具可能成为一项挑战,并使组织专注于核心业务需求的时间越来越少。 在以下部分中,我们将探讨 SageMaker 模型卡和 SageMaker 模型仪表板如何帮助您扩展治理工作。

SageMaker 模型卡

模型卡使您能够标准化模型的记录方式,从而实现对模型生命周期(从设计、构建、训练和评估)的可见性。 模型卡旨在成为有关模型的业务和技术元数据的单一真实来源,可以可靠地用于审计和文档目的。 它们提供了对模型治理很重要的模型概况介绍。

模型卡允许用户编写和存储决策,例如选择目标函数进行优化的原因,以及预期用途和风险评级等详细信息。 您还可以附加和查看评估结果,并记下观察结果以备将来参考。

对于在 SageMaker 上训练的模型,模型卡可以发现并自动填充细节,例如训练作业、训练数据集、模型工件和推理环境,从而加速创建卡片的过程。 借助 SageMaker Python SDK,您可以使用评估指标无缝更新模型卡。

模型卡为模型风险经理、数据科学家和 ML 工程师提供了执行以下任务的能力:

  • 记录模型要求,例如风险评级、预期用途、限制和预期性能
  • 为 SageMaker 训练的模型自动填充模型卡
  • 为非 SageMaker 模型自带信息 (BYOI)
  • 上传并共享模型和数据评估结果
  • 定义和捕获自定义信息
  • 捕获模型卡状态(草稿、待审或已批准生产)
  • 从访问模型卡集线器 AWS管理控制台
  • 创建、编辑、查看、导出、克隆和删除模型卡
  • 使用触发工作流程 亚马逊EventBridge 集成模型卡状态更改事件

使用控制台创建 SageMaker 模型卡

您可以使用 SageMaker 控制台轻松创建模型卡。 在这里您可以看到所有现有的模型卡并根据需要创建新的。

创建模型卡时,您可以记录关键模型信息,例如模型的构建者、开发原因、独立评估的执行情况,以及在将模型用于业务应用程序之前需要考虑的任何观察结果。

要在控制台上创建模型卡,请完成以下步骤:

  1. 输入模型概览详细信息。
  2. 输入训练详细信息(如果模型是在 SageMaker 上训练的,则自动填充)。
  3. 上传评估结果。
  4. 添加其他详细信息,例如建议和道德考虑。

创建模型卡后,您可以选择一个版本来查看它。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。

以下屏幕截图显示了我们模型卡的详细信息。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。

您还可以导出模型卡以作为 PDF 共享。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。

通过 SageMaker Python SDK 创建和探索 SageMaker 模型卡

与模型卡交互不限于控制台。 您还可以使用 SageMaker Python SDK 创建和探索模型卡。 SageMaker Python SDK 允许数据科学家和 ML 工程师轻松地与 SageMaker 组件交互。 以下代码片段展示了使用新添加的 SageMaker Python SDK 功能创建模型卡的过程。

确保您安装了最新版本的 SageMaker Python SDK:

$ pip install --upgrade "sagemaker>=2"

使用 SageMaker 训练和部署模型后,您可以使用来自 SageMaker 模型和训练作业的信息自动将信息填充到模型卡中。

使用 SageMaker Python SDK 并传递 SageMaker 模型名称,我们可以自动收集基本模型信息。 SageMaker模型ARN、训练环境、模型输出等信息 亚马逊简单存储服务 (Amazon S3) 位置全部自动填充。 我们可以添加其他模型事实,例如描述、问题类型、算法类型、模型创建者和所有者。 请参见以下代码:

model_overview = ModelOverview.from_name(
    model_name=model_name,
    sagemaker_session=sagemaker_session,
    model_description="This is a simple binary classification model used for Model Card demo",
    problem_type="Binary Classification",
    algorithm_type="Logistic Regression",
    model_creator="DEMO-ModelCard",
    model_owner="DEMO-ModelCard",
)
print(model_overview.model_id) # Provides us with the SageMaker Model ARN
print(model_overview.inference_environment.container_image) # Provides us with the SageMaker inference container URI
print(model_overview.model_artifact) # Provides us with the S3 location of the model artifacts

我们还可以自动收集基本的培训信息,如培训工作 ARN、培训环境和培训指标。 可以添加额外的训练细节,比如训练目标函数和观察。 请参见以下代码:

objective_function = ObjectiveFunction(
    function=Function(
        function=ObjectiveFunctionEnum.MINIMIZE,
        facet=FacetEnum.LOSS,
    ),
    notes="This is a example objective function.",
)
training_details = TrainingDetails.from_model_overview(
    model_overview=model_overview,
    sagemaker_session=sagemaker_session,
    objective_function=objective_function,
    training_observations="Additional training observations could be put here."
)

print(training_details.training_job_details.training_arn) # Provides us with the SageMaker Model ARN
print(training_details.training_job_details.training_environment.container_image) # Provides us with the SageMaker training container URI
print([{"name": i.name, "value": i.value} for i in training_details.training_job_details.training_metrics]) # Provides us with the SageMaker Training Job metrics

如果我们有可用的评估指标,我们也可以将它们添加到模型卡中:

my_metric_group = MetricGroup(
    name="binary classification metrics",
    metric_data=[Metric(name="accuracy", type=MetricTypeEnum.NUMBER, value=0.5)]
)
evaluation_details = [
    EvaluationJob(
        name="Example evaluation job",
        evaluation_observation="Evaluation observations.",
        datasets=["s3://path/to/evaluation/data"],
        metric_groups=[my_metric_group],
    )
]

我们还可以添加有关模型的其他信息,以帮助进行模型治理:

intended_uses = IntendedUses(
    purpose_of_model="Test Model Card.",
    intended_uses="Not used except this test.",
    factors_affecting_model_efficiency="No.",
    risk_rating=RiskRatingEnum.LOW,
    explanations_for_risk_rating="Just an example.",
)
additional_information = AdditionalInformation(
    ethical_considerations="You model ethical consideration.",
    caveats_and_recommendations="Your model's caveats and recommendations.",
    custom_details={"custom details1": "details value"},
)

在我们提供了我们需要的所有细节之后,我们可以使用前面的配置创建模型卡:

model_card_name = "sample-notebook-model-card"
my_card = ModelCard(
    name=model_card_name,
    status=ModelCardStatusEnum.DRAFT,
    model_overview=model_overview,
    training_details=training_details,
    intended_uses=intended_uses,
    evaluation_details=evaluation_details,
    additional_information=additional_information,
    sagemaker_session=sagemaker_session,
)
my_card.create()

SageMaker SDK 还提供更新、加载、列出、导出和删除模型卡的功能。

要了解有关模型卡的更多信息,请参阅 开发者指南 并按照 Free Introduction 示例笔记本开始。

SageMaker 模型仪表板

模型仪表板是在帐户中创建的所有模型的集中存储库。 这些模型通常是通过在 SageMaker 上训练创建的,或者您可以将在其他地方训练过的模型带到 SageMaker 上托管。

模型仪表板为 IT 管理员、模型风险经理或业务负责人提供单一界面,以查看所有部署的模型及其执行情况。 您可以查看端点、批量转换作业和监控作业,以深入了解模型性能。 组织可以深入了解哪些模型缺少或不活动的监视器,并使用 SageMaker API 添加它们,以确保所有模型都经过数据漂移、模型漂移、偏差漂移和特征归因漂移的检查。

以下屏幕截图显示了模型仪表板的示例。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。

模型仪表板提供了所有模型的概览、它们的风险等级以及这些模型在生产中的表现。 它通过从整个 SageMaker 中提取信息来实现这一点。 性能监控信息是通过 Amazon SageMaker模型监控器,您还可以查看有关通过 SageMaker 批量转换作业为批量预测调用的模型的信息。 捕获模型的训练方式、使用的数据等沿袭信息,并从模型卡中提取信息。

模型监视器监控生产中用于批量推理或实时端点的 SageMaker 模型的质量。 您可以通过 SageMaker API 设置持续监控或计划监控,并通过模型仪表板编辑警报设置。 您可以设置警报,在模型质量出现偏差时通知您。 及早主动检测这些偏差使您能够采取纠正措施,例如重新训练模型、审核上游系统或修复质量问题,而无需手动监控模型或构建额外的工具。 模型仪表板可让您快速了解正在监控哪些模型以及它们的性能如何。 有关模型监视器的更多信息,请访问 监控模型的数据和模型质量、偏差和可解释性.

当您在模型仪表板中选择一个模型时,您可以更深入地了解该模型,例如模型卡(如果存在)、模型沿袭、有关模型已部署到的端点的详细信息以及该模型的监控计划模型。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。

如果需要,此视图允许您创建模型卡。 监控计划也可以通过模型仪表板激活、停用或编辑。

对于没有监控计划的模型,您可以通过为模型部署到的端点启用模型监控器来进行设置。 通过警报详细信息和状态,您将收到显示数据漂移、模型漂移、偏差漂移或特征漂移的模型的通知,具体取决于您设置的监视器。

让我们看一下如何设置模型监控的示例工作流。 这个过程的关键步骤是:

  1. 捕获发送到端点(或批量转换作业)的数据。
  2. 建立基线(针对每种监控类型)。
  3. 创建一个模型监视器计划,将实时预测与基线进行比较,以报告违规情况并触发警报。

根据警报,您可以采取措施,例如将端点回滚到以前的版本或使用新数据重新训练模型。 在执行此操作时,可能需要跟踪模型的训练方式,这可以通过可视化模型的沿袭来完成。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。 使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。

除了能够深入了解模型的具体细节之外,模型仪表板还提供了有关账户中整个模型生态系统的一组丰富信息。 要了解有关模型仪表板的更多信息,请参阅 开发者指南.

结论

模型治理很复杂,通常涉及许多特定于组织或行业的定制需求。 这可能基于您的组织需要遵守的监管要求、组织中存在的角色类型以及正在使用的模型类型。 没有一种放之四海而皆准的治理方法,拥有合适的工具非常重要,这样才能实施稳健的治理流程。

借助 SageMaker 中专门构建的 ML 治理工具,组织可以实施正确的机制,以针对其特定用例改进 ML 项目的控制和可见性。 试用模型卡和模型仪表板,并留下您的评论以及问题和反馈。 要了解有关模型卡和模型仪表板的更多信息,请参阅 开发者指南.


关于作者

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。基里特·达达卡 是在 SageMaker Service SA 团队工作的 ML 解决方案架构师。 在加入 AWS 之前,Kirit 在早期的 AI 初创公司工作,随后在 AI 研究、MLOps 和技术领导方面担任过一段时间的咨询工作。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。马克卡普 是 SageMaker 服务团队的 ML 架构师。 他专注于帮助客户大规模设计、部署和管理 ML 工作负载。 在业余时间,他喜欢旅行和探索新的地方。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。拉古·拉梅沙 是 Amazon SageMaker 服务团队的一名 ML 解决方案架构师。 他专注于帮助客户大规模构建、部署和迁移 ML 生产工作负载到 SageMaker。 他专攻机器学习、人工智能和计算机视觉领域,并拥有 UT Dallas 的计算机科学硕士学位。 在空闲时间,他喜欢旅行和摄影。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。拉姆·维塔尔 是 AWS 的机器学习专家解决方案架构师。 他在架构和构建分布式、混合和云应用程序方面拥有 20 多年的经验。 他热衷于构建安全且可扩展的 AI/ML 和大数据解决方案,以帮助企业客户进行云采用和优化之旅,以改善他们的业务成果。 在业余时间,他喜欢网球、摄影和动作片。

使用 Amazon SageMaker PlatoBlockchain 数据智能改善机器学习模型的治理。 垂直搜索。 人工智能。萨希尔赛尼 是 Amazon Web Services 的 ISV 解决方案架构师。 他与 AWS 战略客户产品和工程团队合作,帮助他们使用适用于 AI/ML、容器、HPC 和 IoT 的 AWS 服务制定技术解决方案。 他帮助为企业客户建立了 AI/ML 平台。

时间戳记:

更多来自 AWS机器学习