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

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

편향 드리프트를 모니터링하는 파라미터

Amazon SageMaker Clarify 바이어스 모니터링은 의 분석 구성에 사용되는 파라미터의 하위 집합을 재사용합니다분석 구성 파일. 구성 파라미터를 설명한 후 이 주제에서는 JSON 파일의 예를 제공합니다. 이러한 파일은 기계 학습 모델이 프로덕션 상태일 때 편향 드리프트가 있는지 모니터링하기 위해 CSV 및 JSON 행 데이터 세트를 구성하는 데 사용됩니다.

파일에 다음 파라미터를 제공해야 합니다JSON. 이 JSON 파일의 경로는 ModelBiasAppSpecificationConfigUri 파라미터에 제공되어야 합니다API.

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

  • "headers" - (선택사항) 데이터 세트의 열 이름 목록. 만약 dataset_type"application/jsonlines"이고 "label"이 지정되어 있다면, 마지막 헤더가 해당 레이블 열의 헤더가 됩니다.

  • "label" - (선택사항) 편향 지표에 사용할 모델의 대상 속성입니다. 열 이름 또는 인덱스(데이터 세트 형식이 인 경우CSV) 또는 JMESPath (데이터 세트 형식이 JSON 행인 경우)로 지정됩니다.

  • "label_values_or_threshold" - (선택사항) 레이블 값 또는 임계값의 목록. 편향 지표에 사용된 긍정적인 결과를 나타냅니다.

  • "facet" - (선택사항) 민감한 속성에 해당하는 특징(패싯이라고 함)의 목록입니다. 패싯은 쌍을 이루어 편향 지표에 사용되며, 다음을 포함합니다.

    • "name_or_index" - 패싯 열 이름 또는 인덱스.

    • "value_or_threshold" - (선택사항) 패싯 열에 적용할 수 있는 값 또는 임계값의 목록. 편향을 측정하는 데 사용되는 그룹과 같이 민감한 그룹을 나타냅니다. 제공하지 않을 경우, 편향 지표는 (전체 값이 아니라) 모든 고유 값에 대해 하나의 그룹으로 계산됩니다. 패싯 열이 숫자인 경우에는 이 임계값이 민감한 그룹을 선택하기 위한 하한으로 적용됩니다.

  • "group_variable" - (선택사항) 조건부 인구통계 차이 편향 지표에 사용할 그룹 변수를 나타내는 열 이름 또는 인덱스입니다.

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

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

  • InferenceAttribute - 편향 지표를 사용하여 편향을 모니터링하는 데 사용할 대상 속성의 모델 출력의 인덱스 또는 JMESPath 위치입니다. CSV accept_type 사례에 제공되지 않은 경우 모델 출력은 점수 또는 확률에 해당하는 단일 숫자 값으로 간주됩니다.

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

  • ProbabilityThresholdAttribute - (선택사항) 바이너리 분류의 경우에서 바이너리 레이블을 선택하기 위한 임계값을 나타내는 부동 소수점 값입니다. 기본값은 0.5입니다.

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

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

CSV 데이터 세트

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

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

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

1, 0.5385257417814224

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

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "target", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

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

"EndpointInput": { ... "InferenceAttribute": 0 ... }

그 밖에, 다른 매개변수를 사용하여 확률 값을 이진수의 예측된 레이블로 변환하는 방법도 있습니다. 0 기준으로 시작하는 번호 매기기가 사용된 상황에서, 1은 두 번째 열을 나타내고, 0.6이라는 ProbabilityThresholdAttribute값은 확률이 0.6보다 크면 이진수 레이블을 1로 예측한다는 것을 나타냅니다.

"EndpointInput": { ... "ProbabilityAttribute": 1, "ProbabilityThresholdAttribute": 0.6 ... }

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}

모델 출력값에 두 개의 열이 있다고 가정해 보겠습니다.첫 번째 열은 예측된 레이블이고 두 번째 열은 확률입니다.

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

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

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "label", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

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

"EndpointInput": { ... "FeaturesAttribute": "features", "InferenceAttribute": "predicted_label" ... }

그 밖에, ProbabilityThresholdAttribute매개변수 값을 사용하여 확률 값을 예측된 이진수 레이블로 변환하는 방법도 있습니다. 예를 들어, 0.6이라는 값은 확률이 0.6보다 크면 이진수 레이블을 1로 예측한다는 의미입니다.

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