您可以通过交互式信息中心,在笔记本环境中使用 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 模型和版本的值,以及适合您模型的其他值。
导入
witwidget
:import witwidget
创建
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))
将配置构建器传递给 WitWidget,并设置显示高度。What-If 工具会以交互式形象显示在您的笔记本中。
WitWidget(config_builder, height=800)
后续步骤
- 请参阅 What-If 工具的演示和指南,了解如何探索模型。
- 了解您可以如何使用 What-If 工具优化您的模型以获得 AI 公平性