[논문 리뷰] Punica: Multi-Tenant LoRA Serving
Punica는 단일 GPU에 여러 다른 LoRA 모델을 효율적으로 배치하기 위해 새로운 CUDA 커널인 세그먼티드 가져오기 행렬-벡터 곱셈(SGMV)을 도입한 다중 테넌트 LoRA 서빙 시스템이다. 이는 기본 미리 훈련된 모델을 복제하지 않고도 동시 실행을 가능하게 하여, 상태기반 LLM 서빙 시스템 대비 12배 높은 처리량을 달성하며, 토큰당 추가로 2ms의 지연만 발생시킨다.
Low-rank adaptation (LoRA) has become an important and popular method to adapt pre-trained models to specific domains. We present Punica, a system to serve multiple LoRA models in a shared GPU cluster. Punica contains a new CUDA kernel design that allows batching of GPU operations for different LoRA models. This allows a GPU to hold only a single copy of the underlying pre-trained model when serving multiple, different LoRA models, significantly enhancing GPU efficiency in terms of both memory and computation. Our scheduler consolidates multi-tenant LoRA serving workloads in a shared GPU cluster. With a fixed-sized GPU cluster, our evaluations show that Punica achieves 12x higher throughput in serving multiple LoRA models compared to state-of-the-art LLM serving systems while only adding 2ms latency per token. Punica is open source at https://github.com/punica-ai/punica .
연구 동기 및 목표
- 공유 GPU 클러스터에서 여러 LoRA 모델을 서빙할 때 전통적인 접근 방식이 모델별 GPU 할당이 필요하므로 효율성이 떨어지는 문제를 해결하기 위해.
- 일반적으로 동일한 모델이 필요로 하는 배치 처리가 가능하도록, 서로 다른 LoRA 모델 간의 추론 요청을 배치 처리할 수 있도록 하기 위해.
- 기본 모델 가중치를 공유함으로써 다수의 GPU에 최소한의 수로 다중 테넌트 LoRA 워크로드를 통합하여 GPU 활용도를 향상시키기 위해.
- 특히 서빙 비용을 지배하는 디코딩 단계에서 낮은 지연을 유지하기 위해.
- 최적의 GPU 자원 활용을 위해 다이나믹한 워크로드 통합 및 이동을 가능하게 하는 스케줄러 설계를 위해.
제안 방법
- 다른 LoRA 모델 간의 GPU 연산을 배치 처리할 수 있도록 세그먼트된 입력 및 출력 데이터를 처리할 수 있는 새로운 CUDA 커널인 세그먼티드 가져오기 행렬-벡터 곱셈(SGMV) 설계.
- SGMV를 활용해 하나의 기본 미리 훈련된 모델을 재사용함으로써 단일 GPU가 동시에 여러 LoRA 모델을 서빙할 수 있도록 구현.
- 이중 단계 스케줄링 전략 구현: 먼저 부하가 적은 GPU에 신규 요청을 라우팅하여 배치 크기를 최대화하고, 이후에 기존 요청을 프로액티브하게 이동시켜 워크로드를 통합.
- 초기 로딩을 방지하고 메모리 압박을 줄이기 위해 밀리초 수준의 지연으로 LoRA 어댑터 가중치를 온디맨드로 로딩.
- vLLM, FlashAttention, KvCache 정밀화와 같은 기존 최적화 기법과 통합하여 성능을 추가로 향상.
- 동일한 기본 모델에서 미세조정된 LoRA 모델 간의 가중치 상관관계를 활용해 효율적인 공유 추론을 가능하게 함.
실험 결과
연구 질문
- RQ1모델별 어댑터 매트릭스가 존재함에도 불구하고, 동일한 GPU에서 여러 다른 LoRA 모델을 효과적으로 배치 처리할 수 있는가?
- RQ2기본 모델 가중치를 복제하지 않고도 서로 다른 LoRA 모델을 동시 실행하기 위해 필요한 커널 수준 최적화는 무엇인가?
- RQ3낮은 지연을 유지하면서도 공유 GPU 클러스터에 걸쳐 다중 테넌트 LoRA 워크로드를 효율적으로 통합할 수 있는 스케줄러는 어떻게 설계할 수 있는가?
- RQ4프리로딩 대비 온디맨드 LoRA 가중치 로딩의 성능 오버헤드는 어느 정도인가?
- RQ5여러 LoRA 어댑터 간에 기본 모델을 공유함으로써 GPU 메모리 및 컴퓨팅 활용도는 얼마나 향상될 수 있는가?
주요 결과
- Punica는 동일한 고정된 GPU 클러스터에서 상태기반 LLM 서빙 시스템 대비 다수의 LoRA 모델을 서빙할 때 12배 높은 처리량을 달성한다.
- 기본 시스템 대비 토큰당 추가로 2ms의 지연만 발생시켜 최소한의 성능 오버헤드를 입증한다.
- SGMV는 동일 모델 요청과 다른 모델 요청의 배치 처리에서 거의 동일한 성능을 제공함으로써, 모델 다양성에 따른 성능 저하가 거의 없음을 시사한다.
- LoRA 가중치의 온디맨드 로딩은 밀리초 수준의 지연만 유발하여 탄력적이고 효율적인 자원 할당이 가능하다.
- 스케줄러는 요청의 동적 이동을 통해 워크로드를 성공적으로 통합하여, GPU가 유휴 상태일 경우에 자원을 해제함으로써 클러스터 활용도를 향상시킨다.
- 대규모 배치 크기를 우선시하고 기존 GPU가 포화 상태에 도달할 경우에만 새로운 GPU를 할당함으로써 고도로 최적화된 GPU 활용도를 유지한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.