프로덕션 환경에서 AI 서비스를 제공할 때 가장 많이 고민하는 것은 바로 효율입니다. 여기서 말하는 효율은 GPU나 TPU 자원 활용을 극대화하여 운영 비용(Opex) 절감하는 것을 뜻합니다. Opex를 강조하는 이유는 일회성 투자(CapEx)에 가까운 훈련과 달리 추론은 꾸준히 비용이 발생하기 때문입니다. 따라서 기업의 AI 전환이 성공하려면 조직 및 도메인에 특화해 훈련한 모델을 보유하는 것만으로는 부족합니다. 이 모델을 프로덕션환경에 배포해 얼마나 효율적이고 저렴하게 서비스(Serving)할 수 있는 명확한 전략도 필요합니다. 이번 포스팅에서는 추론이 비용에 어떤 영향을 끼치는 지 서빙을 더 효율적이게 하려면 어떤 기술적 고려가 필요한 지 알아보겠습니다.
추론 워크로드의 특성 이해하기
모델이 실제 서비스 환경에 배포되는 순간 기업은 훈련 단계에서는 겪어보지 못한 새로운 비용과 성능 문제를 마주하게 됩니다. 추론1회에 드는 연산량은 훈련에 비해 매우 적습니다. 하지만 수백만 명의 사용자가 매일 수십억 번씩 질문을 던지는 실제 서비스 환경에서는 이야기가 달라집니다. 티끌 모아 태산이 되듯이 누적된 추론 비용은 훈련 비용을 훌쩍 뛰어넘게 됩니다. 따라서 인프라 전략의 목표는 단순한 성능 극대화가 아니라 토큰 하나를 생성하는 비용(Cost per Token)의 최소화로 바뀌어야 합니다.
일반적인 웹 서비스와 달리 LLM 추론 트래픽은 요청과 응답의 길이가 제각각이라 예측이 매우 어렵습니다. 우선 입력의 길이가 천차만별입니다. 짧은 질문부터 논문 요약 같은 긴 글까지 다양하게 들어오기 때문에, 초기에 문맥을 파악하는 프리필(Prefill) 단계의 연산 부하를 미리 짐작하기 힘듭니다. 출력 측면에서도 불확실성이 존재합니다. 모델이 답변을 완전히 끝낼 때까지는 몇 글자가 생성될지 알 수 없습니다. 만약 기존 방식대로 순서대로 일을 처리한다면 앞선 사용자의 긴 답변이 끝날 때까지 뒤에 있는 짧은 질문들이 하염없이 기다려야 하는 현상이 발생하게 됩니다. 이는 마치 마트 계산대에서 앞사람의 물건이 너무 많아 뒷사람들이 영문도 모른 채 기다려야 하는 상황과 같습니다. 이처럼 예측 불가능한 AI 추론 트래픽을 감당하려면 새로운 기술 혁신과 이와 시너지를 내는 구글 클라우드 서비스를 적극적으로 활용해야 합니다.
메모리 관리의 혁명, vLLM과 PagedAttention
추론 관련해 요즘 전문가들은 vLLM에 주목하고 있습니다. 오픈 소스 엔진인 vLLM은 GPU 메모리를 알뜰하게 사용하여 성능을 비약적으로 높입니다. 그 비결은 메모 관리 방식에 있습니다. 기존에는 만약을 대비해 미리 큰 메모리 방을 잡아두는 방식이라 GPU 메모리가 낭비되었습니다. vLLM의 PagedAttention 기술은 운영체제가 메모리를 관리하는 방식에서 착안했습니다. 마치 책을 여러 페이지로 나누어 꽂듯이 데이터를 잘게 쪼개어 빈 공간에 촘촘히 채워 넣습니다. 덕분에 메모리 낭비를 줄이고 남는 공간에 더 많은 요청을 받아 처리량을 늘릴 수 있습니다. vLLM은 분산 서빙(Disaggregated Serving) 기술도 지원합니다. 이는 질문을 이해하는 단계(Prefill)와 답변을 작성하는 단계(Decode)를 서로 다른 하드웨어에서 처리하도록 분리하는 것입니다.
지능형 오케스트레이션, GKE Inference Gateway
vLLM 같은 기술 혁신은 GKE Inference Gateway와 짝을 이루어 시너지를 창출합니다. 효율적인 추론 시스템의 구축은 트래픽이클러스터로 유입되는 진입점, 즉 게이트웨이에서부터 시작됩니다. 전통적인 L4/L7 로드 밸런서는 HTTP 헤더나 IP 주소만을 기반으로트래픽을 분산시키기 때문에 상태 의존적(Stateful)이고 연산 비용의 편차가 큰 LLM 기반 추론 워크로드에는 부적합합니다. 구글클라우드의 GKE Inference Gateway는 이러한 한계를 극복하고 추론에 특화된 라우팅 결정을 내립니다.
GKE Inference Gateway는 단순한 신호등이 아니라 상황을 파악하고 길을 안내하는 지능형 교통경찰과 같은 모델 인식(Model-aware)라우팅을 수행합니다. 무슨 말이야 하면 기존의 웹 서비스와 달리 생성형 AI 서비스는 단일 엔드포인트에서 요청의 본문 내용에 따라전혀 다른 모델이나 어댑터를 호출해야 할 경우가 빈번합니다. GKE Inference Gateway는 쿠버네티스 게이트웨이 API(Gateway API)의 확장 기능을 통해 요청의 HTTP 바디를 직접 검사할 수 있는 기능을 제공합니다.
효율적인 라우팅은 정확한 상태 정보에 기반해야 합니다. GKE Inference Gateway는 CPU 사용률과 같은 간접 지표 대신, 모델서버로부터 KV 캐시 활용률(KV cache utilization), 대기 큐 깊이(Pending queue depth), 활성 듀티 사이클(Duty cycle) 등의 정보를수집합니다. 이를 통해 각 서버가 얼마나 바쁜지, 메모리는 얼마나 남았는지를 실시간으로 확인하여 무작정 줄을 세우는 대신 당장 여유가 있는 서버로 요청을 보내 정체 현상을 방지합니다.
또한, AI서비스에서 자주 등장하는 시스템 설정이나 이전 대화 내용 같은 중복 정보를 기억하는 캐싱 기능도 지원합니다. 게이트웨이는 이미 해당 정보를 기억하고 있는 서버를 찾아 요청을 연결해 불필요한 중복 계산을 없애고 답변 속도를 높입니다.

이제는 운영을 더 중요하게 봐야 할 때
AI로 차별화를 꾀하는 기업 간 경쟁은 이제 모델 훈련과 최적화가 아니라 누가 더 잘 운영하느냐로 초점이 바뀌었습니다. 운영 측면에서 볼 때 성공적인 AI 서비스는 단순히 비싼 GPU를 많이 산다고 해서 만들어지지 않습니다. 하드웨어의 잠재력을 100% 끌어내는 전략이 필수입니다. 이와 같은 전략에 관심이 있다면 메가존소프트가 도움을 드리겠습니다.



