피드로 돌아가기
Hugging Face BlogAI/ML
원문 읽기
TRL이 vLLM을 분리된 서버 대신 같은 GPU에서 공동 실행하도록 변경해 GRPO 학습 중 유휴 GPU 시간 제거
No GPU left behind: Unlocking Efficiency with Co-located vLLM in TRL
AI 요약
Context
TRL의 기존 GRPO 학습에서는 vLLM을 별도 GPU에서 HTTP 서버로 실행했으므로, 학습 중 생성 단계에서 학습 GPU는 유휴 상태였고, 생성 단계에서 생성 GPU는 유휴 상태가 되었다. 이러한 GPU 핑-퐁 패턴으로 인해 추가 GPU 확보가 필요했고 전체 처리량이 감소하며 비용이 증가했다.
Technical Solution
- vLLM 실행 모드 변경: 독립 프로세스의 HTTP 서버 방식에서 같은 분산 프로세스 그룹 내 인라인 실행으로 전환
- GPU 공유 구조 도입: 학습과 생성이 같은 GPU 세트를 차례로 사용하도록 조정해 전용 추론 GPU 제거
- HTTP 통신 제거: REST API 호출을 제거하고 vLLM 엔진을 학습 루프 내에 임베드해 통신 오버헤드 및 레이턴시 감소
- 분산 병렬화 지원: Tensor Parallelism과 Data Parallelism 모두 지원하며 torchrun과의 호환성 유지
- PR #3394를 통한 구현: vLLM의 외부 런처 지원 추가로 TRL 내 진정한 통합 실현
Impact
아티클에 정량적 수치가 명시되지 않았다.
Key Takeaway
온라인 학습 환경에서는 리소스 공유를 통해 하드웨어 낭비를 제거하는 것이 핵심이다. 분산 프로세스 그룹 내에서 학습과 추론을 공동 배치하면 별도 서버 프로세스의 복잡성 없이도 확장 가능한 멀티 GPU, 멀티 노드 환경을 구축할 수 있다.
실천 포인트
GRPO를 사용해 대규모 언어 모델을 학습하는 환경에서 use_vllm=True와 vllm_mode="colocate"를 GRPOConfig에 설정하고 동일 GPU에서 학습과 생성을 실행하면 별도 추론 서버 유지 없이 학습 속도를 높이고 하드웨어 비용을 절감할 수 있다.