

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

# 선별된 허브 모델 미세 조정
<a name="jumpstart-curated-hubs-fine-tune"></a>

선별된 프라이빗 모델 허브에서 모델 참조를 사용하여 미세 조정 훈련 작업을 실행할 수 있습니다. 모델 참조는 SageMaker AI 퍼블릭 허브에서 공개적으로 사용 가능한 JumpStart 모델을 가리키지만, 특정 사용 사례에 맞게 자체 데이터에서 모델을 미세 조정할 수 있습니다. 미세 조정 작업 후에는 사용 또는 엔드포인트에 배포할 수 있는 모델 가중치에 액세스할 수 있습니다.

SageMaker Python SDK를 사용하여 단 몇 줄의 코드로 선별된 허브 모델을 미세 조정할 수 있습니다. 공개적으로 사용 가능한 JumpStart 모델을 미세 조정하는 방법에 관한 자세한 내용은 [미세 조정을 위한 파운데이션 모델 및 하이퍼파라미터](jumpstart-foundation-models-fine-tuning.md) 섹션을 참조하세요.

## 사전 조건
<a name="jumpstart-curated-hubs-fine-tune-prereqs"></a>

선별된 허브에서 JumpStart 모델 참조를 미세 조정하려면 다음과 같이 합니다.

1. 사용자의 IAM 역할에 SageMaker AI `TrainHubModel` 권한이 연결되어 있는지 확인합니다. 자세한 내용은 *AWS IAM 사용 설명서*의 [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

   IAM 역할에 다음 예시와 같은 정책을 연결할 수 있습니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "sagemaker:TrainHubModel",
               "Resource": "arn:aws:sagemaker:*:111122223333:hub/*"
           }
       ]
   }
   ```

------
**참고**  
선별된 허브가 계정 간에 공유되고 허브 콘텐츠를 다른 계정에서 소유한 경우 다음 예시와 같이 `HubContent`(모델 참조 리소스)가 요청 계정에 `TrainHubModel` 권한을 부여하는 리소스 기반 IAM 정책이 있는지도 확인합니다.  

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowCrossAccountSageMakerAccess",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:root"
               },
               "Action": [
                   "sagemaker:TrainHubModel"
               ],
               "Resource": [
                   "arn:aws:sagemaker:*:111122223333:hub/*"
               ]
           }
       ]
   }
   ```

1. 미세 조정하려는 JumpStart 모델에 대한 모델 참조가 포함된 선별된 프라이빗 허브가 있어야 합니다. 프라이빗 허브 만들기에 관한 자세한 내용은 [프라이빗 모델 허브 생성](jumpstart-curated-hubs-admin-guide-create.md) 섹션을 참조하세요. 공개적으로 사용 가능한 JumpStart 모델을 프라이빗 허브에 추가하는 방법은 [프라이빗 허브에 모델 추가](jumpstart-curated-hubs-admin-guide-add-models.md) 섹션을 참조하세요.
**참고**  
선택한 JumpStart 모델은 미세 조정이 가능해야 합니다. [사전 훈련된 모델 테이블이 있는 기본 제공 알고리즘](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)을 확인하여 모델이 미세 조정을 지원하는지 확인할 수 있습니다.

1. 모델을 미세 조정하는 데 사용할 훈련 데이터세트가 있어야 합니다. 데이터세트는 미세 조정하려는 모델에 적절한 훈련 형식이어야 합니다.

## 선별된 허브 모델 참조 미세 조정
<a name="jumpstart-curated-hubs-fine-tune-pysdk"></a>

다음 절차에서는 SageMaker Python SDK를 사용하여 선별된 프라이빗 허브에서 모델 참조를 미세 조정하는 방법을 보여줍니다.

1. 최신 버전(`2.242.0` 이상)의 SageMaker Python SDK가 설치되어 있는지 확인합니다. 자세한 내용은 [Use Version 2.x of the SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/v2.html)를 참조하세요.

   ```
   !pip install --upgrade sagemaker
   ```

1. SageMaker Python SDK에서 필요한 AWS SDK for Python (Boto3) 및 모듈을 가져옵니다.

   ```
   import boto3
   from sagemaker.jumpstart.estimator import JumpStartEstimator
   from sagemaker.session import Session
   ```

1. Boto3 세션, SageMaker AI 클라이언트 및 SageMaker Python SDK 세션을 초기화합니다.

   ```
   sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker")
   sm_session = Session(sagemaker_client=sagemaker_client)
   ```

1. `JumpStartEstimator`를 만들고 JumpStart 모델 ID, 모델 참조가 포함된 허브의 이름, SageMaker Python SDK 세션을 입력합니다. 모델 ID 목록은 [Built-in Algorithms with Pre-trained Models Table](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html)을 참조하세요.

   필요한 경우 예측기를 생성할 때 `instance_type` 및 `instance_count` 필드를 지정할 수 있습니다. 그렇지 않은 경우 훈련 작업은 사용 중인 모델에 대해 기본 인스턴스 유형과 개수를 사용합니다.

   또한 필요에 따라 미세 조정 모델 가중치를 저장하려는 Amazon S3 위치에 `output_path`를 지정할 수 있습니다. `output_path`를 지정하지 않으면 계정의 리전에 대해 다음 형식(`sagemaker-<region>-<account-id>`)으로 이름이 지정된 기본 SageMaker AI Amazon S3 버킷을 사용합니다.

   ```
   estimator = JumpStartEstimator(
       model_id="meta-textgeneration-llama-3-2-1b",
       hub_name=<your-hub-name>,
       sagemaker_session=sm_session, # If you don't specify an existing session, a default one is created for you
       # Optional: specify your desired instance type and count for the training job
       # instance_type = "ml.g5.2xlarge"
       # instance_count = 1
       # Optional: specify a custom S3 location to store the fine-tuned model artifacts
       # output_path: "s3://<output-path-for-model-artifacts>"
   )
   ```

1. 미세 조정 데이터세트의 위치를 지정하는 `training` 키를 사용하여 사전을 만듭니다. 이 예시는 Amazon S3 URI를 가리킵니다. 로컬 모드 또는 여러 훈련 데이터 채널 사용 등 추가 고려 사항이 있는 경우 자세한 내용은 SageMaker Python SDK 설명서의 [JumpStartEstimator.fit()](https://sagemaker.readthedocs.io/en/stable/api/training/estimators.html#sagemaker.jumpstart.estimator.JumpStartEstimator.fit)를 참조하세요.

   ```
   training_input = {
       "training": "s3://<your-fine-tuning-dataset>"
   }
   ```

1. 예측기의 `fit()` 메서드를 직접적으로 호출하고 훈련 데이터와 EULA 수락(해당하는 경우)을 전달합니다.
**참고**  
다음 예시는 `accept_eula=False.` 설정을 보여주며, EULA를 수락하려면 값을 `True`로 수동으로 변경해야 합니다.

   ```
   estimator.fit(inputs=training_input, accept_eula=False)
   ```

이제 미세 조정 작업이 시작됩니다.

SageMaker AI 콘솔에서 또는 [ListTrainingJobs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListTrainingJobs.html) API를 사용해 훈련 작업을 확인하여 미세 조정 작업을 점검할 수 있습니다.

`JumpStartEstimator` 객체에 지정된 Amazon S3 `output_path`(리전의 기본 SageMaker AI Amazon S3 버킷 또는 해당하는 경우 지정한 사용자 지정 Amazon S3 경로)에서 미세 조정 모델 아티팩트에 액세스할 수 있습니다.