View a markdown version of this page

DPO - Amazon SageMaker AI

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

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.0L2 정규화 계수. 과적합을 방지하는 데 도움이 됩니다.
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.0LoRA 어댑터 계층의 드롭아웃 확률입니다.
lora_alpha정수필수16, 32, 64, 128, 256LoRA 조정 인수입니다. 유효 LR은 알파/순위로 확장됩니다.
merge_weights부울필수true, false훈련 후 LoRA 가중치를 기본 모델로 병합합니다.
train_val_split_ratio실수선택 사항0.0~1.0훈련과 검증에 할당된 비율입니다.
temperature실수필수0.0~2.0평가를 위한 샘플링 온도입니다.
adam_beta실수필수1e-03–0.1DPO 역온. 모델이 기본 설정 순위를 적용하는 정도를 제어합니다.

하이퍼파라미터 - 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~1LR 워밍업 단계 비율입니다.
weight_decay실수필수0.0~1.0L2 정규화 계수.
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.1DPO 역온. 모델이 기본 설정 순위를 적용하는 정도를 제어합니다.