View a markdown version of this page

선별된 허브 모델 미세 조정 - Amazon SageMaker AI

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

선별된 허브 모델 미세 조정

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

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

사전 조건

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

  1. 사용자의 IAM 역할에 SageMaker AI TrainHubModel 권한이 연결되어 있는지 확인합니다. 자세한 내용은 AWS IAM 사용 설명서IAM 자격 증명 권한 추가 및 제거를 참조하세요.

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

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

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

    JSON
    { "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/*" ] } ] }
  2. 미세 조정하려는 JumpStart 모델에 대한 모델 참조가 포함된 선별된 프라이빗 허브가 있어야 합니다. 프라이빗 허브 만들기에 관한 자세한 내용은 프라이빗 모델 허브 생성 섹션을 참조하세요. 공개적으로 사용 가능한 JumpStart 모델을 프라이빗 허브에 추가하는 방법은 프라이빗 허브에 모델 추가 섹션을 참조하세요.

    참고

    선택한 JumpStart 모델은 미세 조정이 가능해야 합니다. 사전 훈련된 모델 테이블이 있는 기본 제공 알고리즘을 확인하여 모델이 미세 조정을 지원하는지 확인할 수 있습니다.

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

선별된 허브 모델 참조 미세 조정

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

  1. 최신 버전(2.242.0 이상)의 SageMaker Python SDK가 설치되어 있는지 확인합니다. 자세한 내용은 Use Version 2.x of the SageMaker Python SDK를 참조하세요.

    !pip install --upgrade sagemaker
  2. SageMaker Python SDK에서 필요한 AWS SDK for Python (Boto3) 및 모듈을 가져옵니다.

    import boto3 from sagemaker.jumpstart.estimator import JumpStartEstimator from sagemaker.session import Session
  3. Boto3 세션, SageMaker AI 클라이언트 및 SageMaker Python SDK 세션을 초기화합니다.

    sagemaker_client = boto3.Session(region_name=<AWS-region>).client("sagemaker") sm_session = Session(sagemaker_client=sagemaker_client)
  4. JumpStartEstimator를 만들고 JumpStart 모델 ID, 모델 참조가 포함된 허브의 이름, SageMaker Python SDK 세션을 입력합니다. 모델 ID 목록은 Built-in Algorithms with Pre-trained Models Table을 참조하세요.

    필요한 경우 예측기를 생성할 때 instance_typeinstance_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>" )
  5. 미세 조정 데이터세트의 위치를 지정하는 training 키를 사용하여 사전을 만듭니다. 이 예시는 Amazon S3 URI를 가리킵니다. 로컬 모드 또는 여러 훈련 데이터 채널 사용 등 추가 고려 사항이 있는 경우 자세한 내용은 SageMaker Python SDK 설명서의 JumpStartEstimator.fit()를 참조하세요.

    training_input = { "training": "s3://<your-fine-tuning-dataset>" }
  6. 예측기의 fit() 메서드를 직접적으로 호출하고 훈련 데이터와 EULA 수락(해당하는 경우)을 전달합니다.

    참고

    다음 예시는 accept_eula=False. 설정을 보여주며, EULA를 수락하려면 값을 True로 수동으로 변경해야 합니다.

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

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

SageMaker AI 콘솔에서 또는 ListTrainingJobs API를 사용해 훈련 작업을 확인하여 미세 조정 작업을 점검할 수 있습니다.

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