

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

# 프로덕션 중인 모델을 위한 SHAP 기준 생성
<a name="clarify-model-monitor-shap-baseline"></a>

설명은 주로 대조적입니다.즉, 대부분 기준으로부터의 편차를 반영하는 내용입니다. 설명 가능성 기준에 대한 자세한 내용은 [설명 가능성에 대한 SHAP 기준](clarify-feature-attribute-shap-baselines.md)를 참조하세요.

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 설명자는 확장 가능하고 효율적인 SHAP 구현을 제공하므로, 설명 가능성 구성은 SHAPConfig이며, 여기에는 다음이 포함됩니다.
+ `baseline` - Kernel SHAP 알고리즘에서 기준 데이터세트로 사용할 행의 목록(하나 이상) 또는 S3 객체 URI입니다. 형식은 데이터 세트 형식과 동일해야 합니다. 각 행에는 특징 열/값만 포함되어야 하고 레이블 열/값은 생략되어야 합니다.
+ `num_samples` - Kernel SHAP 알고리즘에서 사용할 샘플의 수입니다. 이 숫자는 SHAP 값을 계산하기 위해 생성되는 합성 데이터 세트의 크기를 결정합니다.
+ agg\$1method - 글로벌 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}")
```