기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SageMaker 훈련 작업을 사용하여 Amazon Nova 모델 미세 조정
SageMaker 훈련 작업을 사용하여 Amazon Nova 모델을 미세 조정하면 특정 사용 사례에 맞게 파운데이션 모델을 사용자 지정할 수 있는 강력한 방법을 제공합니다.
사전 조건
훈련 작업을 시작하기 전에 다음 사항에 유의하세요.
-
입력 데이터와 훈련 작업 출력을 저장하는 Amazon S3 버킷입니다. 두 버킷 모두에 하나의 버킷을 사용하거나 각 데이터 유형에 대해 별도의 버킷을 사용할 수 있습니다. 훈련을 위해 다른 모든 리소스를 생성하는 AWS 리전 동일한 위치에 버킷이 있는지 확인합니다. 자세한 내용은 범용 버킷 생성을 참조하세요.
-
훈련 작업을 실행할 수 있는 권한이 있는 IAM 역할입니다. 에 IAM 정책을 연결해야 합니다
AmazonSageMakerFullAccess. 자세한 내용은 SageMaker 실행 역할을 사용하는 방법을 참조하세요. -
기본 Amazon Nova 레시피는 섹션을 참조하세요Amazon Nova 레시피 가져오기.
데이터 준비
고품질의 적절한 형식의 데이터를 준비하는 것은 대규모 언어 모델의 미세 조정 프로세스에서 중요한 첫 번째 단계입니다. 전체 순위 또는 하위 순위 적응(LoRA) 접근 방식과 함께 지도형 미세 조정(SFT) 또는 직접 선호 최적화(DPO)를 사용하는 경우 성공적인 모델 훈련을 위해서는 데이터가 특정 형식 요구 사항을 준수해야 합니다. 이 섹션에서는 Amazon Nova 모델을 미세 조정하기 위해 데이터세트를 효과적으로 준비하는 데 필요한 데이터 형식, 검증 방법 및 모범 사례를 간략하게 설명합니다.
SFT
SFT 데이터 형식 요구 사항 - 전체 순위 SFT 및 LoRA SFT 모두에 대해 데이터는 Converse 형식을 따라야 합니다. 이 형식의 예제 및 제약 조건은 모델 이해를 미세 조정하기 위한 데이터 준비를 참조하세요.
SFT 데이터 검증 - 제출 전에 데이터 세트 형식을 검증하려면 Amazon Bedrock 샘플 리포지토리jsonl 파일이 필요한 형식 사양을 준수하는지 확인하고 미세 조정 작업을 제출하기 전에 잠재적 문제를 식별하는 데 도움이 됩니다.
DPO
DPO 데이터 형식 요구 사항 - 전체 순위의 DPO와 LoRA를 사용하는 DPO 모두에 대해 데이터는 Converse 형식을 따라야 합니다. 또한 데이터 세트는 SFT와 유사한 형식이어야 합니다. 단, 마지막 턴에는 기본 설정 페어가 있어야 합니다.
DPO 데이터 세트 기타 제약 조건 - 데이터 세트에 대한 다른 제약 조건은 SFT에 대해 동일합니다. 자세한 내용은 데이터 세트 제약 조건을 참조하세요. 훈련용 JSONL 파일 하나와 검증용 JSONL 파일 하나가 필요합니다. 검증 세트는 선택 사항입니다.
DPO 데이터 세트 권장 사항 - 효과적인 훈련을 위한 최소 1,000개의 기본 설정 페어. 고품질 기본 설정 데이터를 사용하면 더 효율적인 결과를 얻을 수 있습니다.
샘플 DPO 데이터 형식
// N-1 turns same as SFT format { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } // content list can contain multiple 'text' objects ], "preferenceLabel": "non-preferred" } ] }
샘플 DPO 데이터 형식(다중 회전)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." } ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
샘플 DPO 데이터 형식(이미지 포함)
{ "system": [ { "text": "..." } ], "messages":[ { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "content": [ { "text": "..." } ] }, { "role": "user", "content": [ { "text": "..." }, { "text": "..." }, { "image": { "format": "jpeg", "source": { "s3Location": { "uri": "s3://your-bucket/your-path/your-image.jpg", "bucketOwner": "your-aws-account-id" } } } } // "content" can have multiple "text" and "image" objects. // max image count is 10 ] }, { "role": "assistant", "candidates": [ { "content": [ { "text": "..." } ], "preferenceLabel": "preferred" }, { "content": [ { "text": "..." } ], "preferenceLabel": "non-preferred" } ] } ], }
아래 표의 추정치는 설명을 위해 5일의 훈련 기간을 가정하지만 훈련 작업은 기본적으로 1일의 시간 제한으로 설정됩니다. 더 긴 훈련 워크로드를 수용하려면 훈련 시간 제한을 최대 28일로 늘리는 것이 좋습니다. 한도 증가를 요청하려면 할당량 증가 요청을 참조하세요.
SFT 데이터 세트 제한
| 컨텍스트 길이 | 모델 | 메서드 | 데이터세트 | 설명 |
|---|---|---|---|---|
|
32k 컨텍스트 길이 작업 |
Amazon Nova Micro | 전체 순위 및 LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 100k개의 레코드만 가질 수 있습니다. |
|
Amazon Nova Lite |
전체 순위 | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 100k개의 레코드를 보유할 수 있습니다. |
|
| 이미지 및 비디오 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 50k개의 레코드를 보유할 수 있습니다. |
|||
| LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 100k개의 레코드를 보유할 수 있습니다. |
||
| 이미지 및 비디오 | 모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 90k개의 레코드를 보유할 수 있습니다. | |||
|
Amazon Nova Pro |
전체 순위 | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 40k개의 레코드를 보유할 수 있습니다. |
|
| 이미지 및 비디오 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 30k개의 레코드를 보유할 수 있습니다. |
|||
| LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 40k개의 레코드를 보유할 수 있습니다. |
||
| 이미지 및 비디오 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 35k개의 레코드를 보유할 수 있습니다. |
|||
|
64,000개의 컨텍스트 길이 작업 |
Amazon Nova Micro | 전체 순위 및 LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 64k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 50k개의 레코드만 가질 수 있습니다. |
|
Amazon Nova Lite |
전체 순위 | 텍스트만 |
모든 레코드의 컨텍스트 길이가 64k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 50k개의 레코드를 보유할 수 있습니다. |
|
|
이미지 및 비디오 |
모든 레코드의 컨텍스트 길이가 64,000개인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 30,000개의 레코드를 보유할 수 있습니다. |
|||
| LoRA | - |
Nova Lite의 경우 64k에서는 LoRA가 지원되지 않습니다. |
||
| Amazon Nova Pro | 전체 순위 및 LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 64k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 17k개의 레코드를 보유할 수 있습니다. |
|
|
이미지 및 비디오 |
모든 레코드의 컨텍스트 길이가 64k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 15k개의 레코드를 보유할 수 있습니다. |
DPO 데이터 세트 제한
| 컨텍스트 길이 | 모델 | 메서드 | 데이터세트 | 설명 |
|---|---|---|---|---|
|
16k 컨텍스트 길이 작업 |
Amazon Nova Micro | 전체 순위 | 텍스트만 |
모든 레코드의 컨텍스트 길이가 16k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 120k개의 레코드만 가질 수 있습니다. |
| LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 16,000개인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 125,000개의 레코드만 가질 수 있습니다. |
||
|
Amazon Nova Lite |
전체 순위 | 텍스트만 |
모든 레코드의 컨텍스트 길이가 16,000개인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 130,000개의 레코드를 보유할 수 있습니다. |
|
|
이미지 |
모든 레코드의 컨텍스트 길이가 16k이고 예를 들어 에포크 5개에 대해 실행되는 데이터 세트를 사용하는 경우 2일 이내에 20k 샘플을 완료할 수 있습니다. |
|||
| LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 16,000개인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 140,000개의 레코드를 보유할 수 있습니다. |
||
|
이미지 |
모든 레코드의 컨텍스트 길이가 16k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 2일 이내에 20k 샘플을 완료할 수 있습니다. |
|||
|
Amazon Nova Pro |
전체 순위 | 텍스트만 |
모든 레코드의 컨텍스트 길이가 16,000개인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 45,000개의 레코드를 보유할 수 있습니다. |
|
|
이미지 |
모든 레코드의 컨텍스트 길이가 16k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 4일 이내에 20k 샘플을 완료할 수 있습니다. |
|||
| LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 16,000개인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 55,000개의 레코드를 보유할 수 있습니다. |
||
|
이미지 |
모든 레코드의 컨텍스트 길이가 16k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 4일 이내에 20k 샘플을 완료할 수 있습니다. |
|||
|
32k 컨텍스트 길이 작업 |
Amazon Nova Micro | 전체 순위 | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 45k개의 레코드만 가질 수 있습니다. |
| LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 50k개의 레코드만 가질 수 있습니다. |
||
|
Amazon Nova Lite |
전체 순위 | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 55k개의 레코드를 보유할 수 있습니다. |
|
| 이미지 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 35k개의 레코드를 보유할 수 있습니다. |
|||
| LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 60k개의 레코드를 보유할 수 있습니다. |
||
| 이미지 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 35k개의 레코드를 보유할 수 있습니다. |
|||
| Amazon Nova Pro | 전체 순위 | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 20k개의 레코드를 보유할 수 있습니다. |
|
| 이미지 |
모든 레코드의 컨텍스트 길이가 64k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 16k개의 레코드를 보유할 수 있습니다. |
|||
| LoRA | 텍스트만 |
모든 레코드의 컨텍스트 길이가 32k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 22k개의 레코드를 보유할 수 있습니다. |
||
| 이미지 |
모든 레코드의 컨텍스트 길이가 64k인 데이터 세트를 사용하고 예를 들어 에포크 5개에 대해를 실행하는 경우 최대 18k개의 레코드를 보유할 수 있습니다. |
epoch 수 또는 레코드의 컨텍스트 길이를 줄이면 더 많은 레코드를 제공할 수 있습니다.
전체 순위 SFT 및 LoRA PEFT 구성
이 섹션에서는 전체 순위 지도 미세 조정(SFT) 및 하위 순위 적응 파라미터 효율성 미세 조정(LoRA PEFT) 접근 방식 모두에 대한 레시피 구성에 대한 지침을 다룹니다. 이러한 레시피 파일은 모델 사용자 지정 작업의 청사진 역할을 하므로 모델에서 데이터를 학습하는 방법을 결정하는 훈련 파라미터, 하이퍼파라미터 및 기타 중요한 설정을 지정할 수 있습니다. 하이퍼파라미터를 조정하려면 하이퍼파라미터 선택의 지침을 따릅니다.
미세 조정 구성(전체 순위 SFT 및 LoRA PEFT)
레시피 측면에서 전체 순위 SFT와 LoRA PEFT의 유일한 차이점은 LoRA PEFT 구성입니다. LoRA PEFT 구성은 전체 순위에 대해 'null'로 설정되고 LoRA PEFT 기반 미세 조정을 사용하는 경우 적절한 값으로 설정됩니다. 예제 레시피는 SageMaker HyperPod 레시피
"실행" 구성 정보.
| 키 | 정의 | Micro | 리터 | 프로 | |
|---|---|---|---|---|---|
| 실행 구성 | model_type |
사용할 Nova 모델 변형을 지정합니다. 이 필드를 수정하지 마십시오. |
"amazon.nova-micro-v1:0:128k" |
"amazon.nova-lite-v1:0:300k" |
"amazon.nova-pro-v1:0:300k" |
| model_name_or_path |
기본 모델의 경로입니다. |
"nova-micro/prod" |
“nova-lite/prod” |
"nova-pro/prod" |
|
| 복제본 |
분산 훈련에 사용할 컴퓨팅 인스턴스 수입니다. |
2, 4 또는 8 |
4, 8 또는 16 |
6, 12 또는 24 |
“training_config” 구성에 대한 정보입니다.
| 루트 키 | 하위 키 | 정의 | 최소 | 최대 | |
|---|---|---|---|---|---|
| max_length |
토큰의 최대 시퀀스 길이입니다. 이는 훈련을 위한 컨텍스트 창 크기를 결정합니다. 가장 가까운 1024 배수로 튜닝 가능, 최대값: 65536(Lite Lora 32768의 경우). |
1024 |
65536, 32768을 지원하는 Lite LoRA 제외. | ||
| global_batch_크기 |
단계당 총 샘플 수, 허용되는 값은 16, 32, 64입니다. 최대값: Nova Pro의 경우 32, Nova Lite 및 Micro의 경우 64. |
16 | Nova Pro의 경우 32, Nova Lite 및 Micro의 경우 64. | ||
| 트레이너 구성 | 트레이너 | max_epochs |
훈련 데이터 세트를 완전히 통과한 횟수입니다. 대부분의 사용자 지정 작업의 경우 일반적으로 1~5개의 epoch로 충분합니다. 최대 5개를 유지하는 것이 좋습니다. |
1 | - |
| 모델 구성 | 모델 | 숨김_드롭아웃 |
숨겨진 상태 출력을 삭제할 확률입니다. 더 작은 데이터 세트에 대한 과적합을 줄이려면 (0.0-0.2)를 늘립니다. 경계는 0~1입니다. |
0 | 1 |
| 모델 | attention_dropout |
주의력 가중치를 삭제할 확률입니다. 일반화에 도움이 될 수 있습니다. 경계는 0~1입니다. |
0 | 1 | |
| 모델 | ffn_dropout |
피드 포워드 네트워크 출력을 삭제할 확률입니다. 경계는 0~1입니다. |
0 | 1 | |
| 옵티마이저 구성 | model.optim | lr |
학습률, 최적화 중 단계 크기를 제어합니다. 제한은 0에서 1 사이입니다. 일반적으로 우수한 성능을 위해 1e-6에서 1e-4 사이로 설정됩니다. |
0 | 1 |
| model.optim | name |
옵티마이저 알고리즘. 현재 |
- | - | |
| model.optim | adam_w_mode |
AdamW 모드(true/false)를 활성화합니다. |
- | - | |
| model.optim | eps |
수치적 안정성을 위한 Epsilon. |
|||
| model.optim | weight_decay |
L2 정규화 강도는 0.0에서 1.0 사이여야 합니다. |
0 | 1 | |
| model.optim | 베타 |
Adam 옵티마이저 베타는 0.0에서 1.0 사이여야 합니다. |
0 | 1 | |
| model.optim | sched_warmup_steps |
학습률을 점진적으로 높이는 단계 수입니다. 이렇게 하면 훈련 안정성이 향상됩니다. 1~20. |
1 | 20 | |
| model.optim | sched_constant_steps |
일정한 학습 속도의 단계입니다. |
1.00E-10 | 1.00E-06 | |
| model.optim | sched.min_lr |
감소 종료 시 최소 학습률입니다. 제한은 0에서 1 사이이지만 학습률보다 작아야 합니다. |
0 | 1 | |
|
LoRA PEFT 구성 |
model.peft | peft_scheme |
"lora" 또는 "null"을 사용합니다. "lora"는 파라미터 효율적인 미세 조정을 위해 LoRA PEFT 메서드를 사용합니다. "null"은 전체 순위 미세 조정을 시작합니다. |
- | - |
| model.peft | lora_tuning.loraplus_lr_ratio |
LoRA+ 학습률 조정 인수는 0.0에서 100.0 사이여야 합니다. |
0 | 100 | |
| model.peft | lora_tuning.alpha |
LoRA 가중치의 조정 인수입니다. 허용되는 값은 32, 64, 96, 128, 160 및 192입니다. |
32 | 192 | |
| model.peft | lora_tuning.adapter_dropout |
LoRA 파라미터에 대한 정규화입니다. 0.0에서 1.0 사이여야 합니다. |
0 | 1 |
특정 구성 미세 조정(DPO)
LoRA PEFT 및 FullRank SFT와 비교한 DPO(Direct Preference Optimization)의 유일한 차이점은 dpo_cfg 구성 및 허용되는 값입니다. DPO에 대해 특별히 허용되는 예는 아래 표를 참조하세요. 예제 레시피는 SageMaker HyperPod 레시피
| 루트 키 | 하위 키 | 정의 | 최소 | 최대 | |
|---|---|---|---|---|---|
| max_length | 토큰의 최대 시퀀스 길이입니다. 이는 훈련을 위한 컨텍스트 창 크기를 결정합니다. 가장 가까운 1024 배수로 튜닝 가능, 최대값: 32,768. |
1024 |
32768 |
||
| global_batch_크기 |
글로벌 배치 크기, 허용되는 값은 {16, 32, 64, 128, 256}입니다. |
16 | 256 | ||
| 트레이너 구성 | 트레이너 | max_epochs |
훈련 데이터 세트를 완전히 통과한 횟수입니다. 대부분의 사용자 지정 작업의 경우 일반적으로 1~5개의 epoch로 충분합니다. 최대 epoch는 5입니다. |
1 | 5 |
| 모델 구성 | 모델 | 숨김_드롭아웃 |
숨겨진 상태 출력을 삭제할 확률입니다. 더 작은 데이터 세트에 대한 과적합을 줄이려면 (0.0-0.2)를 늘립니다. 경계는 0~1입니다. |
0 | 1 |
| 모델 | attention_dropout |
주의력 가중치를 삭제할 확률입니다. 일반화에 도움이 될 수 있습니다. 경계는 0~1입니다. |
0 | 1 | |
| 모델 | ffn_dropout |
피드 포워드 네트워크 출력을 삭제할 확률입니다. 경계는 0~1입니다. |
0 | 1 | |
| 최적화 프로그램 구성 | model.optim | lr |
학습률, 최적화 중 단계 크기를 제어합니다. 제한은 0에서 1 사이입니다. 일반적으로 우수한 성능을 위해 1e-6에서 1e-4 사이로 설정됩니다. |
0 | 1 |
| model.optim | name |
옵티마이저 알고리즘. 현재 |
- | - | |
| model.optim | adam_w_mode |
AdamW 모드(true/false)를 활성화합니다. |
- | - | |
| model.optim | eps |
수치적 안정성을 위한 Epsilon. |
1.00E-10 | 1.00E-06 | |
| model.optim | weight_decay |
L2 정규화 강도는 0.0에서 1.0 사이여야 합니다. |
0 | 1 | |
| model.optim | 베타 |
Adam 옵티마이저 베타는 0.0에서 1.0 사이여야 합니다. |
0 | 1 | |
| model.optim | sched_warmup_steps |
학습률을 점진적으로 높이는 단계 수입니다. 이렇게 하면 훈련 안정성이 향상됩니다. 1~20. |
1 | 20 | |
| model.optim | sched_constant_steps |
일정한 학습 속도의 단계입니다. |
|||
| model.optim | sched.min_lr |
감소 종료 시 최소 학습률입니다. 제한은 0에서 1 사이이지만 학습률보다 작아야 합니다. |
0 | 1 | |
|
LoRA PEFT 구성 |
model.peft | peft_scheme |
"lora" 또는 "null"을 사용합니다. "lora"는 파라미터 효율적인 미세 조정을 위해 LoRA PEFT 메서드를 사용합니다. "null"은 전체 순위 미세 조정을 시작합니다. |
- | - |
| model.peft | lora_tuning.loraplus_lr_ratio |
LoRA+ 학습률 조정 인수는 0.0에서 100.0 사이여야 합니다. |
0 | 100 | |
| model.peft | lora_tuning.alpha |
LoRA 가중치의 조정 인수입니다. 허용되는 값은 32, 64, 96, 128, 160 및 192입니다. |
32 | 192 | |
| model.peft | lora_tuning.adapter_dropout |
LoRA 파라미터에 대한 정규화입니다. 0.0에서 1.0 사이여야 합니다. |
0 | 1 | |
| DPO 구성 | model-dpo_cfg | beta |
기본 설정 적용의 강도입니다. |
0.001 | 0.1 |
SageMaker 훈련 작업에서 사용자 지정 Nova 모델 실행
이 섹션에서는 Jupyter 노트북 환경을 통해 SageMaker 훈련 작업에서 사용자 지정 Nova 모델을 실행하는 방법을 보여줍니다. 적절한 컨테이너 이미지 URIs. 이 접근 방식을 사용하면 모델 사용자 지정을 위해 SageMaker의 관리형 인프라를 활용하면서 미세 조정 워크플로를 프로그래밍 방식으로 제어할 수 있습니다. 자세한 내용은 SageMaker AI 예측기를 사용하여 훈련 작업 실행을 참조하세요.
참조 테이블
샘플 노트북을 실행하기 전에 다음 표를 참조하여 적절한 컨테이너 이미지 URIs 및 인스턴스 구성을 선택합니다.
이미지 URI 선택
| 레시피 | 이미지 URI |
|---|---|
|
SFT 이미지 URI |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-SFT-latest |
|
DPO 이미지 URI |
708977205387.dkr.ecr.us-east-1.amazonaws.com/nova-fine-tune-repo:SM-TJ-DPO-latest |
인스턴스 유형 및 개수 선택
| 모델 | 작업 유형 | 인스턴스 유형 | 권장 인스턴스 수 | 허용된 인스턴스 수 |
|---|---|---|---|---|
| Amazon Nova Micro | 미세 조정(SFT/DPO) |
p5.48xlarge |
2 | 2,4,8 |
| Amazon Nova Lite | 미세 조정(SFT/DPO) |
p5.48xlarge |
4 | 4,8,16 |
| Amazon Nova Pro | 미세 조정(SFT/DPO) |
p5.48xlarge |
6 | 6,12,24 |
샘플 노트북
다음 샘플 노트북은 훈련 작업을 실행하는 방법을 보여줍니다. SageMaker AI 훈련 작업을 사용하여 Nova 모델을 사용자 지정하는 방법에 대한 추가 시작하기 노트북은 SageMaker AI 예측기를 사용하여 훈련 작업 실행을 참조하세요.
# 1. Install dependencies !pip install sagemaker # 2. Import dependencies and initialize sagemaker session import sagemaker,boto3 sm = boto3.client('sagemaker', region_name='us-east-1') sagemaker_session = sagemaker.session.Session(boto_session=boto3.session.Session(), sagemaker_client=sm) # 3. Configure your job # Define the core configuration for launching a SageMaker Training Job. This includes input/output S3 URIs, container image, hardware setup, and other runtime parameters. Update the placeholders below before submitting the job. job_name = "<Your Job Name>" input_s3_uri = "<S3 path to input data>" validation_s3_uri = "<S3 path to validation data>" # optional, leave blank if no validation data output_s3_uri = "<S3 path to output location>" image_uri = "<Image URI from documentation>" # you can choose the image for SFT/DPO instance_type = "ml.p5.48xlarge" # do not change instance_count = <Integer number of hosts> # change hosts as needed. Refer to documentation for allowed values based on model type. role_arn = "<IAM Role you want to use to run the job>" recipe_path = "<Local path to the recipe file>" # 4. Launch SageMaker Training Job # This block sets up and runs the SageMaker training job using the PyTorch estimator. It configures the training image, hardware, input channels, and TensorBoard integration. Validation data is included if provided. from sagemaker.debugger import TensorBoardOutputConfig from sagemaker.pytorch import PyTorch from sagemaker.inputs import TrainingInput tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=output_s3_uri, ) estimator = PyTorch( output_path=output_s3_uri, base_job_name=job_name, role=role_arn, instance_count=instance_count, instance_type=instance_type, training_recipe=recipe_path, sagemaker_session=sagemaker_session, image_uri=image_uri, tensorboard_output_config=tensorboard_output_config, # Add the setting for using TensorBoard. disable_profiler=True, debugger_hook_config=False ) trainingInput = TrainingInput( s3_data=input_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) if (validation_s3_uri): validationInput = TrainingInput( s3_data=validation_s3_uri, distribution='FullyReplicated', s3_data_type='Converse' ) estimator.fit(inputs={"train": trainingInput, "validation": validationInput}) # inputs must be called "train" and "validation", do not change else: estimator.fit(inputs={"train": trainingInput}) # 5. Monitor your training job # To monitor your training job, you can either: # * Go to your AWS console -> Amazon Sagemaker AI -> Training -> Training Jobs # * run the following command # sm.describe_training_job(TrainingJobName="<complete training job name>")
하이퍼파라미터 최적화 지침
Nova LLM 모델을 효과적으로 미세 조정하려면 하이퍼파라미터를 신중하게 선택해야 합니다. 이 단원에서는 기본 레시피 구조와 구성 요소에 대해 설명하지만 특정 사용 사례에 맞게 하이퍼파라미터를 최적화하려면 추가 지침이 필요한 경우가 많습니다. 하이퍼파라미터 선택, 모범 사례 및 최적화 전략에 대한 포괄적인 권장 사항은 하이퍼파라미터 선택을 참조하세요. 이 리소스는 데이터 세트 특성 및 훈련 목표에 따라 적절한 학습률, 배치 크기, 훈련 epoch 및 기타 중요한 파라미터를 선택하는 방법에 대한 자세한 지침을 제공합니다. 최적의 모델 성능을 얻으려면 레시피 구성을 미세 조정할 때이 가이드를 참조하는 것이 좋습니다.
에포크, 학습률 및 학습 워밍업 단계의 최소값, 최대값 및 기본값에 대한 자세한 내용은 모델 이해를 위한 하이퍼파라미터를 참조하세요.
일반적인 레시피 수정
다음은 특정 사용 사례에 따른 몇 가지 일반적인 레시피 조정입니다.
-
더 작은 데이터 세트의 경우(< 1,000 예제)
training_config: max_epochs: 2 # More passes through a smaller dataset model: hidden_dropout: 0.1 # Increase regularization weight_decay: 0.01 # Increase regularization
-
제한된 컴퓨팅으로 효율성 향상
peft: peft_scheme: "lora" lora_tuning:
-
복잡한 명령 튜닝의 경우
optim: lr: 5e-6 # Lower learning rate for more stable learning sched: warmup_steps: 100 # Longer warmup for stability