使用 YAML 和 Python 生成负责任 AI 视觉见解(预览版)

适用范围:Azure CLI ml 扩展 v2(最新版)Python SDK azure-ai-ml v2(最新版)

负责任的 AI (RAI) 仪表板将多个 RAI 工具组合在一个界面中,以帮助告知有关模型的数据驱动决策。 了解计算机视觉模型可以不同于评估表格或文本数据。 RAI 仪表板模型调试和可视化效果现在支持图像数据。

负责任的 AI 文本仪表板在模型性能、数据浏览和模型可解释性方面提供了多个成熟的 RAI 工具。 仪表板支持对计算机视觉模型进行全面评估和调试,从而为利益干系人之间的公平问题和透明度提供明智的缓解,以建立信任。

本文介绍“负责任的 AI 视觉见解”组件以及如何在管道作业中使用它来生成负责任的 AI 图像仪表板。 以下部分提供了 YAML 和 Python 中视觉见解组件和示例代码片段的规范和要求。 若要查看完整代码,请参阅负责任的 AI 的 YAML 和 Python 笔记本示例

重要

负责任的 AI 视觉见解组件目前以公共预览版提供。 此预览版在没有服务级别协议的情况下提供,不建议用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅适用于 Azure 预览版的补充使用条款

负责任的 AI 视觉见解组件

在 Azure 机器学习中构建“负责任的 AI”图像仪表板的核心组件是 RAI 视觉见解组件,这与如何为表格数据构建负责任的 AI 仪表板不同。

要求和限制

  • 所有模型都必须在 Azure 机器学习中注册。
  • 支持具有 PyTorch 风格和 HuggingFace 模型的 MLflow 模型。
  • 数据集输入必须采用 mltable 格式。
  • 出于性能原因,测试数据集限制为可视化 UI 的 5,000 行。
  • 复杂对象(如列名列表)必须以单个 JSON 编码字符串的形式提供。
  • 不支持从现有队列的子集命名或创建新队列,以及向现有队列添加图像。
  • Guided_gradcam 不适用于视觉转换器模型。
  • AutoML 计算机视觉模型不支持 SHapley 累加性解释 (SHAP)

参数

“负责任的 AI 视觉见解”组件通过 task_type 参数支持以下方案:

名称 说明 RAI 视觉见解组件中的参数名称
图像分类(二进制和多类) 预测给定图像的单个类。 task_type="image_classification"
图像多标签分类 预测给定图像的多个标签。 task_type="multilabel_image_classification"
对象检测 查找和标识给定图像的多个对象的类,并使用边界框定义对象。 task_type="object_detection"

RAI 视觉见解组件还接受以下可选参数:

参数名称 说明 类型
title 仪表板的简要说明。 字符串
maximum_rows_for_test_dataset 测试数据集中允许的最大行数。 默认值为 5,000。 Integer
classes 训练数据集中类标签的完整列表。 字符串列表
precompute_explanation 启用为模型生成说明。 布尔
enable_error_analysis 启用为模型生成错误分析。 布尔
use_model_dependency 默认情况下,负责任的 AI 环境不包括模型依赖项。 设置为 True 时,安装模型依赖项包。 布尔
use_conda 如果 True,使用 conda 安装模型依赖项包,否则使用 pip 布尔

端口

负责任 AI 视觉见解组件有三个主要输入端口:

  • 机器学习模型
  • 训练数据集
  • 测试数据集

首先,在 Azure 机器学习中注册输入模型,并在负责任的 AI 视觉见解组件的 model_input 端口中引用相同的模型。

若要生成 RAI 图像仪表板模型调试见解(如模型性能、数据资源管理器和模型可解释性),并填充可视化效果,请使用与训练模型相同的训练和测试数据集。 数据集应采用 mltable 格式,不必采用,但可以是相同的数据集。

以下示例显示了图像分类任务类型的数据集架构:

DataFrame({ 'image_path_1' : 'label_1', 'image_path_2' : 'label_2' ... })

以下示例显示了对象检测任务类型的数据集架构:

DataFrame({
'image_path_1' : [
[object_1, topX1, topY1, bottomX1, bottomY1, (optional) confidence_score],
[object_2, topX2, topY2, bottomX2, bottomY2, (optional) confidence_score],
[object_3, topX3, topY3, bottomX3, bottomY3, (optional) confidence_score]
],
'image_path_2': [
[object_1, topX4, topY4, bottomX4, bottomY4, (optional) confidence_score],
[object_2, topX5, topY5, bottomX5, bottomY5, (optional) confidence_score]
]
})

