를 사용하여 텍스트 생성 모델을 미세 조정하는 AutoML 작업 생성 API - Amazon SageMaker

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

를 사용하여 텍스트 생성 모델을 미세 조정하는 AutoML 작업 생성 API

대규모 언어 모델(LLMs)은 텍스트 생성, 요약, 완료, 질문 응답 등을 비롯한 여러 생성 작업에 탁월합니다. 이들의 성과는 규모가 크고 다양한 데이터 세트와 다양한 작업에 대한 광범위한 훈련 덕분일 수 있습니다. 그러나 의료 및 금융 서비스와 같은 특정 영역에서는 고유한 데이터 및 사용 사례에 맞게 적용하기 위해 맞춤형 미세 조정이 필요할 수 있습니다. 특정 도메인에 맞게 훈련을 조정하면 LLMs는 성능을 개선하고 대상 애플리케이션에 보다 정확한 출력을 제공할 수 있습니다.

Autopilot은 몇몇 사전 훈련된 생성 텍스트 모델을 미세 조정할 수 있는 기능을 제공합니다. 특히 Autopilot은 로 구동되는 다양한 범용 대언어 모델(LLMs)의 명령 기반 미세 조정을 지원합니다 JumpStart.

참고

Autopilot에서 미세 조정을 지원하는 텍스트 생성 모델은 현재 SageMaker Canvas에서 지원하는 리전에서만 액세스할 수 있습니다. 지원되는 리전의 전체 목록은 SageMaker Canvas 설명서를 참조하세요. https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html

사전 훈련된 모델을 미세 조정하려면 출력을 생성하거나 해당 작업에 맞게 동작하는 방법에 대한 모델을 안내하는 명확한 지침을 가진 특정 데이터 세트가 필요합니다. 모델은 데이터 세트에서 학습하고 제공된 지침에 맞게 파라미터를 조정합니다. 지침 기반 미세 조정에는 프롬프트-응답 페어로 형식이 지정되고 지침으로 표현되는 레이블이 지정된 예제를 사용하는 것이 포함됩니다. 미세 조정에 대한 자세한 내용은 파운데이션 모델 미세 조정을 참조하세요.

다음 지침은 SageMaker API 참조 를 LLMs 사용하여 텍스트 생성을 미세 조정하기 위한 파일럿 실험으로 Amazon SageMaker Autopilot 작업을 생성하는 프로세스를 간략하게 설명합니다.

참고

텍스트 및 이미지 분류, 시계열 예측, 대규모 언어 모델의 미세 조정과 같은 작업은 AutoML 버전 2에서만 사용할 수 있습니다RESTAPI. 선택한 언어가 Python인 경우 Amazon SageMaker Python의 AWS SDK for Python (Boto3) 또는 AutoMLV2 객체를 SDK 직접 참조할 수 있습니다.

사용자 인터페이스의 편의성을 선호하는 사용자는 Amazon SageMaker Canvas를 사용하여 사전 훈련된 모델 및 생성형 AI 파운데이션 모델에 액세스하거나 특정 텍스트, 이미지 분류, 예측 요구 사항 또는 생성형 AI에 맞게 사용자 지정 모델을 생성할 수 있습니다.

를 미세 조정하기 위해 프로그래밍 방식으로 Autopilot 실험을 생성하려면 Amazon SageMaker Autopilot 또는 CreateAutoMLJobV2API에서 지원하는 모든 언어로 를 호출LLM할 수 있습니다 AWS CLI.

이 API 작업이 원하는 언어로 된 함수로 변환되는 방법에 대한 자세한 내용은 의 또한 섹션을 참조CreateAutoMLJobV2하고 를 선택합니다SDK. 예를 들어, Python 사용자의 경우 AWS SDK for Python (Boto3)에서 create_auto_ml_job_v2의 전체 요청 구문을 참조하세요.

참고

Autopilot은 여러 후보를 훈련 및 평가할 필요 없이 대규모 언어 모델을 미세 조정합니다. 대신 Autopilot은 데이터 세트를 사용하여 대상 모델을 직접 미세 조정하여 기본 목표 지표인 교차 엔트로피 손실을 개선합니다. Autopilot에서 언어 모델을 미세 조정할 때는 AutoMLJobObjective 필드 설정이 필요하지 않습니다.

LLM 가 미세 조정되면 다양한 에 액세스하여 성능을 평가할 수 있습니다.ROUGE 는 DescribeAutoMLJobV2 API 전화를 걸 BestCandidate 때 를 통해 점수를 매깁니다. 또한 이 모델은 훈련 및 검증 손실과 Perplexity에 대한 정보도 제공합니다. 미세 조정된 모델에서 생성된 텍스트의 품질을 평가하기 위한 포괄적인 지표 목록은 Autopilot에서 대규모 언어 모델을 미세 조정하기 위한 지표를 참조하세요.

사전 조건

