Usa la herramienta What-If

Puedes usar la Herramienta What-If (WIT) en los entornos de notebook a fin de inspeccionar los modelos de AI Platform a través de un panel interactivo. La Herramienta What-If se integra a TensorBoard, a los notebooks de Jupyter, de Colab y JupyterHub. También está preinstalada en instancias de TensorFlow de notebooks de AI Platform.

En esta página, se explica cómo usar la Herramienta What-If con un modelo entrenado que ya está implementado en AI Platform. Aprende a implementar modelos.

Instala la Herramienta What-If

Aquí se muestra cómo instalar witwidget en varios entornos de notebook:

Notebooks de AI Platform

witwidget ya está instalado en los notebooks de AI Platform.

Puedes cargar los instructivos de la Herramienta What-If a la instancia de notebook si clonas el repositorio del instructivo de la WIT en tu instancia. Consulta cómo clonar un repositorio de GitHub en una instancia de notebook.

Notebook de Jupyter

Instala y habilita WIT para Jupyter mediante los comandos siguientes:

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

Si quieres usar TensorFlow con la compatibilidad de GPU (tensorflow-gpu), instala la versión de witwidget compatible con GPU:

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

Solo tienes que ejecutar estos comandos de instalación una vez en tu entorno de Jupyter. A continuación, cada vez que presentes un kernel de Jupyter, la Herramienta What-If estará disponible.

Notebook de Colab

Instala el widget en el entorno de ejecución del kernel de notebook mediante la ejecución de una celda que contenga lo siguiente:

!pip install witwidget

Si quieres usar TensorFlow con la compatibilidad de GPU (tensorflow-gpu), instala la versión de witwidget compatible con GPU:

!pip install witwidget-gpu

JupyterLab

Sigue estas instrucciones de JupyterLab fuera de notebooks de AI Platform.

Instala y habilita la WIT para JupyterLab mediante la ejecución de una celda que contenga lo siguiente:

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

Para la compatibilidad con GPU de TensorFlow, usa el paquete witwidget-gpu:

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

Ten en cuenta que es posible que debas ejecutar comandos !sudo jupyter labextension ... según la configuración de tu notebook.

Establece los resultados de la predicción para la Herramienta What-If

Para cualquier modelo en el que el resultado no coincida con lo que requiere la Herramienta What-If, debes definir una función de ajuste de predicción en tu código.

La Herramienta What-If requiere los formatos siguientes de entrada:

  • Modelo de clasificación: una lista de puntuaciones de clase
  • Modelo de regresión: una puntuación de regresión

Por ejemplo, un modelo de clasificación binaria XGBoost muestra puntuaciones solo para la clase positiva. Debido a que la Herramienta What-If espera puntuaciones para cada clase, debes usar la función de ajuste de predicción siguiente si quieres obtener una lista con las puntuaciones negativas y positivas:

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

Define la función de ajuste de predicción dentro de una celda de código de notebook antes de configurar la Herramienta What-If.

Configura la Herramienta What-If

Puedes usar la Herramienta What-If para inspeccionar un modelo o comparar dos modelos. En WitConfigBuilder, completa los valores apropiados para tu propio proyecto de GCP, tu modelo y versión de AI Platform y otros valores según sea apropiado para tu modelo.

  1. Importa witwidget:

    import witwidget
    
  2. Crea un WitConfigBuilder para pasar varios parámetros sobre el modelo y el proyecto de AI Platform a la Herramienta What-If. Puedes usar la Herramienta What-If para inspeccionar un modelo o comparar dos modelos. Completa los valores apropiados para tu propio proyecto de GCP, tu modelo y versión de AI Platform, y otros valores según sea apropiado para tu modelo.

    Inspecciona un modelo

    En este creador de configuraciones, se muestra cómo usar la Herramienta What-If para inspeccionar un modelo. Consulta el notebook de ejemplo completo con un modelo XGBoost implementado.

    Consulta el código para WitConfigBuilder si quieres obtener más detalles sobre cada método.

    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))
    

    Compara los modelos

    En este creador de configuraciones, se muestra cómo usar la Herramienta What-If para inspeccionar y comparar dos modelos. Consulta el notebook de ejemplo completo que compara Keras con los modelos scikit-learn implementados.

    Consulta el código para WitConfigBuilder si quieres obtener más detalles sobre cada método.

    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. Pasa el creador de configuraciones a WitWidget y configura un alto de pantalla. La Herramienta What-If se muestra como una visualización interactiva en tu notebook.

    WitWidget(config_builder, height=800)
    

Qué sigue