

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

# `ModelBuilder`를 사용하여 MLflow 모델 배포
<a name="mlflow-track-experiments-model-deployment"></a>

Amazon SageMaker AI 모델 빌더를 사용하여 MLflow 모델을 SageMaker 엔드포인트에 배포할 수 있습니다. Amazon SageMaker AI 모델 빌더에 대한 자세한 내용은 [Create a model in Amazon SageMaker AI with ModelBuilder](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-modelbuilder-creation.html)를 참조하세요.

`ModelBuilder`는 프레임워크 모델 또는 사용자 지정 추론 사양을 가져와 배포 가능한 모델로 변환하는 Python 클래스입니다. `ModelBuilder` 클래스에 대한 자세한 내용은 [ModelBuilder](https://sagemaker.readthedocs.io/en/stable/api/inference/model_builder.html#sagemaker.serve.builder.model_builder.ModelBuilder)를 참조하세요.

`ModelBuilder`를 사용하여 MLflow 모델을 배포하려면 `model_metadata["MLFLOW_MODEL_PATH"]` 속성에서 MLflow 아티팩트에 대한 경로를 제공합니다. 유효한 모델 경로 입력 형식에 대한 자세한 내용은 다음을 참조하세요.

**참고**  
MLflow 실행 ID 또는 MLflow 모델 레지스트리 경로 형식으로 모델 아티팩트 경로를 제공하는 경우 `model_metadata["MLFLOW_TRACKING_ARN"]` 속성을 통해 추적 서버 ARN도 지정해야 합니다.
+ [`model_metadata`에서 ARN이 필요한 모델 경로](#mlflow-track-experiments-model-deployment-with-arn)
+ [`model_metadata`에서 ARN이 필요하지 않은 모델 경로](#mlflow-track-experiments-model-deployment-without-arn)

## `model_metadata`에서 ARN이 필요한 모델 경로
<a name="mlflow-track-experiments-model-deployment-with-arn"></a>

다음 모델 경로에서는 배포를 위해 `model_metadata`에서 ARN을 지정해야 합니다.
+ MLflow [실행 ID:](https://mlflow.org/docs/latest/python_api/mlflow.entities.html?highlight=mlflow%20info#mlflow.entities.RunInfo.run_id) `runs:/aloy-run-id/run-relative/path/to/model`
+ MLflow [모델 레지스트리 경로](https://mlflow.org/docs/latest/model-registry.html#find-registered-models): `models:/model-name/model-version`

## `model_metadata`에서 ARN이 필요하지 않은 모델 경로
<a name="mlflow-track-experiments-model-deployment-without-arn"></a>

다음 모델 경로는 배포를 위해 `model_metadata`에서 ARN을 지정할 필요가 없습니다.
+ 로컬 모델 경로: `/Users/me/path/to/local/model`
+ Amazon S3 모델 경로: `s3://amzn-s3-demo-bucket/path/to/model`
+ 모델 패키지 ARN: `arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name`

MLflow 모델 배포가 Amazon SageMaker AI에서 작동하는 방식에 대한 자세한 내용은 MLflow 설명서에 나와 있는 [Deploy MLflow Model to Amazon SageMaker AI](https://mlflow.org/docs/latest/deployment/deploy-model-to-sagemaker.html)를 참조하세요.

Amazon S3 경로를 사용하는 경우 다음 명령을 사용하여 등록된 모델의 경로를 찾을 수 있습니다.

```
registered_model = client.get_registered_model(name='AutoRegisteredModel')
source_path = registered_model.latest_versions[0].source
```

다음 샘플은 `ModelBuilder` 및 MLflow 모델 레지스트리 경로를 사용하여 MLflow 모델을 배포하는 방법에 대한 개요입니다. 이 샘플은 MLflow 모델 레지스트리 경로의 형태로 모델 아티팩트 경로를 제공하기 때문에 `ModelBuilder`에 대한 호출은 `model_metadata["MLFLOW_TRACKING_ARN"]` 속성을 통해 추적 서버 ARN도 지정해야 합니다.

**중요**  
`ModelBuilder`를 사용하려면 SageMaker Python SDK 버전 [2.224.0](https://pypi.org/project/sagemaker/2.224.0/) 이상을 사용해야 합니다.

**참고**  
다음 코드 예제를 참조하세요. 등록된 MLflow 모델을 배포하는 방법을 보여주는 엔드 투 엔드 예제는 [Jupyter 노트북 예제를 사용한 MLflow 자습서](mlflow-tutorials.md) 섹션을 참조하세요.

```
from sagemaker.serve import ModelBuilder
from sagemaker.serve.mode.function_pointers import Mode
from sagemaker.serve import SchemaBuilder

my_schema = SchemaBuilder(
    sample_input=sample_input, 
    sample_output=sample_output
)

model_builder = ModelBuilder(
    mode=Mode.SAGEMAKER_ENDPOINT,
    schema_builder=my_schema,
    role_arn="Your-service-role-ARN",
    model_metadata={
        # both model path and tracking server ARN are required if you use an mlflow run ID or mlflow model registry path as input
        "MLFLOW_MODEL_PATH": "models:/sklearn-model/1"
        "MLFLOW_TRACKING_ARN": "arn:aws:sagemaker:region:account-id:mlflow-tracking-server/tracking-server-name"
    }
)
model = model_builder.build()
predictor = model.deploy( initial_instance_count=1, instance_type="ml.c6i.xlarge" )
```

`ModelBuilder`를 사용하여 배포된 MLflow 모델에 대한 [계보 추적](https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking.html)을 유지하려면 다음 IAM 권한이 있어야합니다.
+ `sagemaker:CreateArtifact`
+ `sagemaker:ListArtifacts`
+ `sagemaker:AddAssociation`
+ `sagemaker:DescribeMLflowTrackingServer`

**중요**  
계보 추적은 선택 사항입니다. 계보 추적과 관련된 권한 없이 배포가 성공합니다. 구성된 권한이 없는 경우 `model.deploy()`를 호출할 때 계보 추적 권한 오류가 표시됩니다. 그러나 엔드포인트 배포는 여전히 성공하며 모델 엔드포인트와 직접 상호 작용할 수 있습니다. 위 권한이 구성된 경우 계보 추적 정보가 자동으로 생성되고 저장됩니다.

자세한 정보와 엔드 투 엔드 예는 [Jupyter 노트북 예제를 사용한 MLflow 자습서](mlflow-tutorials.md) 섹션을 참조하세요.