使用 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 gradients 和 xrai 。 近似方法使用的步骤数。 更多的步骤会导致对属性或解释进行更好的近似值。 n_steps 的范围为 [2, inf],但属性的性能在 50 个步骤后开始收敛。 |
Integer | |
confidence_score_threshold_multilabel |
此参数特定于多标签分类。 置信度分数阈值,高于选择标签以生成解释。 | 浮点 |
为 AutoML 模型生成模型说明
AutoML 管道完成并生成负责任的 AI 视觉仪表板后,需要将仪表板连接到正在运行的计算实例以生成说明。 连接计算实例后,可以选择输入图像,并使用所选 XAI 算法的说明显示在右侧的边栏中。
注意
对于图像分类模型,xrai
和 integrated gradients
等方法通常比 guided_backprop
和 guided_gradCAM
提供更好的视觉解释,但计算密集型要多得多。
相关内容
- 了解如何在 Azure 机器学习工作室中使用负责任的 AI 映像仪表板。
- 详细了解负责任 AI 仪表板背后的概念和技术。
- 查看示例 YAML 和 Python 笔记本。
- 参阅这篇技术社区博客文章,详细了解如何使用负责任 AI 图像仪表板来调试图像数据和模型,并为更好的决策提供信息。