该组件将生成的见解组合到单个负责任的 AI 映像仪表板中。 有两个输出端口:

  • insights_pipeline_job.outputs.dashboard 端口包含已完成的 RAIVisionInsights 对象。
  • insights_pipeline_job.outputs.ux_json 端口包含显示最小仪表板所需的数据。

管道作业

若要创建负责任的 AI 映像仪表板,请在管道中定义 RAI 组件并提交管道作业。

可以在 YAML 文件中指定管道,如以下示例所示。

  analyse_model:
    type: command
    component: azureml://registries/AzureML-RAI-preview/components/rai_vision_insights/versions/2
    inputs:
      title: From YAML 
      task_type: image_classification
      model_input:
        type: mlflow_model
        path: azureml:<registered_model_name>:<registered model version>
      model_info: ${{parent.inputs.model_info}}
      test_dataset:
        type: mltable
        path: ${{parent.inputs.my_test_data}}
      target_column_name: ${{parent.inputs.target_column_name}}
      maximum_rows_for_test_dataset: 5000
      classes: '["cat", "dog"]'
      precompute_explanation: True
      enable_error_analysis: True

可以使用 Azure CLI az ml job create 命令提交管道。

还可以使用 Azure 机器学习工作室中的设计器 UI 创建和提交 RAI 视觉见解组件管道

指定并提交管道并执行后,仪表板应显示在已注册的模型视图中的机器学习工作室中。

与 AutoML 集成

Azure 机器学习中的自动化 ML 支持计算机视觉任务(如图像分类和物体检测)的模型训练。 用于计算机视觉的 AutoML 模型与 RAI 图像仪表板集成,用于调试 AutoML 视觉模型并解释模型预测。

要为 AutoML 计算机视觉模型生成负责任 AI 见解,请在 Azure 机器学习工作区中注册你的最佳 AutoML 模型,并通过负责任 AI 视觉见解管道运行该模型。 有关详细信息,请参阅设置 AutoML 以训练计算机视觉模型

有关与 AutoML 支持的计算机视觉任务相关的笔记本,请参阅 RAI 视觉仪表板和记分卡笔记本automl-standalone-jobs

AutoML 特定的 RAI 视觉见解参数

除了上一部分中的参数外,AutoML 模型还可以使用以下特定于 AutoML 的 RAI 视觉组件参数。

注意

几个参数特定于所选的可解释 AI (XAI) 算法,对于其他算法是可选的。

参数名称 说明 类型
model_type 模型风格。 为 AutoML 模型选择 pyfunc Enum pyfunc
fastai
dataset_type 无论是从公开可用的 URL 读取数据集中的图像,还是存储在用户的数据存储中。
对于 AutoML 模型,图像始终从用户的工作区数据存储读取,因此 AutoML 模型的数据集类型为 private。 对于 private 数据集类型,在生成说明之前,请在计算中下载图像。
Enum public
private
xai_algorithm AutoML 模型支持的 XAI 算法类型
注意:AutoML 模型不支持 SHAP。
枚举 guided_backprop
guided_gradCAM
integrated_gradients
xrai
xrai_fast 是否使用更快的 xrai 版本。 如果 True,则解释的计算时间更快,但会导致更准确的解释或归属。 布尔
approximation_method 此参数特定于 integrated gradients
用于近似整数的方法。
Enum riemann_middle
gausslegendre
n_steps 此参数特定于 integrated gradientsxrai
近似方法使用的步骤数。 更多的步骤会导致对属性或解释进行更好的近似值。 n_steps 的范围为 [2, inf],但属性的性能在 50 个步骤后开始收敛。
Integer
confidence_score_threshold_multilabel 此参数特定于多标签分类。 置信度分数阈值,高于选择标签以生成解释。 浮点

为 AutoML 模型生成模型说明

AutoML 管道完成并生成负责任的 AI 视觉仪表板后,需要将仪表板连接到正在运行的计算实例以生成说明。 连接计算实例后,可以选择输入图像,并使用所选 XAI 算法的说明显示在右侧的边栏中。

注意

对于图像分类模型,xraiintegrated gradients 等方法通常比 guided_backpropguided_gradCAM 提供更好的视觉解释,但计算密集型要多得多。