Utiliser l'outil de simulation What-If

L'outil de simulation What-If (WIT) permet d'inspecter des modèles AI Platform Prediction dans les environnements notebook via un tableau de bord interactif. L'outil What-If s'intègre à TensorBoard, aux notebooks Jupyter et Colab, ainsi qu'à JupyterHub. Il est également préinstallé sur les instances TensorFlow de notebooks Vertex AI Workbench gérés par l'utilisateur.

Cette page explique comment utiliser l'outil What-If avec un modèle entraîné et déjà déployé sur AI Platform. Découvrez comment déployer des modèles.

Installer l'outil de simulation What-If

Cette section explique comment installer witwidget dans différents environnements notebook :

Notebooks gérés par l'utilisateur

Le fichier witwidget est déjà installé dans les instances de notebooks gérés par l'utilisateur.

Pour charger les tutoriels de l'outil What-If dans votre instance de notebook, il vous suffit de cloner le dépôt du tutoriel WIT (What-If Tool). Découvrez comment cloner un dépôt GitHub dans une instance de notebooks gérés par l'utilisateur.

Notebook Jupyter

Installez et activez WIT pour Jupyter à l'aide des commandes suivantes :

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

Pour utiliser TensorFlow avec la compatibilité GPU (tensorflow-gpu), installez la version GPU compatible du widget WIT :

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

Vous n'avez besoin d'exécuter ces commandes d'installation qu'une seule fois dans votre environnement Jupyter. Par la suite, l'outil What-If est disponible chaque fois que vous affichez un noyau Jupyter.

Notebook Colab

Installez le widget dans l'environnement d'exécution du noyau notebook en exécutant une cellule contenant :

!pip install witwidget

Pour utiliser TensorFlow avec la compatibilité GPU (tensorflow-gpu), installez la version GPU compatible du widget WIT :

!pip install witwidget-gpu

JupyterLab

Suivez ces instructions pour JupyterLab en dehors des notebooks gérés par l'utilisateur.

Installez et activez WIT pour JupyterLab en exécutant une cellule contenant :

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

Pour la compatibilité du GPU TensorFlow, utilisez le package witwidget-gpu :

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

Selon la configuration de votre notebook, vous devrez peut-être exécuter des commandes !sudo jupyter labextension ....

Ajuster les résultats des prédictions pour l'outil What-If

Pour les modèles dont le résultat ne correspond pas aux exigences de l'outil What-If, vous devez définir une fonction d'ajustement des prédictions dans votre code.

L'outil What-If nécessite les formats d'entrée suivants :

  • Modèle de classification : liste des scores de classe
  • Modèle de régression : score de régression

Par exemple, un modèle de classification binaire XGBoost ne renvoie des scores que pour la classe positive. Comme l'outil What-If attend des scores pour chaque classe, vous devez utiliser la fonction d'ajustement des prédictions suivante pour obtenir une liste comportant les scores négatifs et positifs :

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

Définissez la fonction d'ajustement des prédictions dans une cellule de code notebook avant de configurer l'outil What-If.

Configurer l'outil What-If

Vous pouvez utiliser l'outil What-If pour inspecter un modèle ou comparer deux modèles. Dans le champ WitConfigBuilder, renseignez les valeurs concernant votre projet Google Cloud, votre modèle et votre version AI Platform Prediction, ainsi que les autres valeurs appropriées pour votre modèle.

  1. Importez witwidget :

    import witwidget
    
  2. Créez un WitConfigBuilder pour transmettre divers paramètres de votre modèle et de votre projet AI Platform Prediction à l'outil What-If. Vous pouvez utiliser l'outil What-If pour inspecter un modèle ou comparer deux modèles. Renseignez les valeurs concernant votre projet Google Cloud, votre modèle et votre version AI Platform Prediction, ainsi que les autres valeurs appropriées pour votre modèle.

    Inspecter un modèle

    Cet outil de configuration explique comment utiliser l'outil What-If pour inspecter un modèle. Consultez le notebook d'exemple complet avec un modèle XGBoost déployé.

    Pour plus d'informations sur chaque méthode, reportez-vous au code du 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))
    

    Comparer des modèles

    Cet outil de configuration explique comment utiliser l'outil What-If pour inspecter et comparer deux modèles. Consultez le notebook d'exemple complet comparant les modèles Keras et scikit-learn déployés.

    Pour plus d'informations sur chaque méthode, reportez-vous au code du 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. Transmettez l'outil de configuration au widget WIT et définissez la hauteur d'affichage. L'outil What-If s'affiche sous forme de visualisation interactive dans votre notebook.

    WitWidget(config_builder, height=800)
    

Étapes suivantes