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

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

负责任的 AI (RAI) 仪表板将多个 RAI 工具组合在一个界面中,以帮助告知有关模型的数据驱动决策。 理解自然语言处理 (NLP) 模型可能不同于对表格数据进行评估。 RAI 仪表板模型调试和可视化效果现在支持文本数据。

负责任 AI 文本仪表板在错误分析、模型可解释性、不公平评估和缓解方面提供了多个成熟的 RAI 工具。 该仪表板支持对 NLP 模型进行整体评估和调试,以帮助做出明智的业务决策。

本文介绍了“负责任 AI 文本见解”组件以及如何在管道作业中使用它来生成负责任 AI 文本仪表板。 以下部分提供了 YAML 和 Python 中文本见解组件和示例代码片段的规范和要求。

重要

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

负责任 AI 文本见解组件

Azure 机器学习负责任 AI 文本见解组件将生成的见解组装到单一的负责任 AI 文本仪表板中,是用于构建 RAI 文本仪表板的唯一核心组件。 此构造不同于表格数据的负责任 AI 管道,后者使用多个组件。

要求和限制

  • 所有模型都必须在 Azure 机器学习中注册。
  • 支持具有 sklearn (scikit-learn) 或 PyTorch 风格的 MLflow 模型以及 HuggingFace 模型。
  • 训练和测试数据集输入必须采用 mltable 格式。
  • 出于性能原因,测试数据集限制为可视化 UI 的 5,000 行。

参数

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

名称 描述 参数值
文本分类 预测给定文本内容的类 task_type="text_classification"
多标签文本分类 预测给定文本内容的多个类 task_type="multilabel_text_classification"
文本问题解答 根据文本数据集评估问答模型 task_type="question_answering"

该组件接受以下可选参数:

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

端口

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

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

训练和测试数据集不必是但可以是同一数据集。 提供模型输入的最简单方法是注册该模型,并在负责任 AI 文本见解组件的 model_input 端口中引用同一模型。

有两个输出端口:

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

管道作业

若要创建负责任 AI 文本仪表板,可以在管道中定义 RAI 组件并提交管道作业。

你可以在 YAML 文件中指定管道(如以下示例所示),并使用 Azure CLI az ml job create 命令提交该文件。

  analyse_model: 
    type: command 
    component: azureml://registries/AzureML/components/rai_text_insights/versions/2 
    inputs: 
      title: From YAML  
      task_type: text_classification 
      model_input: 
        type: mlflow_model 
        path: {azureml_model_id}
      model_info: ${{{{parent.inputs.model_info}}}} 
      train_dataset: ${{{{parent.inputs.my_training_data}}}} 
      test_dataset: ${{{{parent.inputs.my_test_data}}}} 
      target_column_name: {target_column_name} 
      maximum_rows_for_test_dataset: 5000 
      classes: '[]' 
      enable_explanation: True 
      enable_error_analysis: True