

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

# Neo로 컴파일된 권장 사항
<a name="inference-recommender-neo-compilation"></a>

Inference Recommender에서는 Neo로 모델을 컴파일하고 컴파일된 모델에 대한 엔드포인트 권장 사항을 가져올 수 있습니다. [SageMaker Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html)는 대상 하드웨어 플랫폼(즉, 특정 인스턴스 유형 또는 환경)에 맞게 모델을 최적화하는 서비스입니다. Neo로 모델을 최적화하면 호스팅된 모델의 성능이 향상될 수 있습니다.

Neo 지원 프레임워크 및 컨테이너인 경우, Inference Recommender는 Neo에 최적화된 권장 사항을 자동으로 제안합니다. Neo 컴파일 대상이 되려면 입력이 다음 필수 조건을 충족해야 합니다.
+ SageMaker AI 소유 [DLC](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/what-is-dlc.html) 또는 XGBoost 컨테이너 사용.
+ Neo에서 지원하는 프레임워크 버전 사용. Neo에서 지원하는 프레임워크 버전은 [클라우드 인스턴스](neo-supported-cloud.md#neo-supported-cloud-instances)에 있는 SageMaker Neo 설명서에서 확인하세요.
+ Neo를 사용하려면 모델에 맞는 정확한 입력 데이터 형상을 입력해야 합니다. 이 데이터 형상은 모델 패키지를 생성할 때 `[DataInputConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelInput.html#sagemaker-Type-ModelInput-DataInputConfig)`(`[InferenceSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelPackage.html#sagemaker-CreateModelPackage-request-InferenceSpecification)` 내)(으)로 지정할 수 있습니다. 프레임워크별 정확한 데이터 형상에 대한 자세한 정보는 SageMaker Neo 설명서에 있는 [컴파일용 모델 준비](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-compilation-preparing-model.html)에서 확인하세요.

  다음 예제에서는 `data_input_configuration`이 사전 형식의 데이터 형상(예: `{'input':[1,1024,1024,3]}`)을 포함하는 변수인 `InferenceSpecification`에서 `DataInputConfig` 필드를 지정하는 방법을 볼 수 있습니다.

  ```
  "InferenceSpecification": {
          "Containers": [
              {
                  "Image": dlc_uri,
                  "Framework": framework.upper(),
                  "FrameworkVersion": framework_version,
                  "NearestModelName": model_name,
                  "ModelInput": {"DataInputConfig": data_input_configuration},
              }
          ],
          "SupportedContentTypes": input_mime_types,  # required, must be non-null
          "SupportedResponseMIMETypes": [],
          "SupportedRealtimeInferenceInstanceTypes": supported_realtime_inference_types,  # optional
      }
  ```

요청에서 이러한 조건이 충족되면 Inference Recommender는 컴파일된 버전과 컴파일되지 않은 버전의 모델 모두에 대해 시나리오를 실행하여 선택할 수 있는 여러 권장 조합을 제공합니다. 동일한 추론 권장 사항의 컴파일된 버전과 컴파일되지 않은 버전의 구성을 비교하여 사용 사례에 가장 적합한 버전을 정할 수 있습니다. 권장 사항은 추론당 비용을 기준으로 순위가 매겨집니다.

Neo 컴파일 권장 사항을 가져오려면 입력이 상기 요구 사항을 충족하는지 확인하는 것 외에 추가 구성을 수행할 필요가 없습니다. 입력이 요구 사항을 충족하는 경우 Inference Recommender는 모델에서 Neo 컴파일을 자동으로 실행하며 Neo 권장 사항이 포함된 응답을 받습니다.

Neo 컴파일 중에 오류가 발생할 경우 [Neo 컴파일 오류 문제 해결](neo-troubleshooting-compilation.md)을(를) 참조하세요.

다음 표는 컴파일된 모델에 대한 권장 사항이 포함된 Inference Recommender 작업에서 가져올 수 있는 응답의 예시입니다. `InferenceSpecificationName` 필드가 `None`라면 권장 사항은 컴파일되지 않은 모델입니다. **InferenceSpecificationName** 필드 값이 `neo-00011122-2333-4445-5566-677788899900`인 마지막 행은 이며, Neo로 컴파일된 모델입니다. 필드 값은 모델을 컴파일하고 최적화하는 데 사용되는 Neo 작업의 이름입니다.


| EndpointName | InstanceType | InitialInstanceCount | EnvironmentParameters | CostPerHour | CostPerInference | MaxInvocations | ModelLatency | InferenceSpecificationName | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| sm-epc-example-000111222 | ml.c5.9xlarge | 1 | [] | 1.836 | 9.15E-07 | 33456 | 7 | 없음 | 
| sm-epc-example-111222333 | ml.c5.2xlarge | 1 | [] | 0.408 | 2.11E-07 | 32211 | 21 | 없음 | 
| sm-epc-example-222333444 | ml.c5.xlarge | 1 | [] | 0.204 | 1.86E-07 | 18276 | 92 | 없음 | 
| sm-epc-example-333444555 | ml.c5.xlarge | 1 | [] | 0.204 | 1.60E-07 | 21286 | 42 | neo-00011122-2333-4445-5566-677788899900 | 

## 시작하기
<a name="inference-recommender-neo-compilation-get-started"></a>

NEO에 최적화된 권장 사항을 포함하는 Inference Recommender 작업을 생성하는 일반적인 단계는 다음과 같습니다.
+ 컴파일용 ML 모델을 준비합니다. 자세한 정보는 Neo 설명서에 있는 [컴파일용 모델 준비](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-compilation-preparing-model.html)에서 확인하세요.
+ 모델 아카이브(`.tar.gz` 파일)에 모델을 패키징합니다.
+ 샘플 페이로드 아카이브를 생성합니다.
+ SageMaker 모델 레지스트리에 모델을 등록합니다.
+ Inference Recommender 작업을 생성합니다.
+ Inference Recommender 작업 결과를 보고 구성을 선택합니다.
+ 컴파일 실패 시 디버그합니다. 자세한 정보는 [Neo 컴파일 오류 해결](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-troubleshooting-compilation.html)에서 확인하세요.

이전 워크플로를 보여주는 예제와 XGBoost를 사용하여 Neo에 최적화된 권장 사항을 가져오는 방법을 보여주는 예제는 다음 [예제 노트북](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-inference-recommender/xgboost/xgboost-inference-recommender.ipynb)에서 확인하세요. 이전 TensorFlow를 사용하여 Neo에 최적화된 권장 사항을 가져오는 방법을 보여주는 예제는 다음 [예제 노트북](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-inference-recommender/inference-recommender.ipynb)에서 확인하세요.