속성 드리프트를 모니터링하는 파라미터 - Amazon SageMaker

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

속성 드리프트를 모니터링하는 파라미터

Amazon SageMaker Clarify 설명 가능성 모니터는 의 분석 구성에 사용되는 파라미터의 하위 집합을 재사용합니다분석 구성 파일. 다음 파라미터는 JSON 파일에 제공되어야 하며 경로는 의 ConfigUri 파라미터에 제공되어야 합니다ModelExplainabilityAppSpecification.

  • "version" - (선택사항) 해당 구성 파일의 스키마 버전입니다. 제공하지 않을 경우, 지원 가능한 최신 버전이 사용됩니다.

  • "headers" - (선택사항) 데이터 세트의 특징 이름 목록. 설명 가능성 분석에는 레이블이 필요하지 않습니다.

  • "methods" - 분석 및 보고를 위한 메서드 및 관련 매개변수의 목록입니다. 생략된 섹션이 있는 경우, 해당 섹션은 계산되지 않습니다.

    • "shap" – (선택 사항) SHAP 값 계산 섹션.

      • "baseline" - (선택 사항) 행 목록(하나 이상) 또는 Amazon Simple Storage Service Amazon S3 객체 URI. 커널 SHAP 알고리즘에서 기준 데이터 세트(백그라운드 데이터 세트라고도 함)로 사용됩니다. 형식은 데이터 세트 형식과 동일해야 합니다. 각 행에는 해당 특징 열(또는 값)만 포함되어 있어야 합니다. 각 행을 모델로 보내기 전에 제외되어야 하는 열을 먼저 모두 제외하세요.

      • "num_samples" – 커널 SHAP 알고리즘에 사용할 샘플 수입니다. 이 숫자는 SHAP 값을 계산하기 위해 생성된 합성 데이터 세트의 크기를 결정합니다. 제공되지 않은 경우 SageMaker Clarify 작업은 특성 수를 기반으로 값을 선택합니다.

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

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

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

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

      • "use_logit" - (선택사항) 로짓 함수를 모델 예측에 적용할지 여부를 나타내는 부울 값입니다. 이 "use_logit"이면 true SHAP 값에 로그 오즈 단위가 있습니다. 기본값은 false입니다.

      • "save_local_shap_values" – (선택 사항) 출력 위치에 로컬 값을 저장할지 여부를 나타내는 부울 SHAP 값입니다. 저장하려면 true를 사용하세요. 저장하지 않으려면 false를 사용하세요. 기본값은 false입니다.

  • "predictor" - (실시간 엔드포인트인 경우 선택사항/배치 변환인 경우 필수) 모델 매개변수에 대한 섹션으로, "shap""post_training_bias"섹션이 존재하는 경우 필수입니다.

    • "model_name" - 컨테이너 모드를 로 API하여 CreateModel 에서 생성한 모델 이름입니다SingleModel.

    • "instance_type" - 섀도우 엔드포인트의 인스턴스 유형입니다.

    • "initial_instance_count" - 섀도우 엔드포인트의 인스턴스 개수입니다.

    • "content_type" - (선택사항) 섀도우 엔드포인트를 통해 추론을 가져오는 데 사용되는 모델 입력 형식입니다. 유효한 값은 "text/csv", CSV "application/jsonlines" JSON 행, application/x-parquet Apache Parquet 및 Computer Vision 설명 가능성을 활성화application/x-image하는 것입니다. 기본값은 dataset_type형식과 동일합니다.

    • "accept_type" - (선택사항) 섀도우 엔드포인트를 통해 추론을 가져오는 데 사용되는 모델 출력 형식입니다. 유효한 값은 "text/csv"에 대해CSV, JSON 행에 "application/jsonlines" 대해 입니다. 생략된 경우 SageMaker Clarify는 캡처된 데이터의 응답 데이터 유형을 사용합니다.

    • "content_template" - (선택사항) 데이터 세트 인스턴스에서 모델 입력을 구성하는 데 사용되는 템플릿 문자열입니다. "content_type""application/jsonlines"인 경우에만 사용됩니다. 템플릿에는 자리 표시자가 $features하나만 있어야 하며, 이는 런타임 시 특징 목록으로 대체됩니다. 예를 들어, 주어진 "content_template":"{\"myfeatures\":$features}"에서 인스턴스(라벨 없음)가 1,2,3인 경우 모델 입력은 JSON 행이 됩니다'{"myfeatures":[1,2,3]}'.

    • "label_headers" - (선택사항) "label"이 데이터 세트에서 가져오는 값의 목록입니다. 모델 엔드포인트 또는 배치 변환 작업에서 반환된 점수를 해당 레이블 값과 연결합니다. 이 값이 제공되면 분석 보고서는 “label0”과 같은 자리 표시자 대신에 헤더를 사용합니다.

