Transformers 강화학습

Transformers 강화학습 (TRL, Transformers Reinforcement Learning)

Transformers Reinforcement Learning(TRL)은 SFT, GRPO, DPO, Reward Modeling 등 다양한 방법으로 transformer 언어 모델을 학습시키는 도구를 제공하는 풀스택 라이브러리입니다. 🤗 transformers와 통합되어 있으며, GRPO 같은 온라인 방법은 모델이 완성(completion)을 생성해야 하는데 여기에 vLLM을 사용할 수 있습니다.

출처: 문서

본문

Transformers Reinforcement Learning(TRL)은 SFT(Supervised Fine-Tuning), GRPO(Group Relative Policy Optimization), DPO(Direct Preference Optimization), Reward Modeling 같은 방법으로 transformer 언어 모델을 학습시키는 도구를 제공하는 풀스택 라이브러리입니다. 이 라이브러리는 🤗 transformers와 통합됩니다.

GRPO나 Online DPO 같은 온라인 방법은 모델이 완성(completion)을 생성해야 합니다. vLLM으로 이 완성을 생성할 수 있습니다!

자세한 내용은 TRL 문서의 vLLM 통합 가이드를 참고하세요.

TRL은 현재 vLLM으로 다음 온라인 트레이너를 지원합니다:

TRL에서 vLLM을 활성화하려면 트레이너 구성에서 use_vllm 플래그를 True로 설정하세요.

학습 중 vLLM 사용 모드 (Modes of Using vLLM During Training)

TRL은 학습 중 vLLM 통합을 위해 server 모드colocate 모드 두 가지를 지원합니다. vllm_mode 파라미터로 vLLM이 학습 중 어떻게 동작할지 제어합니다.

Server 모드 (Server mode)

server 모드에서 vLLM은 전용 GPU에서 독립 프로세스로 실행되며 HTTP 요청으로 트레이너와 통신합니다. 이 구성은 추론용 GPU가 분리되어 있을 때 이상적입니다. 생성 워크로드를 학습에서 격리해 안정적인 성능과 쉬운 확장을 보장합니다.

from trl import GRPOConfig

training_args = GRPOConfig(
    ...,
    use_vllm=True,
    vllm_mode="server",  # default value, can be omitted
)

Colocate 모드 (Colocate mode)

colocate 모드에서 vLLM은 트레이너 프로세스 안에서 실행되며 학습 모델과 GPU 메모리를 공유합니다. 별도 서버를 띄우지 않아도 되고 GPU 활용을 개선할 수 있지만, 학습 GPU에서 메모리 경합이 생길 수 있습니다.

from trl import GRPOConfig

training_args = GRPOConfig(
    ...,
    use_vllm=True,
    vllm_mode="colocate",
)

일부 트레이너는 vLLM sleep mode도 지원합니다. 이는 학습 중 파라미터와 캐시를 GPU RAM으로 오프로드해 메모리 사용을 줄이는 데 도움을 줍니다. 자세한 내용은 메모리 최적화 문서를 참고하세요.

정보

상세 구성 옵션과 플래그는 사용 중인 특정 트레이너의 문서를 참고하세요.

더 알아보기 (Learn more)