Autopilot을 사용하여 에서 미세 조정 실험을 생성하기 전에 다음 단계를 수행해야 SageMaker합니다.

  • (선택 사항) 미세 조정하려는 사전 훈련된 모델을 선택합니다.

    Amazon SageMaker Autopilot에서 미세 조정에 사용할 수 있는 사전 훈련된 모델 목록은 섹션을 참조하세요미세 조정을 위한 대규모 언어 모델 지원. 모델 선택은 필수가 아닙니다. 모델을 지정하지 않으면 Autopilot은 자동으로 모델 Falcon7BInstruct로 기본 설정됩니다.

  • 지침 데이터 세트 생성. 명령 기반 데이터 세트의 형식 요구 사항에 대한 데이터 세트 파일 유형 및 입력 데이터 형식 자세한 내용은 섹션을 참조하세요.

  • Amazon S3 버킷에 데이터 세트를 저장합니다.

  • 실험을 실행하는 데 사용되는 SageMaker 실행 역할에 대한 입력 데이터가 포함된 Amazon S3 버킷에 대한 전체 액세스 권한을 부여합니다.

    • SageMaker 실행 역할 검색에 대한 자세한 내용은 섹션을 참조하세요실행 역할 가져오기.

    • Amazon S3에서 하나 이상의 특정 버킷에 액세스할 수 있는 SageMaker 실행 역할 권한을 부여하는 방법에 대한 자세한 내용은 의 SageMaker 실행 역할에 Amazon S3 추가 권한 추가를 참조하세요실행 역할 생성.

  • 또한 에서 사용하는 기본 스토리지 Amazon S3 버킷에 액세스하는 데 필요한 권한을 실행 역할에 제공해야 합니다 JumpStart. 이 액세스 권한은 에서 사전 훈련된 모델 아티팩트를 저장하고 검색하는 데 필요합니다 JumpStart. 이 Amazon S3 버킷에 대한 액세스 권한을 부여하려면 실행 역할에 새로운 인라인 사용자 지정 정책을 생성해야 합니다.

    다음은 에서 AutoML 미세 조정 작업을 구성할 때 JSON 편집기에서 사용할 수 있는 정책의 예입니다us-west-2.

    JumpStart의 버킷 이름은 에 따라 미리 결정된 패턴을 따릅니다 AWS 리전. 그에 따라 버킷 이름을 조정해야 합니다.

    { "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::jumpstart-cache-prod-us-west-2", "arn:aws:s3:::jumpstart-cache-prod-us-west-2/*" ] }

이 작업이 완료되면 Autopilot API 요청에서 이 실행 역할ARN의 를 사용할 수 있습니다.

필수 파라미터

LLM 미세 조정CreateAutoMLJobV2을 위한 Autopilot 실험을 생성하기 위해 를 호출할 때 다음 값을 제공해야 합니다.

  • 작업 이름을 지정하기 위한 AutoMLJobName. 이름은 string 형식이어야 하며 최소 길이가 1자이고 최대 길이가 32자여야 합니다.

  • AutoMLJobInputDataConfig에 포함된 training 유형의 하나 이상의 AutoMLJobChannel. 이 채널은 미세 튜닝 데이터 세트가 위치한 Amazon S3 버킷의 이름을 지정합니다. validation 채널을 정의할 때 옵션이 있습니다. 검증 채널이 제공되지 않고 ValidationFractionAutoMLDataSplitConfig에 구성되어 있는 경우, 이 비율을 사용하여 훈련 데이터 세트를 훈련 세트와 검증 세트로 무작위로 나눕니다. 또한 데이터 세트의 콘텐츠 유형(CSV 또는 Parquet 파일)을 지정할 수 있습니다.

  • 훈련 작업의 설정을 TextGenerationJobConfig 구성하는 AutoMLProblemTypeConfig 유형의 입니다.

    특히 기본 모델의 이름을 지정하여 BaseModelName 필드에서 미세 조정할 수 있습니다. Amazon SageMaker Autopilot에서 미세 조정에 사용할 수 있는 사전 훈련된 모델 목록은 섹션을 참조하세요미세 조정을 위한 대규모 언어 모델 지원.

  • AutoML 작업의 아티팩트를 저장할 Amazon S3 출력 경로를 지정하기 위한 OutputDataConfig.

  • 데이터에 액세스하는 RoleArn 데 사용되는 역할ARN의 를 지정하는 입니다.

다음은 (Falcon7BInstruct) 모델을 미세 조정하기 CreateAutoMLJobV2 위해 에 API 호출할 때 사용되는 전체 요청 형식의 예입니다.

