TRL을 통한 Direct Preference Optimization (DPO)를 사용한 Llama 2 미세 조정

Hugging Face은 TRL 라이브러리에 Direct Preference Optimization (DPO)를 통합하여, 개발자가 간단한 바이너리 크로스 엔트로피 손실을 사용하여 Llama 2와 같은 대형 언어 모델(LLM)을 정렬할 수 있게 했습니다. 이 방법은 보조 보상 모델과 강화 학습(RL) 메커니즘이 일반적으로 필요한 인간 피드백으로부터의 강화 학습(RLHF)에 필요한 복잡성을 제거합니다.

DPO vs. PPO: 정렬 파이프라인 간소화

Direct Preference Optimization (DPO)는 보상 모델링 및 RL 최적화 단계를 우회하여 정렬 프로세스를 간소화합니다. Proximal Policy Optimization (PPO)를 사용하는 전통적인 RLHF 파이프라인에서는, 보상 모델이 인간 선호를 추정하도록 훈련되고, KL 페널티가 적용된 동결된 참조 모델이 정책 모델이 너무 크게 벗어나서 meaningless 출력을 생성하는 것을 방지하기 위해 사용됩니다.

DPO는これを 보상 함수에서 최적의 RL 정책으로의 분석적 매핑으로 대체합니다.これにより、보상 모델과 참조 모델에 대한 RL 손실이 참조 모델에 대한 직접적인 손실로 변환될 수 있습니다.その結果、언어 모델은 선호 데이터에 대한 직접적인 likelihood 목표를 사용하여 최적화되며, 별도의 보상 모델이나 까다로운 RL 기반 최적화가 필요 없게 됩니다.

TRL 라이브러리를 사용한 DPO 구현

TRL 라이브러리는 DPO 워크플로를 구현하는 데 도움이 되는 헬퍼를 제공합니다. 전통적인 RLHF 파이프라인은 네 단계—지도 미세 조정(SFT), 선호 데이터 주석, 보상 모델 훈련, RL 최적화—을 포함하지만, DPO는 마지막 두 단계를 하나의 단계로 축소합니다.

데이터 요구 사항

TRL에서 DPOTrainer를 사용하려면, 다음과 같은 세 가지 특정 키를 포함하는 딕셔너리 형식으로 선호 데이터를 제공해야 합니다:

  • prompt: 추론 시 모델에 제공되는 컨텍스트 프롬프트.
  • chosen: 선호되는 생성된 응답.
  • rejected: 선호되지 않는 응답.

트레이너 구성

DPOTrainer는 베이스 모델(SFT 파이프라인에서), 참조 모델(일반적으로 SFT 훈련된 베이스 모델의 복사본), 그리고 온도 하이퍼파라미터 beta(일반적으로 0.1과 0.5 사이)를 필요로 합니다. beta 파라미터는 참조 모델의 영향을 조절하며, beta 값이 작을수록 참조 모델은 더 무시됩니다.

사례 연구: Llama 2 7B 정렬

Hugging Face은 stack-exchange 선호도 데이터셋에서 Llama 2 7B 파라미터 모델을 미세 조정하여 DPO의 적용을 시연했습니다. 이 데이터셋은 질문에 대한 순위가 매겨진 답변을 포함합니다.

단계 1: 지도 미세 조정(SFT)

모델은 먼저 bitsandbytes 라이브러리를 통한 SFTTrainer와 QLoRA 기술을 사용하여 SFT를 거칩니다. 이는 베이스 모델을 4비트 양량으로 로드하고 대상 모듈(q_proj, v_proj)에 LoRA 레이어를 추가하는 과정을 포함합니다.

단계 2: DPO 훈련

SFT 후에 resulting 모델은 DPO 훈련을 위한 베이스 모델과 참조 모델로 모두 사용됩니다. AutoPeftModelForCausalLM을 사용하여 모델은 4비트 구성으로 로드되고 QLoRA 방법을 통해 훈련됩니다. DPOTrainer는 평가 데이터셋을 사용하여 진도를 평가하고 암시적 보상 메트릭을 보고합니다.

DPO 성능 모니터링

훈련 및 평가 중에 DPOTrainer는 정렬 진행 상황을 측정하기 위해 네 가지 주요 보상 메트릭을 추적합니다:

  • rewards/chosen: 선택된 응답에 대한 정책 모델과 참조 모델의 로그 확률 평균 차이이며, beta로 스케일링됩니다.
  • rewards/rejected: 거부된 응답에 대한 정책 모델과 참조 모델의 로그 확률 평균 차이이며, beta로 스케일링됩니다.
  • rewards/accuracies: 선택된 보상이 해당 거부된 보상보다 높은 비율의 백분율입니다.
  • rewards/margins: 선택된 보상과 거부된 보상의 평균 차이입니다.

성공적인 훈련은 마진이 증가하고 정확도가 1.0에 가까워짐을 나타내며, 이는 모델이 선호되는 응답에 지속적으로 더 높은 보상을 할당함을 의미합니다.

Sources