

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

# 컨테이너 계약 출력
<a name="model-monitor-byoc-contract-outputs"></a>

컨테이너는 `*dataset_source*`경로에서 사용 가능한 데이터를 분석하고 `*output_path*.`의 경로에 대한 보고서를 작성할 수 있습니다.컨테이너 코드는 사용자의 필요에 맞는 보고서를 작성할 수 있습니다.

사용자가 다음 구조 및 계약을 사용하는 경우, 특정 출력 파일은 시각화와 API에서 SageMaker AI에 의해 특별히 처리됩니다. 이는 테이블 형식 데이터세트에만 적용됩니다.

테이블 형식 데이터세트의 출력 파일


| 파일 이름 | 설명 | 
| --- | --- | 
| statistics.json |  이 파일에는 분석되는 데이터세트의 각 기능에 대한 열 기반 통계가 있어야 합니다. 이 파일에 대한 스키마는 다음 섹션에서 사용할 수 있습니다.  | 
| constraints.json |  이 파일에는 관찰된 기능에 대한 제약 조건이 있어야 합니다. 이 파일에 대한 스키마는 다음 섹션에서 사용할 수 있습니다.  | 
| constraints\$1violations.json |  이 파일에는 `baseline_constaints`및 `baseline_statistics`경로에 지정된 기준 통계 및 제약 조건 파일과 비교하여 현재 데이터세트에서 발견된 위반 목록이 있어야 합니다.  | 

또한 `publish_cloudwatch_metrics`값이 `"Enabled"`인 경우, 컨테이너 코드는 이 위치(`/opt/ml/output/metrics/cloudwatch`)에서 Amazon CloudWatch 지표를 내보낼 수 있습니다. 이들 파일에 대한 스키마는 다음 섹션에 설명되어 있습니다.

**Topics**
+ [통계에 대한 스키마(statistics.json 파일)](model-monitor-byoc-statistics.md)
+ [제약 조건에 대한 스키마(constraints.json 파일)](model-monitor-byoc-constraints.md)

# 통계에 대한 스키마(statistics.json 파일)
<a name="model-monitor-byoc-statistics"></a>

`statistics.json` 파일에 정의된 스키마는 캡처된 기준 및 데이터에 대해 계산할 통계 파라미터를 지정합니다. 또한 [KLL](https://datasketches.apache.org/docs/KLL/KLLSketch.html)에서 사용할 버킷을 구성합니다.KLL은 압축 체계가 느슨한 매우 컴팩트한 분위 스케치입니다.

```
{
    "version": 0,
    # dataset level stats
    "dataset": {
        "item_count": number
    },
    # feature level stats
    "features": [
        {
            "name": "feature-name",
            "inferred_type": "Fractional" | "Integral",
            "numerical_statistics": {
                "common": {
                    "num_present": number,
                    "num_missing": number
                },
                "mean": number,
                "sum": number,
                "std_dev": number,
                "min": number,
                "max": number,
                "distribution": {
                    "kll": {
                        "buckets": [
                            {
                                "lower_bound": number,
                                "upper_bound": number,
                                "count": number
                            }
                        ],
                        "sketch": {
                            "parameters": {
                                "c": number,
                                "k": number
                            },
                            "data": [
                                [
                                    num,
                                    num,
                                    num,
                                    num
                                ],
                                [
                                    num,
                                    num
                                ][
                                    num,
                                    num
                                ]
                            ]
                        }#sketch
                    }#KLL
                }#distribution
            }#num_stats
        },
        {
            "name": "feature-name",
            "inferred_type": "String",
            "string_statistics": {
                "common": {
                    "num_present": number,
                    "num_missing": number
                },
                "distinct_count": number,
                "distribution": {
                    "categorical": {
                         "buckets": [
                                {
                                    "value": "string",
                                    "count": number
                                }
                          ]
                     }
                }
            },
            #provision for custom stats
        }
    ]
}
```

**참고**  
지정된 지표는 이후 시각화 변경 시 SageMaker AI에서 인식됩니다. 필요한 경우 컨테이너는 더 많은 지표를 내보낼 수 있습니다.
[KLL 스케치](https://datasketches.apache.org/docs/KLL/KLLSketch.html)는 인식된 스케치입니다. 사용자 지정 컨테이너는 자체 표현을 작성할 수 있지만, 시각화 시 SageMaker AI에서 인식되지는 않습니다.
기본적으로 배포는 10개의 버킷으로 분포를 구체화됩니다. 이 값은 변경할 수 없습니다.

# 제약 조건에 대한 스키마(constraints.json 파일)
<a name="model-monitor-byoc-constraints"></a>

constraints.json 파일은 데이터세트가 반드시 충족해야 하는 제약 조건을 표현하는 데 사용됩니다. Amazon SageMaker Model Monitor 컨테이너는 constraints.json 파일을 사용하여 데이터세트를 평가할 수 있습니다. 사전 구축된 컨테이너는 기준 데이터세트에 대한 constraints.json 파일을 자동으로 생성해주는 기능을 제공합니다. 자체 컨테이너를 사용하는 경우, 비슷한 기능을 제공하거나 기타 몇 가지 방법으로 containints.json 파일을 생성할 수 있습니다. 다음은 미리 빌드 컨테이너가 사용하는 제약 조건 파일의 스키마입니다. 자체 컨테이너를 사용하면 동일한 형식을 채택하거나 필요에 따라 형식을 개선할 수 있습니다.

```
{
    "version": 0,
    "features":
    [
        {
            "name": "string",
            "inferred_type": "Integral" | "Fractional" | 
                    | "String" | "Unknown",
            "completeness": number,
            "num_constraints":
            {
                "is_non_negative": boolean
            },
            "string_constraints":
            {
                "domains":
                [
                    "list of",
                    "observed values",
                    "for small cardinality"
                ]
            },
            "monitoringConfigOverrides":
            {}
        }
    ],
    "monitoring_config":
    {
        "evaluate_constraints": "Enabled",
        "emit_metrics": "Enabled",
        "datatype_check_threshold": 0.1,
        "domain_content_threshold": 0.1,
        "distribution_constraints":
        {
            "perform_comparison": "Enabled",
            "comparison_threshold": 0.1,
            "comparison_method": "Simple"||"Robust",
            "categorical_comparison_threshold": 0.1,
            "categorical_drift_method": "LInfinity"||"ChiSquared"
        }
    }
}
```

`monitoring_config` 객체에는 특징에 대한 작업을 모니터링하는 옵션이 포함되어 있습니다. 다음 표에 각 옵션이 설명되어 있습니다.

모니터링 제약 조건

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/model-monitor-byoc-constraints.html)