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 형식으로 변환하는 유틸리티를 제공합니다. |
일반적인 워크플로우
- 데이터 준비 – 제공된 스크립트를 사용하여 데이터셋 (예:
openai/gsm8k)을 리포지토리의 Parquet 格式의 형식으로 변환합니다. - Rollout –
Strategy가 롤아웃 엔진 (SGLang 또는 vLLM)을 실행하여 프롬프트당 여러 응답을 생성합니다. - 보상 계산 – 규칙 기반 레이블 또는 학습된 보상 모델을 통해 보상을 계산합니다.
- 어드밴티지 추정 | 선택한 추정기 (
group_norm,reinforce++,cpgd, 등)를 사용하여 보상을 토큰 레벨의 어드밴티지(advantages)로 변환합니다. | - 정책 업데이트 | 선택한 옵티마이저 (GRPO, DAPO, PPO/GAE, 등)를 Actor 모델에 실행하며, 필요에 따라 OPD를 위해 교사 모델의 로짓(teacher logits)을 혼합합니다. |
- 동기화 & 체크포인트 | 가중치는 분산 프로세스 전반에 걸쳐 동기화되고 나중에 사용하기 위해 저장됩니다.
시작하기
# 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와 문서에서 직접 가져온 데이트이트; 외부의 가설설정은 추가되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트