

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

# 배치 변환 작업에서 데이터 캡처
<a name="model-monitor-data-capture-batch"></a>

 배치 변환 작업에 대한 데이터 캡처를 활성화하는 데 필요한 단계는 AWS SDK for Python (Boto) 를 사용하든 SageMaker Python SDK를 사용하든 비슷합니다. AWS SDK를 사용하는 경우 `CreateTransformJob` 메서드 내에서 필수 필드와 함께 [DataCaptureConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCaptureConfig.html) 사전을 정의하여 데이터 캡처를 켭니다. SageMaker AI Python SDK를 사용하는 경우 `BatchDataCaptureConfig` 클래스를 가져와서 이 클래스에서 인스턴스를 초기화하세요. 그런 다음 이 객체를 변환 작업 인스턴스의 `batch_data_capture_config`파라미터에 전달합니다.

 다음 코드 스니펫을 사용하려면 예시 코드의 *기울임꼴 자리표시자 텍스트*를 자신의 정보로 대체합니다.

## 데이터 캡처 활성화 방법
<a name="data-capture-batch-enable"></a>

 변환 작업을 시작할 때 데이터 캡처 구성을 지정하세요. AWS SDK for Python (Boto3) 를 사용하든 SageMaker Python SDK를 사용하든, 변환 작업이 캡처된 데이터를 로깅할 디렉터리인 `DestinationS3Uri` 인수를 제공해야 합니다. 선택적으로 다음 파라미터를 지정할 수도 있습니다.
+  `KmsKeyId`: 캡처된 데이터를 암호화하는 데 사용되는 AWS KMS 키입니다.
+  `GenerateInferenceId`: 데이터를 캡처할 때 변환 작업에서 출력에 추론 ID와 시간을 추가할지 여부를 나타내는 부울 플래그입니다. 이는 Ground Truth 데이터를 수집해야 하는 모델 품질 모니터링에 유용합니다. 추론 ID 및 시간은 캡처된 데이터를 Ground Truth 데이터와 일치시키는 데 도움이 됩니다.

------
#### [ AWS SDK for Python (Boto3) ]

 `CreateTransformJob` 메서드를 사용하여 변환 작업을 생성할 때 [DataCaptureConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DataCaptureConfig.html) 사전으로 캡처하려는 데이터를 구성하세요.

```
input_data_s3_uri = "s3://input_S3_uri"
output_data_s3_uri = "s3://output_S3_uri"
data_capture_destination = "s3://captured_data_S3_uri"

model_name = "model_name"

sm_client.create_transform_job(
    TransformJobName="transform_job_name",
    MaxConcurrentTransforms=2,
    ModelName=model_name,
    TransformInput={
        "DataSource": {
            "S3DataSource": {
                "S3DataType": "S3Prefix",
                "S3Uri": input_data_s3_uri,
            }
        },
        "ContentType": "text/csv",
        "CompressionType": "None",
        "SplitType": "Line",
    },
    TransformOutput={
        "S3OutputPath": output_data_s3_uri,
        "Accept": "text/csv",
        "AssembleWith": "Line",
    },
    TransformResources={
        "InstanceType": "ml.m4.xlarge",
        "InstanceCount": 1,
    },
    DataCaptureConfig={
       "DestinationS3Uri": data_capture_destination,
       "KmsKeyId": "kms_key",
       "GenerateInferenceId": True,
    }
    )
```

