TRL Trainer Workflow

마지막 수정:

trlgrpodposftreward-trainer

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가 필요한 실험은 어떻게 다른가?