다른 파라미터는 의 EndpointInput (실시간 엔드포인트의 경우) 또는 BatchTransformInput (배치 변환 작업의 경우)ModelExplainabilityJobInput에 제공되어야 합니다API.

  • FeaturesAttribute - 엔드포인트 또는 배치 작업 입력 데이터 형식이 "application/jsonlines"인 경우 이 매개변수가 필요합니다. 데이터 세트 형식이 JSON 행인 경우 특성 열을 찾는 데 JMESPath 사용됩니다.

  • ProbabilityAttribute – 확률에 대한 모델 출력의 인덱스 또는 JMESPath 위치입니다. 예를 들어 모델 출력이 레이블 및 확률 목록이 있는 JSON 행인 경우 최대 확률에 해당하는 레이블이 바이어스 계산에 선택됩니다.

CSV 및 JSON 행 데이터 세트에 대한 JSON 구성 파일 예제

다음은 구성에 사용되는 JSON 파일CSV과 데이터 세트에 특성 속성 드리프트가 있는지 모니터링하기 위한 JSON 행 데이터 세트의 예입니다.

CSV 데이터 세트

다음 예제와 같이 3개의 숫자형 특징 열이 있는 데이터 세트를 생각해보겠습니다.

0.5814568701544718, 0.6651538910132964, 0.3138080342665499 0.6711642728531724, 0.7466687034026017, 0.1215477472819713 0.0453256543003371, 0.6377430803264152, 0.3558625219713576 0.4785191813363956, 0.0265841045263860, 0.0376935084990697

다음 예제와 같이 모델 출력값에 두 개의 열이 있다고 가정합니다.첫 번째 열은 예측된 레이블이고 두 번째 열은 확률입니다.

1, 0.5385257417814224

다음 예제 JSON 구성 파일은 이 CSV 데이터 세트를 구성하는 방법을 보여줍니다.

{ "headers": [ "feature_1", "feature_2", "feature_3" ], "methods": { "shap": { "baseline": [ [0.4441164946610942, 0.5190374448171748, 0.20722795300473712] ], "num_samples": 100, "agg_method": "mean_abs" } }, "predictor": { "model_name": "my_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1 } }

예측된 레이블은 "ProbabilityAttribute"매개변수에 의해 선택되었습니다. 0 기준으로 시작하는 번호 매기기가 사용되므로, 여기서 1은 모델 출력의 두 번째 열을 나타냅니다.

"EndpointInput": { ... "ProbabilityAttribute": 1 ... }

JSON 라인 데이터 세트

다음 예제와 같이 특징 열 4개와 레이블 열 1개가 있는 데이터 세트에서 첫 번째 특징과 레이블이 이진수라고 가정해 보겠습니다.

{"features":[0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499], "label":0} {"features":[1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713], "label":1} {"features":[0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576], "label":1} {"features":[1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697], "label":1}

모델 입력은 데이터 세트 형식과 동일하며 모델 출력은 다음 예제와 같이 JSON 행입니다.

{"predicted_label":1, "probability":0.5385257417814224}

다음 예제에서 JSON 구성 파일은 이 JSON Lines 데이터 세트를 구성하는 방법을 보여줍니다.

{ "headers": [ "feature_1", "feature_2", "feature_3" ], "methods": { "shap": { "baseline": [ {"features":[0.4441164946610942, 0.5190374448171748, 0.20722795300473712]} ], "num_samples": 100, "agg_method": "mean_abs" } }, "predictor": { "model_name": "my_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1, "content_template":"{\"features\":$features}" } }

이 때, 데이터 세트의 특징을 찾는 데는 EndpointInput(실시간 엔드포인트인 경우) 또는 BatchTransformInput(배치 변환 작업인 경우)의 "features"매개변수 값이 사용되고, "probability"매개변수 값은 모델 출력값에서 확률 값을 선택하게 됩니다.

"EndpointInput": { ... "FeaturesAttribute": "features", "ProbabilityAttribute": "probability", ... }