TRL에서의 Vision Language Model Alignment

Hugging Face는 TRL 라이브러리 내에서 Vision Language Models (VLMs)를 위한 고급 정렬(alignment) 기술에 대한 포괄적인 지원을 도입했습니다. 이번 업데이트를 통해 개발자들은 단순한 쌍별 선호도 최적화(pairwise preference optimization)를 넘어 Mixed Preference Optimization (MPO), Group Relative Policy Optimization (GRPO), Group Sequence Policy Optimization (GSPO)와 같이 더 확장 가능하고 강력한 방법들을 사용할 수 있게 되었습니다.

Advanced Multimodal Alignment Methods

TRL은 이제 선호도 데이터로부터 더 풍부한 신호를 추출하고 복잡한 작업에서 VLM 성능을을 향상시키기 위해 설계된 여러 최첨단 정렬 알고리즘을 통합합니다.

Mixed Preference Optimization (MPO)

MPO는 추론 작업에 대한 Supervised Fine-Tuning (SFT)에서 흔히 발생하는 분포 변화(distribution shift)와 Direct Preference Optimization (DPO)에서 자주 발견되는 일관된 근거(rationales)의 부족 문제를 해결합니다. MPO는 다음 세 가지 서로 다른 손실 함수를 결합하여 DPO를 확장합니다:

  • Preference loss from DPO (sigmoid)
  • Quality loss from Binary Classifier Optimization (BCO)
  • Generation loss from SFT

원본 논문에 따르면, 이 결합된 손실 함수를 구현하면 MathVista 벤치마크에서 6.2포인트의 향상을 가져올 수 있습니다. TRL에서는 loss_type["sigmoid", "bco_pair", "sft"]로 구성하고 해당 가중치를 할당함으로써 DPOTrainer를 통해 이를 구현할 수 있습니다.

Multimodal Group Relative Policy Optimization (GRPO)

GRPO는 개별 샘플이 아닌 그룹(궤적의 배치)에 대해 정책 업데이트를 수행하는 강화 학습 정렬 방법입니다. 이 접근 방식은 노이즈가 그룹 내에서 평균화되므로 모델이 무엇이 고품질 응답을 구성하는지에 대한 더 넓은 의미를 학습할 수 있게 하여, 보상 노이즈에 대해 모델을 더 강력하게 만듭니다.

TRL에서 GRPO를 구현하려면 사용자는 형식 검증(예: <think><answer> 태그 확인) 및 정확도(정답과 솔루션을 비교 검증)를 위한 보상 함수를 정의하고 이를 GRPOTrainer에 전달해야 합니다.

Group Sequence Policy Optimization (GSPO)

GSPO는 훈련 안정성을 향상시키기 위해 Qwen이 개발한 GRPO의 변형입니다. 이는 토큰 수준이 아닌 시퀀스 수준에서 중요도 샘플링 가중치(importance sampling weights)를를 계산함으로써 이를 달성하며, 이는 특히 Mixture-of-Experts (MoE) 스타일의 모델에 매우 유관관련이 있습니다. TRL은 GRPOConfig를 통해 GSPO를 지원하며, 사용자는 특정 epsilon 및 beta 파라미터를 지정할 수 있는 importance_sampling_level="sequence"를 설정할 수 있습니다.

Extended VLM Support and SFT

주요 새로운 알고리즘 외에도, TRL은 기존의 정렬 및 미세 조정(fine-tuning) 워크플로우에 대한 지원을 확장했습니다.

RLOO and Online DPO

TRL은 이제 VLM을 위한 Reinforce Leave One Out (RLOO) 및 **Online Direct Preference Optimization (Online DPO)**를 지원합니다. 이러한 방법들은 멀티모달 데이터셋에 대한 정렬을 가능하게 하며, 각각 RLOOTrainerOnlineDPOTrainer를를 통해 접근할 수 있습니다.

Native Supervised Fine-tuning (SFT)

transformers API의 표준화와 함께, SFTTrainer는 이제 VLM에 대한 완전한 네이티브 지원을 제공합니다. 사용자는 VLM과 images 컬럼을 포함하는 데이터셋을 사용하여 트레이너를 초기화할 수 있습니다. 훈련 중 이미지 토큰이 제거되는 것을 방지하려면 SFTConfig에서 max_length=None으로 설정하는 것이 권장됩니다.

vLLM Integration for Online Alignment

훈련 루프 동안 샘플을 생성해야 하는 온라인 정렬 방법을 지원하기 위해, TRL은 vLLM을 통합합니다. 이 통합은 두 가지 주요 운영 모드를 제공합니다:

  • Colocate mode: 훈련 루프와 동일한 프로세스에서 vLLM을 실행하며, 훈련과 생성 사이의 GPU를 공유합니다.
  • Server mode: vLLM을 별도의 프로세스로 제공해야 하며, 훈련 스크립트가 이를 쿼리합니다.

또한, TRL은 이제 vLLM과 함께 transformers 백엔드를 사용하는 것을 지원하며, 이는 --vllm_model_impl transformers 플래그를 통해 활성화할 수 있습니다.

Sources

관련

  • Dispatch
  • Dispatch
  • 프로젝트
  • 프로젝트
  • Dispatch