기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
DPO
설명
DPO(Direct Preference Optimization)는 동일한 프롬프트에 대해 선택한(선호됨) 응답과 거부된(선호되지 않음) 응답 쌍을 훈련하여 모델을 인적 기본 설정에 맞게 조정합니다.
사용해야 하는 경우
어떤 응답이 더 나은지 보여주는 기본 설정 데이터가 있습니다.
SFT가 달성하는 것 이상으로 응답 품질 개선
모델은 바람직하지 않은 특정 동작을 피해야 합니다.
달성 항목
모델은 별도의 보상 모델 없이 선택한 예제와 유사한 응답을 생성하고 거부된 예제를 피하는 방법을 배웁니다.
데이터 세트 형식
DPO에는 동일한 프롬프트에 대해 선택한(선호됨) 응답과 거부된(선호되지 않음) 응답 쌍이 필요합니다. DPO는 두 가지 데이터 세트 형식을 지원합니다. 모든 데이터 세트는 JSONL 형식(행당 하나의 JSON 객체)이어야 합니다. system 메시지는 두 형식 모두에서 선택 사항입니다.
형식 1: messages
chosen 및를 전체 메시지 목록rejected으로 제공합니다. 포함된 경우 system 메시지는 첫 번째 요소여야 하며 및 모두에서 동일해야 합니다chosenrejected.
{ "chosen": [ {"role": "system", "content": "..."}, {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."} ], "rejected": [ {"role": "system", "content": "..."}, {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."} ] }
형식 2: prompt/chosen/rejected
선택 사항인 최상위 필드와 함께 프롬프트와 두 응답을 별도의 문자열 system 필드로 제공합니다.
{ "system": "...", "prompt": "...", "chosen": "...", "rejected": "..." }
지침
선택한 응답과 거부된 응답의 품질이 의미 있게 달라야 합니다.
선택한 프롬프트와 거부된 프롬프트 모두에 동일한 프롬프트 사용
system메시지는 선택 사항입니다.
하이퍼파라미터 - DPO LoRA
참고
아래 표에는 서버리스 모델 사용자 지정을 사용할 때 사용할 수 있는 하이퍼파라미터가 나와 있습니다. 다른 하이퍼파라미터는 Amazon SageMaker AI에서 최적화된 기본값을 사용하여 사전 설정됩니다. SageMaker AI 훈련 작업 또는 HyperPod를 사용하는 경우 레시피에서 사용할 수 있는 하이퍼파라미터의 전체 목록에 액세스할 수 있습니다. 레시피를 가져오고 모든 하이퍼파라미터에 액세스하려면 SageMaker AI 레시피 리포지토리
| 파라미터 | 유형 | 필수 | 범위/값 | 설명 |
|---|---|---|---|---|
max_epochs | 정수 | 필수 | 1–100 | 훈련 데이터 세트를 완전히 통과한 횟수입니다. |
global_batch_size | 정수 | 필수 | 16, 32, 64, 128 | 모든 인스턴스에서 옵티마이저 단계당 처리된 총 샘플 수입니다. |
learning_rate | 실수 | 필수 | 5e-07-1e-04 | 최적화 중 가중치 업데이트를 위한 단계 크기입니다. |
lr_scheduler | 문자열 | 필수 | 코사인, 상수 | 훈련을 통한 학습률 감소 일정. |
lr_warmup_steps_ratio | 실수 | 필수 | 0~1 | 학습률을 0에서 높이는 데 소요된 총 단계의 비율입니다. |
weight_decay | 실수 | 필수 | 0.0~1.0 | L2 정규화 계수. 과적합을 방지하는 데 도움이 됩니다. |
gradient_clipping | 부울 | 필수 | true, false | 표준이 임계값을 초과하는 경우 그라데이션을 축소합니다. |
gradient_clipping_threshold | 실수 | 필수 | 0.0~5.0 | 허용되는 최대 그라데이션 표준입니다. |
dataset_max_len | 정수 | 필수 | 256~131072 | 토큰 단위의 최대 시퀀스 길이. 긴 시퀀스는 잘립니다. |
seed | 정수 | 필수 | 0–2147483647 | 재현성을 위한 무작위 시드입니다. |
logging_steps | 정수 | 필수 | 1–100 | 옵티마이저 단계의 지표 로깅 빈도입니다. |
lora_rank | 정수 | 필수 | 8, 16, 32, 64, 128 | 하위 순위 매트릭스의 차원입니다. 낮음 = 훈련 가능한 파라미터가 적음. |
lora_dropout | 실수 | 필수 | 0.0~1.0 | LoRA 어댑터 계층의 드롭아웃 확률입니다. |
lora_alpha | 정수 | 필수 | 16, 32, 64, 128, 256 | LoRA 조정 인수입니다. 유효 LR은 알파/순위로 확장됩니다. |
merge_weights | 부울 | 필수 | true, false | 훈련 후 LoRA 가중치를 기본 모델로 병합합니다. |
train_val_split_ratio | 실수 | 선택 사항 | 0.0~1.0 | 훈련과 검증에 할당된 비율입니다. |
temperature | 실수 | 필수 | 0.0~2.0 | 평가를 위한 샘플링 온도입니다. |
adam_beta | 실수 | 필수 | 1e-03–0.1 | DPO 역온. 모델이 기본 설정 순위를 적용하는 정도를 제어합니다. |
하이퍼파라미터 - DPO FFT
| 파라미터 | 유형 | 필수 | 범위/값 | 설명 |
|---|---|---|---|---|
max_epochs | 정수 | 필수 | 1–100 | 훈련 데이터 세트를 완전히 통과한 횟수입니다. |
global_batch_size | 정수 | 필수 | 16, 32, 64, 128 | 옵티마이저 단계당 처리된 총 샘플 수입니다. |
learning_rate | 실수 | 필수 | 5e-07-1e-04 | 가중치 업데이트를 위한 단계 크기입니다. |
lr_scheduler | 문자열 | 필수 | 코사인, 상수 | 학습률 감소 일정. |
lr_warmup_steps_ratio | 실수 | 필수 | 0~1 | LR 워밍업 단계 비율입니다. |
weight_decay | 실수 | 필수 | 0.0~1.0 | L2 정규화 계수. |
gradient_clipping | 부울 | 필수 | true, false | 표준이 임계값을 초과하는 경우 그라데이션을 축소합니다. |
gradient_clipping_threshold | 실수 | 필수 | 0.0~5.0 | 허용되는 최대 그라데이션 표준입니다. |
dataset_max_len | 정수 | 필수 | 256~131072 | 토큰 단위의 최대 시퀀스 길이. |
max_response_length | 정수 | 필수 | 100~200000 | 생성된 응답의 최대 토큰입니다. |
seed | 정수 | 필수 | 0–2147483647 | 재현성을 위한 무작위 시드입니다. |
logging_steps | 정수 | 필수 | 1–100 | 지표 로깅 빈도입니다. |
train_val_split_ratio | 실수 | 선택 사항 | 0.0~1.0 | 훈련과 검증에 할당된 비율입니다. |
temperature | 실수 | 필수 | 0.0~2.0 | 평가를 위한 샘플링 온도입니다. |
adam_beta | 실수 | 필수 | 1e-03–0.1 | DPO 역온. 모델이 기본 설정 순위를 적용하는 정도를 제어합니다. |