프로덕션 내 모델의 SHAP 기준 생성 - Amazon SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

프로덕션 내 모델의 SHAP 기준 생성

설명은 주로 대조적입니다.즉, 대부분 기준으로부터의 편차를 반영하는 내용입니다. 설명 가능성 기준에 대한 자세한 내용은 SHAP 설명 가능성의 기준를 참조하세요.

인스턴스별 추론에 대한 설명을 제공하는 것 외에도 SageMaker Clarify는 특성 측면에서 모델 전체의 동작을 이해하는 데 도움이 되는 ML 모델에 대한 글로벌 설명을 지원합니다. SageMaker Clarify는 여러 인스턴스에 Shapley 값을 집계하여 ML 모델에 대한 글로벌 설명을 생성합니다. SageMaker Clarify는 다음과 같은 다양한 집계 방법을 지원하며, 이를 통해 기준을 정의할 수 있습니다.

  • mean_abs - 모든 인스턴스의 절대SHAP값 평균입니다.

  • median - 모든 인스턴스의 SHAP 값 중앙값입니다.

  • mean_sq - 모든 인스턴스에 대한 제곱 SHAP 값의 평균입니다.

실시간 또는 배치 변환 추론 데이터를 캡처하도록 애플리케이션을 구성했다면, 특징 속성 드리프트의 모니터링을 위해 먼저 필요한 작업은 비교해볼 수 있는 기준을 생성하는 것입니다. 여기에는 데이터 입력 방식, 민감한 그룹 구분, 예측 캡처 방법, 해당 모델 및 훈련 후 편향 지표를 구성하는 작업이 포함됩니다. 그 다음에는 기준 설정 작업을 시작해야 합니다. 모델 설명 가능성 모니터는 이미 배포되어 추론을 생산하면서 특징 속성 드리프트를 정기적으로 감지하고 있는 모델이 수행한 예측을 설명할 수 있습니다.

model_explainability_monitor = ModelExplainabilityMonitor( role=role, sagemaker_session=sagemaker_session, max_runtime_in_seconds=1800, )

이 예제에서는 설명 가능성 기준 설정 작업이 바이어스 기준 설정 작업과 테스트 데이터 세트를 공유하므로 동일한 를 사용DataConfig하며 유일한 차이점은 작업 출력 입니다URI.

model_explainability_baselining_job_result_uri = f"{baseline_results_uri}/model_explainability" model_explainability_data_config = DataConfig( s3_data_input_path=validation_dataset, s3_output_path=model_explainability_baselining_job_result_uri, label=label_header, headers=all_headers, dataset_type=dataset_type, )

현재 SageMaker Clarify 설명기는 의 확장 가능하고 효율적인 구현을 제공하므로 다음을 SHAPConfig포함한 SHAP설명 가능성 구성은 입니다.

  • baseline – 커널 SHAP 알고리즘에서 기준 데이터 세트로 URI 사용할 행(최소 하나) 또는 S3 객체의 목록입니다. 형식은 데이터 세트 형식과 동일해야 합니다. 각 행에는 특징 열/값만 포함되어야 하고 레이블 열/값은 생략되어야 합니다.

  • num_samples – 커널 SHAP 알고리즘에 사용할 샘플 수입니다. 이 숫자는 SHAP 값을 계산하기 위해 생성된 합성 데이터 세트의 크기를 결정합니다.

  • agg_method – 전역 SHAP 값에 대한 집계 메서드입니다. 유효한 값은 다음과 같습니다.

    • mean_abs - 모든 인스턴스의 절대SHAP값 평균입니다.

    • median - 모든 인스턴스의 SHAP 값 중앙값입니다.

    • mean_sq - 모든 인스턴스에 대한 제곱 SHAP 값의 평균입니다.

  • use_logit - 로짓 함수를 모델 예측에 적용할지 여부를 나타내는 지표입니다. 기본값은 False입니다. use_logit 가 이면 True SHAP 값에 로그 오즈 단위가 있습니다.

  • save_local_shap_values (bool) - 출력 위치에 로컬 SHAP 값을 저장할지 여부를 나타냅니다. 기본값은 False입니다.

# Here use the mean value of test dataset as SHAP baseline test_dataframe = pd.read_csv(test_dataset, header=None) shap_baseline = [list(test_dataframe.mean())] shap_config = SHAPConfig( baseline=shap_baseline, num_samples=100, agg_method="mean_abs", save_local_shap_values=False, )

기준 설정 작업을 시작합니다. 설명 가능성 기준 설정 작업에서는 생성된 합성 데이터 세트에 대한 예측을 얻기 위해 섀도우 엔드포인트를 만들어야 하기 때문에 동일한 model_config가 필요합니다.

model_explainability_monitor.suggest_baseline( data_config=model_explainability_data_config, model_config=model_config, explainability_config=shap_config, ) print(f"ModelExplainabilityMonitor baselining job: {model_explainability_monitor.latest_baselining_job_name}")