What-If 도구 사용

메모장 환경 내에서 What-If 도구(WIT)를 사용하여 대화형 대시보드를 통해 AI Platform Prediction 모델을 검사할 수 있습니다. What-If 도구는 텐서보드, Jupyter 메모장, Colab 메모장, JupyterHub와 통합됩니다. AI Platform 메모장 TensorFlow 인스턴스에도 사전 설치되어 있습니다.

이 페이지에서는 AI Platform에 미리 배포되어 있는 학습 모델에서 What-If 도구를 사용하는 방법을 설명합니다. 모델 배포 방법을 알아보세요.

What-If 도구 설치

다양한 메모장 환경에서 witwidget을 설치하는 방법을 보여줍니다.

AI Platform Notebooks

witwidget은 이미 AI Platform Notebooks에 설치되어 있습니다.

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

AI Platform 메모장 외부의 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 모델 및 버전에 적절한 값을 채우고 모델에 따라 기타 필요한 값을 채웁니다.

  1. witwidget 가져오기:

    import witwidget
    
  2. 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))
    
  3. 구성 빌더를 WitWidget에 전달하고 화면 높이를 설정합니다. What-If 도구가 메모장 내에 대화형 시각화로 표시됩니다.

    WitWidget(config_builder, height=800)
    

다음 단계