------
#### [ SageMaker Python SDK ]

 [sagemaker.model\$1monitor](https://sagemaker.readthedocs.io/en/stable/api/inference/model_monitor.html)에서 `BatchDataCaptureConfig`클래스를 가져옵니다.

```
from sagemaker.transformer import Transformer
from sagemaker.inputs import BatchDataCaptureConfig

# Optional - The S3 URI of where to store captured data in S3
data_capture_destination = "s3://captured_data_S3_uri"

model_name = "model_name"

transformer = Transformer(model_name=model_name, ...)
transform_arg = transformer.transform(
    batch_data_capture_config=BatchDataCaptureConfig(
        destination_s3_uri=data_capture_destination,
        kms_key_id="kms_key",
        generate_inference_id=True,
    ),
    ...
)
```

------

## 캡처된 데이터를 보는 방법
<a name="data-capture-batch-view"></a>

 변환 작업이 완료되면 캡처된 데이터는 데이터 캡처 구성과 함께 제공된 `DestinationS3Uri`아래 기록됩니다. `DestinationS3Uri`, `/input`, 및 `/output`아래에는 두 개의 하위 디렉토리가 있습니다. `DestinationS3Uri`가 `s3://my-data-capture`인 경우 변환 작업은 다음 디렉터리를 만듭니다.
+  `s3://my-data-capture/input`: 변환 작업의 캡처된 입력 데이터입니다.
+  `s3://my-data-capture/output`: 변환 작업의 캡처된 출력 데이터입니다.

 데이터 중복을 방지하기 위해 이전 두 디렉터리에 있는 캡처된 데이터는 매니페스트입니다. 각 매니페스트는 원본 객체의 Amazon S3 위치가 포함된 JSONL 파일입니다. 매니페스트 파일은 다음 예시와 같습니다.

```
# under "/input" directory
[
    {"prefix":"s3://input_S3_uri/"},
    "dummy_0.csv",
    "dummy_1.csv",
    "dummy_2.csv",
    ...
]

# under "/output" directory
[
    {"prefix":"s3://output_S3_uri/"},
    "dummy_0.csv.out",
    "dummy_1.csv.out",
    "dummy_2.csv.out",
    ...
]
```

 변환 작업은 캡처 시기를 나타내는 *yyyy/mm/dd/hh* S3 접두사를 사용하여 이러한 매니페스트를 구성하고 레이블을 지정합니다. 이렇게 하면 모델 모니터가 분석할 데이터의 적절한 부분을 결정하는 데 도움이 됩니다. 예를 들어, 2022-8-26 13PM UTC에 변환 작업을 시작하면 캡처된 데이터에 `2022/08/26/13/`접두사 문자열이 레이블로 지정됩니다.

## 추론 ID 생성
<a name="data-capture-batch-inferenceid"></a>

 변환 작업에 대해 `DataCaptureConfig`을 구성할 때 부울 플래그 `GenerateInferenceId`를 켤 수 있습니다. 이는 사용자가 수집한 Ground Truth 데이터가 필요한 모델 품질 및 모델 바이어스 모니터링 작업을 실행해야 할 때 특히 유용합니다. 모델 모니터는 추론 ID를 사용하여 캡처된 데이터와 Ground Truth 데이터를 일치시킵니다. Ground Truth 수집에 대한 자세한 내용은 [Ground Truth 레이블을 수집하여 예측과 병합](model-monitor-model-quality-merge.md)섹션을 참조하세요. `GenerateInferenceId`가 켜져 있으면 변환 출력에 추론 ID(임의 UUID)와 각 레코드의 변환 작업 시작 시간(UTC)이 추가됩니다. 모델 품질 및 모델 바이어스 모니터링을 실행하려면 이 두 값이 필요합니다. Ground Truth 데이터를 생성할 때는 출력 데이터와 일치하도록 동일한 추론 ID를 제공해야 합니다. 현재 이 기능은 CSV, JSON 및 JSONL 형식의 변환 출력을 지원합니다.

 변환 출력이 CSV 형식인 경우 출력 파일은 다음 예시와 같습니다.

```
0, 1f1d57b1-2e6f-488c-8c30-db4e6d757861,2022-08-30T00:49:15Z
1, 22445434-0c67-45e9-bb4d-bd1bf26561e6,2022-08-30T00:49:15Z
...
```

 마지막 두 열은 추론 ID와 변환 작업 시작 시간입니다. 수정할 수 없습니다. 나머지 열은 변환 작업 출력입니다.

 변환 출력이 JSON 또는 JSONL 형식인 경우 출력 파일은 다음 예시와 같습니다.

```
{"output": 0, "SageMakerInferenceId": "1f1d57b1-2e6f-488c-8c30-db4e6d757861", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"}
{"output": 1, "SageMakerInferenceId": "22445434-0c67-45e9-bb4d-bd1bf26561e6", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"}
...
```

 예약되어 있는 두 개의 추가된 필드 `SageMakerInferenceId`와 `SageMakerInferenceTime`이 있습니다. 모델 품질 또는 모델 바이어스 모니터링을 실행해야 하는 경우에는 이 필드를 수정하지 마세요.이는 병합 작업에 필요합니다.