

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

# 엔드포인트 간접 호출
<a name="clarify-online-explainability-invoke-endpoint"></a>

엔드포인트가 실행되고 나면 SageMaker AI 런타임 서비스의 SageMaker AI 런타임 [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html) API를 사용하여 엔드포인트에 요청을 보내거나 엔드포인트를 간접 호출합니다. 이에 대한 응답으로 SageMaker Clarify의 설명자는 해당 요청을 설명 가능성 요청으로 처리합니다.

**참고**  
엔드포인트를 간접 호출하려면 다음 옵션 중 하나를 선택합니다.  
Boto3 또는를 사용하여 엔드포인트를 호출 AWS CLI 하는 방법에 대한 지침은 섹션을 참조하세요[실시간 추론을 위한 모델 호출](realtime-endpoints-test-endpoints.md).
SageMaker SDK for Python을 사용하여 엔드포인트를 간접 호출하려면 [예측기](https://sagemaker.readthedocs.io/en/stable/api/inference/predictors.html) API를 참조하세요.

## 요청
<a name="clarify-online-explainability-request"></a>

`InvokeEndpoint` API에는 HTTP 헤더 `X-Amzn-SageMaker-Enable-Explanations`에 매핑되는 선택적 파라미터 `EnableExplanations`가 있습니다. 이 파라미터가 제공되면 `ClarifyExplainerConfig`의 `EnableExplanations` 파라미터보다 우선합니다.

**참고**  
`InvokeEndpoint` API의 `ContentType`, `Accept` 파라미터는 필수입니다. 지원되는 형식에는 MIME 유형 `text/csv` 및 `application/jsonlines`가 포함됩니다.

다음과 같이 `sagemaker_runtime_client`를 사용하여 엔드포인트에 요청을 보내세요.

```
response = sagemaker_runtime_client.invoke_endpoint(
    EndpointName='name-of-your-endpoint',
    EnableExplanations='`true`',
    ContentType='text/csv',
    Accept='text/csv',
    Body='1,2,3,4',  # single record (of four numerical features)
)
```

다중 모델 엔드포인트의 경우 이전 예제 요청의 추가 `TargetModel` 파라미터를 전달하여 엔드포인트에서 타깃팅할 모델을 지정합니다. 다중 모델 엔드포인트는 필요에 따라 대상 모델을 동적으로 로드합니다. 다중 모델 엔드포인트에 대한 자세한 내용은 [다중 모델 엔드포인트](multi-model-endpoints.md) 섹션을 참조하세요. 단일 엔드포인트에서 여러 대상 모델을 설정하고 간접 호출하는 방법에 대한 예제는 [다중 모델 엔드포인트 샘플 노트북의 SageMaker Clarify 온라인 설명 가능성](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/online_explainability/tabular_multi_model_endpoint/multi_model_xgboost_with_online_explainability.ipynb)을 참조하세요.

## 응답
<a name="clarify-online-explainability-response"></a>

`ExplainerConfig`로 엔드포인트를 생성한 경우 새 응답 스키마가 사용됩니다. 이 새 스키마는 제공된 `ExplainerConfig` 파라미터가 없는 엔드포인트와 다르며 호환되지 않습니다.

응답의 MIME 유형은 `application/json`이며, 응답 페이로드는 UTF-8 바이트에서 JSON 객체로 디코딩될 수 있습니다. 다음은 이 JSON 객체의 멤버를 보여 줍니다.
+ `version`: 문자열 형식의 응답 스키마 버전. 예를 들어 `1.0`입니다.
+ `predictions`: 요청에서 예측하는 결과는 다음과 같습니다.
  + `content_type`: 모델 컨테이너 응답의 `ContentType`을 참조하는 예측의 MIME 유형.
  + `data`: 요청에 대한 모델 컨테이너 응답의 페이로드로 전달되는 예측 데이터 문자열.
+ `label_headers`: `LabelHeaders` 파라미터의 레이블 헤더. 이는 설명자 구성 또는 모델 컨테이너 출력으로 제공됩니다.
+ `explanations`: 요청 페이로드에서 제공된 설명. 레코드가 설명되지 않은 경우 이 멤버는 빈 객체 `{}`을 반환합니다.
+ 
  + `kernel_shap`: 요청의 각 레코드에 대한 커널 SHAP 설명의 배열을 참조하는 키. 레코드가 설명되지 않은 경우 해당하는 설명은 `null`입니다.

`kernel_shap` 요소에는 다음 멤버가 있습니다.
+ `feature_header`: 설명자 구성 `ExplainerConfig`에서 `FeatureHeaders` 파라미터가 제공하는 기능의 헤더 이름.
+ `feature_type`: 설명자가 추론했거나 `ExplainerConfig`의 `FeatureTypes` 파라미터에 제공된 기능 유형. 이 요소는 NLP 설명 가능성 문제에만 사용할 수 있습니다.
+ `attributions`: 특성 객체의 배열. 텍스트 기능에는 각 단위당 여러 개의 특성 객체가 있을 수 있습니다. 이 특성 객체에는 다음 멤버가 있습니다.
  + `attribution`: 각 클래스에 주어진 확률 값 목록.
  + `description`: 텍스트 단위에 대한 설명. NLP 설명 가능성 문제에만 사용할 수 있음.
    + `partial_text`: 설명자가 설명하는 텍스트 부분.
    + `start_idx`: 부분 텍스트 조각의 시작 부분 배열 위치를 파악하기 위한 제로 기반 인덱스.