Usa la Herramienta What-If

Puedes usar la Herramienta What-If (WIT) en los entornos de notebooks para inspeccionar los modelos de AI Platform Prediction mediante un panel interactivo. La Herramienta What-If se integra a TensorBoard, los notebooks de Jupyter y Colab, y JupyterHub. También está preinstalada en las 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:

AI Platform Notebooks

witwidget ya está instalado en AI Platform Notebooks.

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.

Se requieren los siguientes formatos de entrada para la Herramienta What-If:

  • 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 correspondientes para el proyecto de Google Cloud, el modelo y la versión de AI Platform Prediction, y otros valores según sea apropiado para el modelo.

  1. Importa witwidget:

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

    Inspecciona un modelo

    En este compilador 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 del 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 modelos

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

    WitWidget(config_builder, height=800)
    

Próximos pasos