대규모 언어모델(LLM) 서비스는 사용자 요청을 처리하는 과정에서 '프리필(prefill)'과 '디코드(decode)'라는 두 가지 주요 단계를 거칩니다. 프리필은 사용자 질문을 모델이 이해할 수 있는 형태로 처리하는 단계이고, 디코드는 모델이 답변을 생성하는 단계입니다. 이 두 단계는 각기 다른 연산 패턴과 서비스 수준 목표(SLO)를 가지는데, 실제 서비스 환경에서는 이들 간의 수요 불균형이 빈번하게 발생하여 지연(latency)을 유발하는 주된 원인이었습니다.
FluidPD는 이러한 문제를 해결하기 위해 두 가지 핵심 메커니즘을 도입했습니다. 첫째, 'FluidToken'은 단기적인 불균형에 대응합니다. 디코드 작업자(worker)에 여유가 있을 때 프리필 연산의 일부를 디코드 작업자에게 오프로드(offload)하여 처리 속도를 높입니다. 둘째, 'FluidRole'은 장기적인 불균형에 대처합니다. 이는 실행 중인 작업자의 역할을 프리필 또는 디코드로 실시간으로 재할당하는 방식으로, 모델 재로딩이나 엔진 재시작 없이 유연하게 자원을 조정합니다. 이 모든 과정은 경량 압력 지수(pressure indices)를 통해 프리필 및 디코드 측의 자원 압박을 SLO 위반이 발생하기 전에 감지하여 선제적으로 대응합니다.
기존 시스템들은 고정된 프리필/디코드 작업자 비율과 요청 라우팅에 의존했지만, 실제 워크로드의 급변하는 수요를 따라가지 못했습니다. FluidPD는 이러한 한계를 극복하며, 추가 GPU와 같은 자원 증설 없이도 서비스 품질을 획기적으로 개선합니다. 마이크로소프트 애저(Azure) 프로덕션 환경의 실제 트레이스 워크로드에서 FluidPD는 정적 SGLang 대비 전반적인 SLO 달성률을 최대 94.6% 포인트 향상시키는 놀라운 결과를 보여주었습니다. 이는 LLM 서비스 운영자들이 직면했던 고질적인 성능 문제를 해결하고, 사용자 경험을 크게 개선할 수 있는 중요한 진전으로 평가됩니다.