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으로 오프로드해 메모리 사용을 줄이는 데 도움을 줍니다. 자세한 내용은 메모리 최적화 문서를 참고하세요.
정보
상세 구성 옵션과 플래그는 사용 중인 특정 트레이너의 문서를 참고하세요.