피드로 돌아가기
Hugging Face BlogBackend
원문 읽기
TNG Technology Consulting이 LLM 추론 엔진 앞단에 LLM-Server 스케줄링 계층을 도입해 FIFO 큐의 사용자 독점 문제 해결
Efficient Request Queueing – Optimizing LLM Performance
AI 요약
Context
vLLM이나 HuggingFace TGI 같은 추론 엔진은 단일 FIFO 큐를 사용하기 때문에, 한 사용자가 대량의 요청을 보내면 다른 사용자의 요청이 장시간 블로킹된다. GPU 배치 처리의 특성상 큐의 순서를 추론 엔진 내부에서 변경할 수 없어, 공정한 스케줄링을 구현하기 어렵다.
Technical Solution
- 사용자별·모델별 독립 큐 도입: 단일 FIFO 큐 대신 각 사용자마다 별도의 요청 큐를 LLM-Server에 유지
- 라운드-로빈 스케줄링 적용: LLM-Server의 스케줄러가 모든 사용자 큐를 순회하며 공정하게 요청을 선택
- 백프레셔 기반 속도 조절: 백엔드 큐 길이를 모니터링해 새로운 사용자 요청의 대기 시간을 최소화하도록 동적으로 요청 전송률 조정
- 우선순위 기반 큐 확장: 사용자당 다중 우선순위 큐 운영 (예: 대화형 AI 어시스턴트 높은 우선순위, 배치 작업 낮은 우선순위)
- 요청 정렬 최소화: LLM-Server에서 올바른 순서로 요청을 정렬한 후 백엔드로 전송해 추론 엔진 내 재정렬 오버헤드 제거
Key Takeaway
LLM 추론 서빙 환경에서 공정한 스케줄링을 구현하려면 백엔드 엔진의 제한된 제어 능력을 인정하고, 상위 계층 게이트웨이 서버에서 우선순위 결정과 큐 관리를 수행해야 한다.
실천 포인트
다중 사용자가 공유 GPU 추론 엔진을 사용하는 환경에서, vLLM이나 TGI 같은 백엔드 앞에 LLM-Server 스케줄링 계층을 배치하고 사용자별 큐 + 라운드-로빈 스케줄링을 적용하면, 신규 사용자의 요청 대기 시간을 기존 방식 대비 크게 단축할 수 있다. 추가로 백엔드 큐 길이를 기반으로 요청 전송률을 조절하고 사용자 유형별 우선순위를 설정하면 대화형 앱과 배치 작업 간의 리소스 경쟁을 완화할 수 있다.