opendilab/LightRFT

LightRFT: Light, Efficient, Omni-modal & Reward-model Driven Reinforcement Fine-Tuning Framework

LightRFT – LLM 및 멀티모달 생성 모델을 위한 강화 학습 미세 조정 프레임워크

개요

  • 강화 학습 목표를 사용하여 대규모 언어 모델(LLM) 및 시각-언어(VLM) 또는 오디오-언어 모델을 학습시킬 수 있는 오픈 소스 라이브러리입니다. 클래식 RLHF 스타일의 파이프라인, 보상 모델 기반의 정책 최적화, 그리고 온-폴리시 증류(on-policy distillation)를 지원합니다.

중요성

  • 강화 학습 미세 조정은 LLM을 인간의 선호도에 맞추는 핵심 방법이지만, 기존 도구들은 종종 단일 백엔드(예: DeepSpeed) 또는 단일 모달리티에 국한됩니다. LightRFT는 DeepSpeed, PyTorch FSDP v2, SGLang, 및 vLLM을 통한 학습과 롤아웃을 통합하여, 동일한 코드베이스로 텍스트, 이미지, 비디오, 오디오에서 RL을 실행할 수 있게 합니다.

주요 설계 특징

특징 기능 설명
Unified Strategy abstraction 단일 인터페이스 (Strategy)가 분산 학습 백엔드(DeepSpeed 또는 FSDP)와 롤아웃 엔진(SGLang 또는 vLLM)을 연결합니다. 이를 통해 백엔드별 보일러플레이트 코드를 제거하고, 동일한 GPU 프로세스가 롤아웃과 가중치 업데이트를 모두 처리할 수 있게 합니다 ("Colocate Anything" 모델).
Distributed & parameter-efficient training FSDP v2 및 DeepSpeed ZeRO stages 1-3, BF16, 그래디언트 체크포인팅, CPU 오프로드, LoRA, 비주얼-프리픽스 프리징, FlashAttention 2, 그리고 융합된 로그-확률 경로(fused log-probability paths)를 지원합니다.
Reward-model driven optimization 규칙 기반 보상, 사용자 정의 Python 함수, 로컬 신경망 보상 모델, 또는 원격 보상 서비스를 수용합니다. 작업별로 여러 보상 소스를 집합할 수 있습니다.
Multimodal actors 텍스트 (ActorLanguage), 시각-언어 (ActorVL), 및 오디오-언어 (ActorAL)를 위한 별도의 Actor 클래스를 제공합니다. 예제는 GSM8K (텍스트 추론), Geo3K (시각적 기하학), 비디오 보상 RL, 오디오 Q&A를 포함합니다.
Algorithm matrix 정책 최적화 및 어드밴티지 추정 알고리즘 세트를 구현합니다: GRPO, Dr.GRPO, REINFORCE++, DAPO, CPGD, CPGD, FIRE sampling, 그리고 온-폴리시 증류(OPD). GSPO 및 GMPO를 위한 실험적 훅(hooks)이 포함되어 있습니다.
Experiment tooling Weights & Biases 또는 TensorBoard로의 내장 로깅, 궤적 저장, 고엔트로피 토큰 주석, 분산 체크포인팅, 그리고 체크포인트를 Hugging Face 형식으로 변환하는 유틸리티를 제공합니다.

일반적인 워크플로우

  1. 데이터 준비 – 제공된 스크립트를 사용하여 데이터셋 (예: openai/gsm8k)을 리포지토리의 Parquet 格式의 형식으로 변환합니다.
  2. Rollout – Strategy가 롤아웃 엔진 (SGLang 또는 vLLM)을 실행하여 프롬프트당 여러 응답을 생성합니다.
  3. 보상 계산 – 규칙 기반 레이블 또는 학습된 보상 모델을 통해 보상을 계산합니다.
  4. 어드밴티지 추정 | 선택한 추정기 (group_norm, reinforce++, cpgd, 등)를 사용하여 보상을 토큰 레벨의 어드밴티지(advantages)로 변환합니다. |
  5. 정책 업데이트 | 선택한 옵티마이저 (GRPO, DAPO, PPO/GAE, 등)를 Actor 모델에 실행하며, 필요에 따라 OPD를 위해 교사 모델의 로짓(teacher logits)을 혼합합니다. |
  6. 동기화 & 체크포인트 | 가중치는 분산 프로세스 전반에 걸쳐 동기화되고 나중에 사용하기 위해 저장됩니다.

시작하기

# Clone and install (editable mode)
git clone https://github.com/opendilab/LightRFT.git
cd LightRFT
pip install -e .
          # core deps (torch, deepspeed, sglang, …)
pip install -e "[vllm]"
          # optional vLLM rollout backend
  • Docker: docker pull opendilab/lightrft:v0.1.0 및 --gpus all 옵션으로 실행합니다.

  • 실행 예제 (Qwen2.5-0.5B 모델로 8개 GPU에서 GRPO를 사용한 GSM8K):

ENGINE_TYPE=sglang \
  bash examples/gsm8k_geo3k/run_grpo_gsm8k_qwen2.5_0.5b.sh

PATH_TO_YOUR_BASE_MODEL, 데이터셋 경로, GPU 개수를 필요에 따라 조정하십시오.

사용 대상

  • LLM 또는 멀티모달 생성 모델을 위한 새로운 RL 기반 정렬 알고리즘을 실험하는 연구자.

  • 텍스트 and 시각/오디오 데이터에 대해 RL을 실행하기 위해 단일 코드베이스가 필요한 팀.

  • 엔지니어, 프로덕션-ready, 분산 학습 루프를 찾고 있으며, DeepSpeed와 PyTorch FSDP를 모두 지원하는 DeepSpeed와 PyTorch FSDP를를 위한 데일리 작업에 적합합니다.

성숙도 & 커뮤니티

  • 현재 안정 버전: v0.1.1 (2024년 6월). WIP (GSPO, GMPO)로 표시된 두 가지 알고리즘을 제외하고는 모든 알고리즘이 작동합니다.
  • 문서가 광범위합니다 (Sphinx site, GSM8K/Geo3K 튜토리얼, 알고리즘 가이드, 트러블슈팅 FAQ).
  • Apache 2.0 라이선스 하에 오픈 소스입니다. 일반적인 fork-PR 워크플로우를 통해 기여를 환영합니다.

더 알아보기

  • 전체 문서: docs/ (설치, 알고리즘 가이드, 전략 설계, 런타임 아키텍처).

  • 퀵스타트 튜토리얼: docs/source/quick_start/grpo_gsm8k_geo3k_tutorial.md.

  • Issues & roadmap: GitHub issues는 README.md에 링크되어 있습니다.


위의 모든 정보는 리포지토리의 README와 문서에서 직접 가져온 데이트이트; 외부의 가설설정은 추가되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트