기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
지속적 사전 학습(CPT)
지속적인 사전 훈련(CPT)은 동일한 비지도 목표(마스킹 언어 모델링 또는 인과적 언어 모델링 등)를 사용하여 새 데이터에 대해 사전 훈련된 파운데이션 모델을 추가로 훈련하는 프로세스입니다. 새 도메인 또는 배포 전환에 적응하면서 이전에 학습한 일반 언어 기능을 유지합니다.
CPT에는 특정 다운스트림 작업에 대한 아키텍처 변경 또는 미세 조정이 포함되지 않습니다. 대신 도메인 인식 방식으로 모델의 언어 이해 용량을 확장합니다.
다음 시나리오에서는 CPT를 사용해야 합니다.
-
도메인(예: 의학 또는 금융)과 관련된 레이블이 지정되지 않은 대규모 데이터가 있습니다.
-
도메인별 콘텐츠를 개선하면서 모델이 일반 언어 기능을 유지하게 하려고 합니다.
-
광범위한 작업별 미세 조정을 수행하지 않고 특수 영역에서 제로샷 및 제로샷 성능을 개선하고자 합니다.
데이터 형식 요구 사항
CPT를 수행할 때 다음 데이터 세트 특성을 준수하는 것이 좋습니다.
-
다양성: 과적합을 방지하려면 데이터가 대상 도메인 내의 광범위한 표현식을 포함해야 합니다.
-
표현: 데이터는 추론 중에 모델이 직면할 분포를 반영해야 합니다.
-
정리: 데이터의 노이즈와 중복성으로 인해 성능이 저하될 수 있습니다. 중복 제거 및 텍스트 정규화는 모델 훈련을 개선합니다.
-
규모 조정: 데이터 세트가 클수록 도움이 되지만 특정 임계값(예: 제한된 데이터에서 여러 에포크 실행)을 초과하면 과적합 위험이 증가합니다.
훈련 및 검증 데이터 세트는 Converse 형식의 JSONL 파일이어야 합니다. 여기서 각 줄에는 필수 필드 및 구조와의 대화를 나타내는 JSON 객체가 포함되어 있습니다. 예:
{"text": "AWS stands for Amazon Web Services"} {"text": "Amazon SageMaker is a fully managed machine learning service"} {"text": "Amazon Bedrock is a fully managed service for foundation models"}
텍스트 항목에는 대상 도메인을 나타내는 자연스럽게 흐르는 고품질 콘텐츠가 포함되어야 합니다.
데이터 세트 검증
CPT 작업을 제출하기 전에 데이터 세트를 검증하려면 다음 조건을 확인하세요.
-
각 줄에는 유효한 JSON 객체가 포함되어야 합니다.
-
각 객체에는 문자열 데이터가 포함된 "텍스트" 필드가 있습니다.
-
"텍스트" 이외의 필드는 없습니다.
-
파일은
.jsonl
확장명입니다.
훈련 시간
훈련에 소요되는 시간은 데이터 세트의 크기, 사용하는 인스턴스 수 및 훈련 중인 모델에 따라 크게 달라집니다. 훈련 시간은 선형적으로 확장될 것으로 예상됩니다. 다음 표에는 다양한 모델에 대한 몇 가지 예제 훈련 시간이 나와 있습니다.
모델 유형 |
GBS |
데이터 세트의 샘플 수 |
P5 인스턴스 수 |
|
대략적인 훈련 시간 |
---|---|---|---|---|---|
Amazon Nova Micro |
256 |
100,000건 |
8 |
8,192 |
4 |
Amazon Nova Lite |
256 |
100,000건 |
16 |
8,192 |
4 |
Amazon Nova Pro |
256 |
100,000건 |
24 |
8,192 |
10 |
훈련 및 검증 데이터 세트는 Amazon Bedrock Converse 작업 형식에 따른 JSONL 파일이어야 합니다. 여기서 각 줄에는 필수 필드 및 구조와의 대화를 나타내는 JSON 객체가 포함되어 있습니다.
CPT를 사용한 튜닝에 사용할 수 있는 Amazon Nova 파라미터는 다음과 같습니다.
-
구성 실행
-
name
: 훈련 작업을 설명하는 이름입니다. 이렇게 하면에서 작업을 식별하는 데 도움이 됩니다 AWS Management Console. -
model_type
: 사용할 Amazon 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
, 또는 S3 경로입니다s3://customer-escrow-bucket-unique_id/training_run_name
. -
replicas
: 분산 훈련에 사용할 컴퓨팅 인스턴스 수입니다. 사용 가능한 값은 선택한 모델에 따라 다릅니다. Amazon Nova Micro는 2개, 4개 또는 8개의 복제본을 지원합니다. Amazon Nova Lite는 4, 8, 16 또는 32개의 복제본을 지원합니다. Amazon Nova Pro는 6개, 12개 또는 24개의 복제본을 지원합니다. -
data_s3_path
: 훈련 데이터 세트의 S3 위치로, JSONL 파일입니다. 이 파일은 클러스터와 동일한 AWS 계정 및 리전에 있어야 합니다. 제공된 모든 S3 위치는 동일한 계정 및 리전에 있어야 합니다. -
validation_data_s3_path
: (선택 사항) JSONL 파일인 검증 데이터 세트의 S3 위치입니다. 이 파일은 클러스터와 동일한 계정 및 리전에 있어야 합니다. 제공된 모든 S3 위치는 동일한 계정 및 리전에 있어야 합니다. -
output_s3_path
: 매니페스트 및 TensorBoard 로그가 저장되는 S3 위치입니다. 제공된 모든 S3 위치는 동일한 AWS 계정 및에 있어야 합니다 AWS 리전.
-
-
훈련 구성
-
max_length
: 토큰의 최대 시퀀스 길이입니다. 이는 훈련을 위한 컨텍스트 창 크기를 결정합니다. 지원되는 최대 값은 CPT용 토큰 8192개입니다.시퀀스가 길수록 메모리 요구 사항이 늘어나면서 훈련 효율성이 향상됩니다.
max_length
파라미터를 데이터 배포와 일치시키는 것이 좋습니다.
-
-
트레이너 설정
-
global_batch_size
: 모든 디바이스 및 작업자에 대해 한 번의 순방향 또는 역방향 패스로 함께 처리된 총 훈련 샘플 수입니다.이 값은 디바이스당 배치 크기와 디바이스 수를 곱합니다. 훈련 및 처리량의 안정성에 영향을 미칩니다. 메모리 내에 편안하게 맞는 배치 크기로 시작하고 거기에서 확장하는 것이 좋습니다. 도메인별 데이터의 경우 배치가 클수록 그라데이션이 과도하게 부드러워질 수 있습니다.
-
max_epochs
: 훈련 데이터 세트를 완전히 통과한 횟수입니다.일반적으로 데이터 세트가 클수록 수렴할 에포크 수가 줄어들고, 데이터 세트가 작을수록 수렴할 에포크 수가 늘어납니다. 과적합을 방지하려면 데이터 크기에 따라 에폭 수를 조정하는 것이 좋습니다.
-
-
모델 설정
-
hidden_dropout
: 숨겨진 상태 출력을 삭제할 확률입니다. 작은 데이터 세트에 대한 과적합을 줄이려면이 값을 약 0.0~0.2 증가시킵니다. 유효한 값은 0~1 사이입니다. -
attention_dropout
: 관심 가중치를 삭제할 확률입니다. 이 파라미터는 일반화에 도움이 될 수 있습니다. 유효한 값은 0~1 사이입니다. -
ffn_dropout
: 피드 포워드 네트워크 출력을 삭제할 확률입니다. 유효한 값은 0~1 사이입니다.
-
-
옵티마이저 구성
-
lr
: 최적화 중에 단계 크기를 제어하는 학습률입니다. 우수한 성능을 위해 1e-6-1e-4 사이의 값을 사용하는 것이 좋습니다. 유효한 값은 0~1 사이입니다. -
name
: 최적화 프로그램 알고리즘입니다. 현재distributed_fused_adam
만 지원됩니다. -
weight_decay
: L2 정규화 강도입니다. 값이 높을수록(0.01~0.1 사이) 정규화가 증가합니다. -
warmup_steps
: 학습률을 점진적으로 높이는 단계 수입니다. 이렇게 하면 훈련 안정성이 향상됩니다. 유효한 값은 1~20입니다. -
min_lr
: 감소 종료 시 최소 학습률입니다. 유효한 값은 0~1 사이이지만 학습률보다 작아야 합니다.
-
CPT 레시피
다음은 CPT의 레시피입니다.
## Run config run: name: "my-cpt-run" # A descriptive name for your training job model_type: "amazon.nova-lite-v1:0:300k" # Model variant specification, do not change model_name_or_path: "nova-lite/prod" # Base model path, do not change replicas: 4 # Number of compute instances for training, allowed values are 4, 8, 16 data_s3_path:
[S3_PATH_TO_TRAIN_DATASET]
validation_data_s3_path:(OPTIONAL)[S3_PATH_TO_VALIDATION_DATASET]
output_s3_path:[S3_PATH_TO_STORE_MANIFEST]
## Training specific configs training_config: max_length: 8192 # Maximum context window size (tokens). global_batch_size: 256 # Global batch size, allowed values are 32, 64, 128, 256. trainer: max_epochs: 2 # Number of training epochs model: hidden_dropout: 0.0 # Dropout for hidden states, must be between 0.0 and 1.0 attention_dropout: 0.0 # Dropout for attention weights, must be between 0.0 and 1.0 ffn_dropout: 0.0 # Dropout for feed-forward networks, must be between 0.0 and 1.0 optim: lr: 1e-5 # Learning rate name: distributed_fused_adam # Optimizer algorithm, do not change adam_w_mode: true # Enable AdamW mode eps: 1e-06 # Epsilon for numerical stability weight_decay: 0.0 # L2 regularization strength, must be between 0.0 and 1.0 betas: # Adam optimizer betas, must be between 0.0 and 1.0 - 0.9 - 0.999 sched: warmup_steps: 10 # Learning rate warmup steps constant_steps: 0 # Steps at constant learning rate min_lr: 1e-6 # Minimum learning rate, must be lower than lr
제한 사항
CPT에는 다음과 같은 제한 사항이 있습니다.
-
다중 모달 데이터 세트는 지원되지 않습니다.
-
중간 체크포인트는 평가를 위해 저장되지 않으며 중간 체크포인트에서 재개할 수 없습니다. 마지막 체크포인트만 저장됩니다.
-
MLflow 로깅은 지원되지 않습니다.