TRL Trainer Workflow
마지막 수정:
TRL은 Hugging Face 생태계 위에서 LLM post-training을 실행하기 위한 trainer library다.
Transformers model
Datasets dataset
Accelerate/DeepSpeed/FSDP
TRL trainer
어떤 trainer가 있는가
TRL의 README 기준으로 핵심 trainer는 다음처럼 볼 수 있다.
SFTTrainer
instruction-following 또는 distillation target sequence 학습
RewardTrainer
chosen/rejected pair로 reward model 학습
DPOTrainer
preference pair에서 direct preference optimization
GRPOTrainer
reward function/verifier를 사용해 group-relative RL 학습
이 구성이 좋은 이유는 path의 앞부분과 거의 1:1로 대응된다는 점이다.
SFT -> Reward Model -> DPO or GRPO
TRL에서 reward는 함수가 된다
GRPOTrainer에서는 reward model만이 reward source가 아니다. 정확도 함수, format checker, environment reward 같은 Python function을 reward function으로 붙일 수 있다.
prompt + completions -> reward_funcs -> rewards
그래서 작은 RLVR 실험에서는 TRL이 좋은 출발점이다.
vLLM, Harbor, OpenEnv
TRL은 단순 trainer에서 agentic 방향으로도 확장되고 있다.
vLLM integration
generation throughput을 높임
Harbor
sandboxed task suite를 GRPOTrainer environment_factory로 연결
OpenEnv examples
Wordle, BrowserGym, CARLA 같은 environment reward를 사용
이 구조는 agentic RL을 이해하는 데 좋다. 다만 대규모 production RL infra 전체를 숨기지는 않는다.
TRL이 잘 맞는 범위
좋은 경우:
single-node 또는 중간 규모 실험
SFT/DPO/GRPO 개념 구현
reward function 빠르게 실험
Hugging Face model/dataset 생태계 사용
부족해지는 경우:
rollout service와 training cluster를 분리
대규모 weight sync
긴 agentic rollout의 straggler 처리
Megatron/SGLang 같은 고성능 엔진 native control
이 다음 층을 Slime이 다룬다.
참고 자료
- Hugging Face, TRL documentation
- Hugging Face, TRL repository
- 로컬 참고:
trl/README.md - 로컬 참고:
trl/examples/scripts/openenv/browsergym_llm.py - 로컬 참고:
trl/examples/scripts/harbor/data_agent.py
확인
- SFTTrainer, RewardTrainer, DPOTrainer, GRPOTrainer는 각각 어떤 학습 단계를 담당하는가?
- GRPOTrainer에서 reward function은 어떤 역할을 하는가?
- TRL로 충분한 실험과 Slime 같은 infra가 필요한 실험은 어떻게 다른가?