huggingface/trl

Train transformer language models with reinforcement learning.

TL;DR

TRL (Transformers Reinforcement Learning) 는 🤗 Transformers, Accelerate, PEFT, DeepSpeed 생태계와 통합된 Hugging Face 라이브러리로, 후기 훈련을 위한 즉시 사용 가능한 트레이너 클래스를 제공합니다. SFT, GRPO, DPO, KTO, 보상 모델링, 지식 증류 등의 현대적인 어라이어먼트/파인튜닝 알고리즘을 구현하며, 단일 GPU에서부터 멀티노드 클러스터까지 최소한의 코드로 실행할 수 있습니다.


기능

  • 지도 기반 파인튜닝 (SFT) – 전통적인 지시어 응답 파인튜닝.
  • 그룹 상대 정책 최적화 (GRPO) – PPO의 메모리 효율적인 대안으로, DeepSeek‑R1 훈련에 사용됨.
  • 직접적 선호 최적화 (DPO) – Llama 3를 구동한 선호 기반 어라이어먼트.
  • 카하네만-트버스키 최적화 (KTO) – 이진 "좋음/나쁨" 피드백에서 학습.
  • 보상 모델링 – 선호 데이터 기반으로 보상 모델 훈련.
  • DistillationTrainer – 청크 기반 JSD 손실을 사용하는 온폴리시 지식 증류. vLLM으로 가속화됨.

모든 트레이너는 🤗 Transformers Trainer 위에 얇은 래퍼로 구성되어 있으며, 분산 전략(DDP, DeepSpeed ZeRO, FSDP) 및 혼합 정밀도 지원을 상속합니다.

주요 통합

  • 🤗 Accelerate – 단일 GPU에서부터 다수 노드까지 쉽게 확장 가능.
  • 🤗 PEFT – LoRA/QLoRA 양자화를 통해 보다 저사양 하드웨어에서도 수십억 파라미터 모델 파인튜닝 가능.
  • 🦥 Unsloth – 선택적 최적화 커널로 훈련 속도 향상.
  • CLItrl sft, trl dpo, trl kto 등으로 파이썬 코드를 작성하지 않고도 일반적인 작업을 시작할 수 있음.

빠른 시작 (Python)

from trl import SFTTrainer
from datasets import load_dataset

ds = load_dataset("trl-lib/Capybara", split="train")
trainer = SFTTrainer(model="Qwen/Qwen2.5-0.5B", train_dataset=ds)
trainer.train()

다른 알고리즘을 사용하려면 SFTTrainerGRPOTrainer, DPOTrainer, KTOTrainer, 또는 RewardTrainer 로 교체하고 README에 표시된 대로 모델/데이터셋을 조정하세요.

빠른 시작 (CLI)

trl sft \
  --model_name_or_path Qwen/Qwen2.5-0.5B \
  --dataset_name trl-lib/Capybara \
  --output_dir ./qwen-sft

dpokto 용 유사한 명령어도 존재합니다.

설치

pip install trl               # 안정 버전
# 또는 최신 코드 사용
pip install git+https://github.com/huggingface/trl.git

누가 사용해야 할까?

  • 최근 LLM 어라이어먼트 알고리즘의 검증된 구현이 필요한 연구자 및 엔지니어.
  • 🤗 Transformers를 이미 사용 중인 팀으로, 트레이닝 루프를 처음부터 구축하지 않고도 RL 스타일 파인튜닝을 추가하고 싶은 사람.
  • 자신의 데이터셋에서 SFT, DPO, GRPO, KTO 또는 지식 증류를 CLI 기반으로 실험하고 싶은 누구나.

더 알아보기

  • 공식 문서: https://huggingface.co/docs/trl
  • README에 링크된 논문 (예: GRPO 2024‑02‑03, DPO 2023‑05‑18).
  • 최신 기능을 시도하려면 trl.experimental 패키지 사용.

인용

@software{vonwerra2020trl,
  title   = {{TRL: Transformers Reinforcement Learning}},
  author  = {von Werra, Leandro and others},
  year    = {2020},
  url     = {https://github.com/huggingface/trl},
  license = {Apache-2.0}
}

관련

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch