You can use the What-If Tool (WIT) within notebook environments to inspect AI Platform Prediction models through an interactive dashboard. The What-If Tool integrates with TensorBoard, Jupyter notebooks, Colab notebooks, and JupyterHub. It is also pre-installed on Vertex AI Workbench user-managed notebooks TensorFlow instances.
This page explains how to use the What-If Tool with a trained model that is already deployed on AI Platform. Learn how to deploy models.
Install the What-If Tool
This shows how to install witwidget
in a variety of notebook
environments:
User-managed notebooks
The witwidget
is already installed in
user-managed notebooks
instances.
You can load the What-If Tool tutorials into your notebook instance by cloning the WIT tutorial repo into your instance. See how to clone a GitHub repo into a user-managed notebooks instance.
Jupyter notebook
Install and enable WIT for Jupyter through the following commands:
pip install witwidget
jupyter nbextension install --py --symlink --sys-prefix witwidget
jupyter nbextension enable --py --sys-prefix witwidget
To use TensorFlow with GPU support (tensorflow-gpu
), install the
GPU-compatible version of witwidget:
pip install witwidget-gpu
jupyter nbextension install --py --symlink --sys-prefix witwidget
jupyter nbextension enable --py --sys-prefix witwidget
You only need to run these installation commands once in your Jupyter environment. Subsequently, every time you bring up a Jupyter kernel, the What-If Tool will be available.
Colab notebook
Install the widget into the runtime of the notebook kernel by running a cell containing:
!pip install witwidget
To use TensorFlow with GPU support (tensorflow-gpu
), install the
GPU-compatible version of witwidget:
!pip install witwidget-gpu
JupyterLab
Follow these instructions for JupyterLab outside of user-managed notebooks.
Install and enable WIT for JupyterLab by running a cell containing:
!pip install witwidget
!jupyter labextension install wit-widget
!jupyter labextension install @jupyter-widgets/jupyterlab-manager
For TensorFlow GPU support, use the witwidget-gpu
package:
!pip install witwidget-gpu
!jupyter labextension install wit-widget
!jupyter labextension install @jupyter-widgets/jupyterlab-manager
Note that you may need to run !sudo jupyter labextension ...
commands
depending on your notebook setup.
Adjust prediction outputs for the What-If Tool
For any models where the output doesn't match what the What-If Tool requires, you need to define a prediction adjustment function in your code.
The What-If Tool requires the following input formats:
- Classification model: A list of class scores
- Regression model: A regression score
For example, an XGBoost binary classification model returns scores only for the positive class. Because the What-If Tool expects scores for each class, you'd use the following prediction adjustment function to get a list with both the negative and positive scores:
def adjust_prediction(pred):
return [1 - pred, pred]
Define the prediction adjustment function within a notebook code cell before you configure the What-If Tool.
Configure the What-If Tool
You can use the What-If Tool to inspect one model, or to compare two models.
In the WitConfigBuilder
, fill in the appropriate values
for your own Google Cloud project, your AI Platform Prediction model and
version, and other values as appropriate for your model.
Import
witwidget
:import witwidget
Create a
WitConfigBuilder
to pass various parameters about your model and your AI Platform Prediction project to the What-If Tool. You can use the What-If Tool to inspect one model, or to compare two models. Fill in the appropriate values for your own Google Cloud project, your AI Platform Prediction model and version, and other values as appropriate for your model.Inspect a model
This config builder shows how to use the What-If Tool to inspect one model. See the full example notebook with a deployed XGBoost model.
See the code for the
WitConfigBuilder
for more details on each method.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))
Compare models
This config builder shows how to use the What-If Tool to inspect and compare two models. See the full example notebook comparing deployed Keras and scikit-learn models.
See the code for the
WitConfigBuilder
for more details on each method.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))
Pass the config builder to WitWidget, and set a display height. The What-If Tool displays as an interactive visualization within your notebook.
WitWidget(config_builder, height=800)
What's next
- See the What-If Tool demos and walkthrough to learn how to explore models.
- Learn how you can use the What-If Tool to optimize for AI Fairness in your model.