使用 What-If 工具

您可以通过交互式信息中心,在笔记本环境中使用 What-If 工具 (WIT) 来检查 AI Platform Prediction 模型。What-If 工具与 TensorBoard、Jupyter 笔记本、Colab 笔记本和 JupyterHub 集成。它还预装在 Vertex AI Workbench 用户管理的笔记本 TensorFlow 实例上。

本页面介绍如何使用 What-If 工具分析已部署在 AI Platform 上且经过训练的模型。了解如何部署模型

安装 What-If 工具

下面介绍如何在各种笔记本环境中安装 witwidget

用户管理的笔记本

witwidget 已安装在用户管理的笔记本实例中。

您可以将 WIT 教程代码库克隆到实例中,从而将 What-If 工具教程加载到笔记本实例中。请参阅如何将 GitHub 代码库克隆到用户管理的笔记本实例中

Jupyter 笔记本

通过以下命令为 Jupyter 安装和启用 WIT:

pip install witwidget
jupyter nbextension install --py --symlink --sys-prefix witwidget
jupyter nbextension enable --py --sys-prefix witwidget

如需使用支持 GPU 的 TensorFlow (tensorflow-gpu),请安装兼容 GPU 的 witwidget 版本:

pip install witwidget-gpu
jupyter nbextension install --py --symlink --sys-prefix witwidget
jupyter nbextension enable --py --sys-prefix witwidget

您只需在 Jupyter 环境中运行一次这些安装命令。之后,只要启动 Jupyter 内核就能使用 What-If 工具。

Colab 笔记本

请运行包含以下内容的单元,将该微件安装到该笔记本内核的运行时中。

!pip install witwidget

如需使用支持 GPU 的 TensorFlow (tensorflow-gpu),请安装兼容 GPU 的 witwidget 版本:

!pip install witwidget-gpu

JupyterLab

如果是用户管理的笔记本之外的 JupyterLab,请按照下列说明操作。

请运行包含以下内容的单元,为 JupyterLab 安装并启用 WIT:

!pip install witwidget
!jupyter labextension install wit-widget
!jupyter labextension install @jupyter-widgets/jupyterlab-manager

如要支持 TensorFlow GPU,请使用 witwidget-gpu 软件包:

!pip install witwidget-gpu
!jupyter labextension install wit-widget
!jupyter labextension install @jupyter-widgets/jupyterlab-manager

请注意,您可能需要运行 !sudo jupyter labextension ... 命令,具体取决于笔记本的设置。

针对 What-If 工具调整预测输出

如果有模型的输出不符合 What-If 工具的要求,您需要在代码中定义预测调整函数。

What-If 工具需要以下输入格式:

  • 分类模型:类别分数列表
  • 回归模型:回归分数

举例来说,XGBoost 二元分类模型仅返回正类别的分数。由于 What-If 工具需要每个类别的分数,您需要使用以下预测调整函数来获得同时包含正负分数的列表:

def adjust_prediction(pred):
  return [1 - pred, pred]

请先在笔记本代码单元中定义预测调整函数,然后再配置 What-If 工具。

配置 What-If 工具

使用 What-If 工具,您可以检查一个模型,或比较两个模型。在 WitConfigBuilder 中,填入适合您的 Google Cloud 项目、AI Platform Prediction 模型和版本的值,以及适合您模型的其他值。

  1. 导入 witwidget

    import witwidget
    
  2. 创建 WitConfigBuilder ,以将模型和 AI Platform Prediction 项目的各种相关参数传递给 What-If 工具。使用 What-If 工具,您可以检查一个模型,或比较两个模型。填入适合您的 Google Cloud 项目、AI Platform Prediction 模型和版本的值,以及适合您模型的其他值。

    检查模型

    此配置构建器展示如何使用 What-If 工具检查一个模型。请参阅已部署 XGBoost 模型的完整示例笔记本

    请参阅用于 WitConfigBuilder 的代码,详细了解各种方法。

    PROJECT_ID = 'YOUR_PROJECT_ID'
    MODEL_NAME = 'YOUR_MODEL_NAME'
    VERSION_NAME = 'YOUR_VERSION_NAME'
    TARGET_FEATURE = 'mortgage_status'
    LABEL_VOCAB = ['denied', 'approved']
    
    config_builder = (WitConfigBuilder(test_examples.tolist(), features.columns.tolist() + ['mortgage_status'])
      .set_ai_platform_model(PROJECT_ID, MODEL_NAME, VERSION_NAME, adjust_prediction=adjust_prediction)
      .set_target_feature(TARGET_FEATURE)
      .set_label_vocab(LABEL_VOCAB))
    

    比较模型

    此配置构建器展示如何使用 What-If 工具来检查和比较两个模型。请参阅比较部署的 Keras 和 scikit-learn 模型的完整示例笔记本

    请参阅用于 WitConfigBuilder 的代码,详细了解各种方法。

    PROJECT_ID = 'YOUR_PROJECT_ID'
    KERAS_MODEL_NAME = 'YOUR_KERAS_MODEL_NAME'
    KERAS_VERSION_NAME = 'VERSION_NAME_OF_YOUR_KERAS_MODEL'
    SKLEARN_MODEL_NAME = 'YOUR_SKLEARN_MODEL_NAME'
    SKLEARN_VERSION_NAME = 'VERSION_NAME_OF_YOUR_SKLEARN_MODEL'
    TARGET_FEATURE = 'quality'
    
    config_builder = (WitConfigBuilder(test_examples.tolist(), features.columns.tolist() + [TARGET_FEATURE])
     .set_ai_platform_model(PROJECT_ID, KERAS_MODEL_NAME, KERAS_VERSION_NAME)
     .set_predict_output_tensor('sequential').set_uses_predict_api(True)
     .set_target_feature(TARGET_FEATURE)
     .set_model_type('regression')
     .set_compare_ai_platform_model(PROJECT_ID, SKLEARN_MODEL_NAME, SKLEARN_VERSION_NAME))
    
  3. 将配置构建器传递给 WitWidget,并设置显示高度。What-If 工具会以交互式形象显示在您的笔记本中。

    WitWidget(config_builder, height=800)
    

后续步骤