{ "AutoMLJobName": "<job_name>", "AutoMLJobInputDataConfig": [ { "ChannelType": "training", "CompressionType": "None", "ContentType": "text/csv", "DataSource": { "S3DataSource": { "S3DataType": "S3Prefix", "S3Uri": "s3://<bucket_name>/<input_data>.csv" } } } ], "OutputDataConfig": { "S3OutputPath": "s3://<bucket_name>/output", "KmsKeyId": "arn:aws:kms:<region>:<account_id>:key/<key_value>" }, "RoleArn":"arn:aws:iam::<account_id>:role/<sagemaker_execution_role_name>", "AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7BInstruct" } } }

다른 모든 파라미터는 선택 사항입니다.

선택적 파라미터

다음 섹션에서는 미세 조정 AutoML 작업에 전달할 수 있는 몇 가지 선택적 파라미터에 대해 자세히 설명합니다.

자체 검증 데이터 세트와 사용자 지정 데이터 분할 비율을 제공하거나 Autopilot이 데이터 세트를 자동으로 분할하도록 할 수 있습니다.

AutoMLJobChannel 객체(필수 파라미터 A 참조utoMLJobInputDataConfig)에는 기계 학습 모델을 구축할 때 데이터를 사용하는 방법을 지정하는 training 또는 validation 값으로 설정할 ChannelType수 있는 가 있습니다.

데이터 소스를 하나 이상 제공해야 하며 훈련 데이터용 및 검증 데이터용으로 최대 두 개의 데이터 소스가 허용됩니다. 데이터를 훈련 및 검증 데이터 세트로 분할하는 방법은 데이터 원본이 한 개 또는 두 개인지에 따라 달라집니다.

  • 데이터 소스가 하나뿐인 경우 ChannelType은 기본적으로 training으로 설정되며 이 값을 가져야 합니다.

    • AutoMLDataSplitConfigValidationFraction 값이 설정되지 않은 경우, 기본적으로 이 소스의 데이터 중 0.2(20%)가 검증에 사용됩니다.

    • ValidationFraction을 0과 1 사이의 값으로 설정하면 데이터 세트가 지정된 값을 기준으로 분할됩니다. 여기서 값은 검증에 사용되는 데이터 세트의 비율을 지정합니다.

  • 데이터 소스가 두 개 있는 경우, AutoMLJobChannel 개체 중 하나의 ChannelType을 기본값인 training으로 설정해야 합니다. 다른 데이터 소스의 ChannelTypevalidation으로 설정해야 합니다. 두 데이터 소스는 CSV 또는 Parquet 형식과 스키마가 동일해야 합니다. 각 소스의 모든 데이터가 훈련 또는 검증에 사용되므로 이 경우에 ValidationFraction에 대한 값을 설정하지 않아야 합니다. 이 값을 설정하면 오류가 발생합니다.

Autopilot을 사용하면 미세 조정된 모델을 엔드포인트에 자동으로 배포할 수 있습니다. 미세 조정된 모델에 대한 자동 배포를 활성화하려면 AutoML 작업 요청에 ModelDeployConfig를 포함하세요. 이렇게 하면 미세 조정된 모델을 SageMaker 엔드포인트에 배포할 수 있습니다. 다음은 사용자 지정에 사용할 수 있는 구성입니다.

미세 조정 전에 최종 사용자 라이선스 계약을 수락해야 하는 모델의 경우 를 구성할 TextGenerationJobConfig 때 에서 의 AcceptEula 속성을 ModelAccessConfigTrue로 설정EULA하여 를 수락할 수 있습니다AutoMLProblemTypeConfig.

를 구성할 TextGenerationJobConfigTextGenerationHyperParameters 속성에서 하이퍼파라미터 값을 설정하여 텍스트 생성 모델의 학습 프로세스를 최적화할 수 있습니다AutoMLProblemTypeConfig.

Autopilot을 사용하면 모든 모델에서 4개의 공통 하이퍼파라미터를 설정할 수 있습니다.

  • epochCount: 값은 1 ~ 범위 내의 정수 값을 포함하는 문자열이어야 합니다10.

  • batchSize: 값은 1 ~ 범위 내의 정수 값을 포함하는 문자열이어야 합니다64.

  • learningRate: 값은 0 ~ 범위 내의 부동 소수점 값을 포함하는 문자열이어야 합니다1.

  • learningRateWarmupSteps: 값은 0 ~ 범위 내의 정수 값을 포함하는 문자열이어야 합니다250.

각 하이퍼파라미터에 대한 자세한 내용은 섹션을 참조하세요텍스트 생성 모델의 학습 프로세스를 최적화하기 위한 하이퍼파라미터.

다음 JSON 예제는 4개의 하이퍼파라미터가 모두 구성된 TextGenerationJobConfig 에 전달된 TextGenerationHyperParameters 필드를 보여줍니다.

"AutoMLProblemTypeConfig": { "TextGenerationJobConfig": { "BaseModelName": "Falcon7B", "TextGenerationHyperParameters": {"epochCount":"5", "learningRate":"0.000001", "batchSize": "32", "learningRateWarmupSteps": "10"} } }