

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

# SageMaker Clarify 처리 작업 구성
<a name="clarify-processing-job-configure-parameters"></a>

SageMaker Clative를 사용하여 데이터 및 모델의 편향 및 설명 가능성을 분석하려면 반드시 SageMaker Clalify 처리 작업을 구성해야 합니다. 이 가이드는 처리 작업을 위한 입력 데이터세트 이름, 분석 구성 파일 이름 및 출력 위치를 지정하는 방법을 보여줍니다. 처리 컨테이너, 작업 입력, 출력, 리소스 및 기타 매개변수를 구성하는 데는 두 가지 옵션이 있습니다. SageMaker AI `CreateProcessingJob` API를 사용하거나, 또는 SageMaker AI Python SDK API `SageMaker ClarifyProcessor`를 사용할 수도 있습니다.

모든 처리 작업에 공통적인 매개변수에 대한 자세한 내용은 [Amazon SageMaker API Reference](https://docs.aws.amazon.com/sagemaker/latest/APIReference/Welcome.html?icmpid=docs_sagemaker_lp)를 참조하세요.

## SageMaker API를 사용한 SageMaker Clarify 처리 작업 구성
<a name="clarify-processing-job-configure-parameters-API"></a>

다음 지침은 `CreateProcessingJob`API를 사용하여 SageMaker Calify용 구성의 각 부분을 제공하는 방법을 보여줍니다.

1. 다음 코드 예제와 같이 SageMaker Clarify 컨테이너 이미지의 통합 자원 식별자(URI)를 `AppSpecification`매개변수 내에 입력합니다.

   ```
   {
       "ImageUri": "the-clarify-container-image-uri"
   }
   ```
**참고**  
URI는 사전 구축된 SageMaker Clarify 컨테이너 이미지를 식별해야 하며,`ContainerEntrypoint` 및 `ContainerArguments`는 지원되지 않습니다. SageMaker Clarify에 대한 자세한 내용은 [사전 구축된 SageMaker Clarify 컨테이너](clarify-processing-job-configure-container.md) 섹션을 참고하세요.

1. 분석을 위한 구성과 `ProcessingInputs`매개변수 내에 있는 입력 데이터세트의 매개변수를 모두 지정합니다.

   1. 편향 분석 및 설명 가능성 분석을 위한 매개변수가 포함된 JSON 분석 구성 파일의 위치를 지정합니다. `ProcessingInput` 객체의 `InputName`매개변수는 다음 코드 예제에 표시된 것처럼 반드시 **analysis\$1config**여야 합니다.

      ```
      {
          "InputName": "analysis_config",
          "S3Input": {
              "S3Uri": "s3://your-bucket/analysis_config.json",
              "S3DataType": "S3Prefix",
              "S3InputMode": "File",
              "LocalPath": "/opt/ml/processing/input/config"
          }
      }
      ```

      분석 구성 파일의 스키마에 대한 자세한 내용은 [분석 구성 파일](clarify-processing-job-configure-analysis.md) 섹션을 참조하세요.

   1. 입력 데이터세트의 위치를 지정하세요. `ProcessingInput` 객체의 `InputName`매개변수는 반드시 `dataset`이어야 합니다. 사용자가 분석 구성 파일에 “dataset\$1uri”를 제공한 경우, 이 매개변수는 선택사항입니다. `S3Input` 구성에는 다음 값이 필요합니다.

      1. `S3Uri`의 경우 Amazon S3 객체 또는 S3 접두사일 수 있습니다.

      1. `S3InputMode`는 **File**유형이어야 합니다.

      1. `S3CompressionType`은 `None`유형(기본값)이어야 합니다.

      1. `S3DataDistributionType`은 `FullyReplicated`유형(기본값)이어야 합니다.

      1. `S3DataType`은 `S3Prefix`또는 `ManifestFile`일 수 있습니다. `ManifestFile`을 사용하려면, SageMaker API 레퍼런스 섹션 [S3Uri](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html#sagemaker-Type-S3DataSource-S3Uri)의 스키마를 따르는 매니페스트 파일의 위치를 `S3Uri`매개변수가 지정해야 합니다. 이 매니페스트 파일은 해당 작업의 입력 데이터를 포함하고 있는 S3 객체를 나열해야 합니다.

      다음 코드는 입력 구성의 예제를 보여줍니다.

      ```
      {
          "InputName": "dataset",
          "S3Input": {
              "S3Uri": "s3://your-bucket/your-dataset.csv",
              "S3DataType": "S3Prefix",
              "S3InputMode": "File",
              "LocalPath": "/opt/ml/processing/input/data"
          }
      }
      ```

1. `ProcessingOutputConfig` 매개변수 내에서 해당 처리 작업의 출력을 위한 구성을 지정합니다. `Outputs` 구성에는 단일 `ProcessingOutput`객체가 필요합니다. 출력 구성에는 다음 값이 필요합니다.

   1. `OutputName`은 **analysis\$1result**여야 합니다.

   1. `S3Uri`는 출력 위치에 대한 S3 접두사여야 합니다.

   1. `S3UploadMode`를 **EndOfJob**로 설정해야 합니다.

   다음 코드는 출력 구성의 예제를 보여줍니다.

   ```
   {
       "Outputs": [{ 
           "OutputName": "analysis_result",
           "S3Output": { 
               "S3Uri": "s3://your-bucket/result/",
               "S3UploadMode": "EndOfJob",
               "LocalPath": "/opt/ml/processing/output"
            }
        }]
   }
   ```

1. `ProcessingResources` 매개변수 내에서 해당 처리 작업에 사용되는 리소스를 위한 구성 `ClusterConfig`를 지정합니다. `ClusterConfig` 객체 내에는 다음 매개변수가 필요합니다.

   1. `InstanceCount`는 해당 처리 작업을 실행하는 클러스터 내부의 컴퓨팅 인스턴스 수를 지정합니다. 분산 처리 작업을 활성화하려면 `1`보다 큰 값을 지정하세요.

   1. `InstanceType`은 해당 처리 작업을 실행하는 리소스를 나타냅니다. SageMaker AI SHAP 분석은 컴퓨팅 집약적이므로, 연산에 최적화된 인스턴스 유형을 사용하면 분석 런타임이 향상될 수 있습니다. SageMaker Clarify 처리 작업은 GPU를 사용하지 않습니다.

   다음 코드는 리소스 구성의 예제를 보여줍니다.

   ```
   {
       "ClusterConfig": {
            "InstanceCount": 1,
            "InstanceType": "ml.m5.xlarge",
            "VolumeSizeInGB": 20
        }
   }
   ```

1. `NetworkConfig` 객체 내에서 해당 처리 작업에 사용되는 네트워크의 구성을 지정합니다. 해당 구성에는 다음 값이 필요합니다.

   1. 예측에 필요한 경우 SageMaker Clarify가 예측을 위해 엔드포인트를 호출할 수 있게 하려면 `EnableNetworkIsolation`은 `False`(기본값)로 설정되어 있어야 합니다.

   1. 사용자가 SageMaker Clarify 작업에 제공한 모델 또는 엔드포인트가 Amazon Virtual Private Cloud(Amazon VPC) 내에 있는 경우, SageMaker Clarify 작업 역시 동일한 VPC에 있어야 합니다. [VpcConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)를 사용하여 VPC를 지정합니다. 또한 VPC에는 Amazon S3 버킷, SageMaker AI 서비스 및 SageMaker AI 런타임 서비스에 대한 엔드포인트가 있어야 합니다.

      분산 처리가 활성화된 경우, 동일한 처리 작업에서 서로 다른 인스턴스 간 통신도 필수적으로 허용해야 합니다. 동일한 보안 그룹의 구성원 간 인바운드 연결을 허용하는 보안 그룹 규칙을 구성합니다. 자세한 내용은 [Amazon SageMaker Clarify 작업에 Amazon VPC의 리소스에 대한 액세스 권한 부여](clarify-vpc.md) 단원을 참조하십시오.

   다음 코드는 네트워크 구성의 예제를 제공합니다.

   ```
   {
       "EnableNetworkIsolation": False,
       "VpcConfig": {
           ...
       }
   }
   ```

1. `StoppingCondition` 매개변수를 사용하여 작업이 실행되는 최대 시간을 설정합니다. SageMaker Clarify 작업을 실행할 수 있는 가장 긴 시간은 `7`일 또는 `604800`초입니다. 이 제한 시간 이내에 작업을 완료할 수 없는 경우에는 작업이 중지되고, 분석 결과도 제공되지 않습니다. 예를 들어, 다음 구성은 작업을 실행할 수 있는 최대 시간을 3600초로 제한합니다.

   ```
   {
       "MaxRuntimeInSeconds": 3600
   }
   ```

1. `RoleArn` 매개변수를 위한 IAM 역할을 지정합니다. 해당 역할은 반드시 Amazon SageMaker AI와 신뢰 관계를 맺고 있어야 합니다. 이는 다음 테이블에 나열된 SageMaker API 작업을 수행하는 데 사용될 수 있습니다. 여기에는 SageMaker AI에 대한 전체 액세스 권한을 부여해주는 Amazon SageMaker AIFullAccess 관리형 정책을 사용하는 것이 좋습니다. 이 정책에 대한 자세한 내용은 [AWS 관리형 정책: AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess) 섹션을 참조하세요. 전체 액세스 권한 부여 시 우려사항이 있는 경우, 필요한 최소 권한은 사용자가 모델 이름을 제공하는지 엔드포인트 이름을 제공하는지에 따라 달라집니다. 엔드포인트 이름을 사용하면 SageMaker AI에 더 적은 권한을 부여해도 됩니다.

   다음 표에는 SageMaker Clarify 처리 작업에서 사용하는 API 작업들이 나와 있습니다. **모델 이름** 및 **엔드포인트 이름** 열 아래에 표시된 **X**는 각 입력을 위해 요구되는 API 작업을 의미합니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/clarify-processing-job-configure-parameters.html)

   필요한 권한에 대한 자세한 내용은 [Amazon SageMaker AI API 권한: 작업, 권한 및 리소스 참조](api-permissions-reference.md) 섹션을 참조하세요.

   SageMaker AI에 역할을 전달하는 방법에 대한 자세한 내용은 [역할 전달](sagemaker-roles.md#sagemaker-roles-pass-role) 섹션을 참조하세요.

   처리 작업 구성의 개별적인 부분들이 완료되면, 이를 모두 결합하여 작업을 구성하세요.

## AWS SDK for Python을 사용하여 SageMaker Clarify 처리 작업 구성
<a name="clarify-processing-job-configure-parameters-SDK"></a>

다음 코드 예제는 [AWS Python용 SDK](https://aws.amazon.com/sdk-for-python/)를 사용하여 SageMaker Clarify 처리 작업을 시작하는 방법을 보여줍니다.

```
sagemaker_client.create_processing_job(
    ProcessingJobName="your-clarify-job-name",
    AppSpecification={
        "ImageUri": "the-clarify-container-image-uri",
    },
    ProcessingInputs=[{
            "InputName": "analysis_config",
            "S3Input": {
                "S3Uri": "s3://your-bucket/analysis_config.json",
                "S3DataType": "S3Prefix",
                "S3InputMode": "File",
                "LocalPath": "/opt/ml/processing/input/config",
            },
        }, {
            "InputName": "dataset",
            "S3Input": {
                "S3Uri": "s3://your-bucket/your-dataset.csv",
                "S3DataType": "S3Prefix",
                "S3InputMode": "File",
                "LocalPath": "/opt/ml/processing/input/data",
            },
        },
    ],
    ProcessingOutputConfig={
        "Outputs": [{ 
            "OutputName": "analysis_result",
            "S3Output": { 
               "S3Uri": "s3://your-bucket/result/",
               "S3UploadMode": "EndOfJob",
               "LocalPath": "/opt/ml/processing/output",
            },   
        }],
    },
    ProcessingResources={
        "ClusterConfig": {
            "InstanceCount": 1,
            "InstanceType": "ml.m5.xlarge",
            "VolumeSizeInGB": 20,
        },
    },
    NetworkConfig={
        "EnableNetworkIsolation": False,
        "VpcConfig": {
            ...
        },
    },
    StoppingCondition={
        "MaxRuntimeInSeconds": 3600,
    },
    RoleArn="arn:aws:iam::<your-account-id>:role/service-role/AmazonSageMaker-ExecutionRole",
)
```

 AWS SDK for Python을 사용하여 SageMaker Clarify 처리 작업을 실행하기 위한 지침이 포함된 예제 노트북은 [Python용 AWS SDK를 사용하여 SageMaker Clarify를 사용한 공정성 및 설명 가능성을](http://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability_boto3.ipynb) 참조하세요. 노트북에 사용되는 모든 S3 버킷은 해당 버킷에 액세스하는 노트북 인스턴스와 동일한 AWS 리전에 있어야 합니다.

## SageMaker Python SDK를 사용하여 SageMaker Clarify 처리 작업 구성
<a name="clarify-processing-job-configure-parameters-SM-SDK"></a>

SageMaker Python SDK API에서 [SageMaker ClarifyProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.SageMakerClarifyProcessor)를 사용하여 SageMaker Clarify 처리 작업을 구성하는 것도 가능합니다. 자세한 내용은 [편향 분석 및 설명 가능성을 위한 SageMaker Clarify 처리 작업 실행](clarify-processing-job-run.md) 단원을 참조하십시오.

**Topics**
+ [사전 구축된 SageMaker Clarify 컨테이너](clarify-processing-job-configure-container.md)
+ [분석 구성 파일](clarify-processing-job-configure-analysis.md)
+ [데이터 형식 호환성 안내서](clarify-processing-job-data-format.md)