Yeonsoo_Lim_37ff19a01.png Yeonsoo Lim 2026.05.26

Soojong_Do_0714397c1.png Soojong Do 2026.05.26

Eunbin_Shin_505aff871.png Eunbin Shin 2026.05.26

Jaeseung_Byun_10b302d91.png Jaeseung Byun 2026.05.26

유휴 Inference GPU Pool을 이용한 GPU Job 스케줄링

AI 기술의 발전과 함께 GPU 자원에 대한 수요는 그 어느 때보다 빠르게 상승하고 있습니다. 특히 대규모 언어 모델(Large Language Model, LLM)의 학습과 추론에는 막대한 연산 자원이 투입되는 만큼, 안정적인 GPU 인프라 확보는 AI 연구와 서비스 운영의 핵심 경쟁력이 되었습니다. 하지만 GPU는 여전히 고비용 자원이며, 한정된 예산 범위 내에서 인프라 규모를 확장하는 데에는 현실적인 제약이 있습니다. 이로 인해 연구 및 서비스 현장에서 요구하는 GPU 수요를 충분히 충족하지 못하는 상황이 빈번하게 발생합니다.

한편, AI 서비스를 제공하는 기업들은 트래픽 변동에 대비해 피크 타임(Peak Time)을 기준으로 자원을 확보하는 경향이 있습니다. 이 경우, 트래픽이 감소하는 시간대에는 확보된 자원이 충분히 가동되지 못한 채, 메모리만 점유하는 ‘유휴 상태’로 머물게 됩니다.

"유휴 Inference GPU Pool을 이용한 GPU job 스케줄링" 프로젝트는 바로 이 아이디어에서 시작되었습니다. 서비스의 안전성을 저해하지 않으면서도, 유휴 상태의 GPU 자원을 모델의 학습 또는 연구용으로 할당해 인프라의 활용도를 극대화하려는 시도입니다. 이 글에서는 GPU 자원 운용의 효율성을 최대로 끌어올리기 위해 어떤 방식으로 문제를 정의하고 해결했는지 그 과정을 공유하고자 합니다.

1. LLM 서비스의 auto-scaling

일반적인 서비스에서는 요청 수나 CPU, 메모리 사용률을 기준으로 비교적 쉽게 자원 사용량을 예측하고, 이를 바탕으로 오토 스케일링(Auto-scaling) 정책을 구성할 수 있습니다. 이러한 지표들은 서비스 부하에 비례하여 점진적으로 상승하는 경향을 보이기 때문에, 임계값 기반의 스케일링 전략이 비교적 안정적으로 동작합니다.

그러나 LLM 기반 서비스에서는 같은 방식을 그대로 적용하기 어렵습니다. LLM은 입력 토큰 수, 생성 토큰 수, 모델의 크기와 구조에 따라 각 요청이 소비하는 GPU 자원이 균일하지 않기 때문입니다. 즉 단순한 지표만으로는 자원 수요를 정확히 예측하기 어렵다는 기술적 특수성이 존재합니다.

GPU Utilization이나 Memory usage와 같은 지표 역시 LLM 환경에서는 한계를 가집니다. LLM 추론 특성상 단일 요청만으로도 GPU 자원이 대부분 점유될 수 있어 utilization이 순간적으로 급등하지만, 이를 전체 시스템 부하로 해석하기는 어렵습니다. Memory usage 역시 모델 로딩 단계에서 이미 상당 부분이 할당되기 때문에, 이후 트래픽 변화에 따른 변동폭이 미미하여 실제 부하 변화를 반영하지 못합니다.

이러한 특성들로 인해 LLM 서비스에서는 전통적인 CPU/메모리 기반 오토 스케일링이나 단순 요청 수 기반 접근이 효과적으로 동작하지 않으며, 실제 연산 부하를 더 잘 반영할 수 있는 새로운 지표가 필요합니다.

이 문제를 해결하기 위해 우리는 vLLM에서 제공하는 내부 메트릭을 오토 스케일링 지표로 활용했습니다. LLM을 사용하는 서비스에 특화된 vLLM에서 제공하는 실시간 처리량 및 큐(Queue) 상태 등의 메트릭을 오토 스케일링의 지표로 활용함으로써 LLM 서비스 특성에 최적화된 정교한 오토 스케일링을 구현할 수 있었습니다.

2. Auto-scaling 분석

이미지 1. Replica Auto-scaling graph (24h)

Auto-Scaling 적용 이후 서비스 레플리카 수의 변화를 시계열로 분석한 결과 GPU 자원 사용 패턴에서 뚜렷한 시간대별 차이를 확인할 수 있었습니다. 주간 구간(08:00~20:00)에는 트래픽이 증가함에 따라 레플리카 수가 빠르게 늘어나 최대치에 도달한 뒤, 트래픽 감소에 맞춰 점진적으로 줄어드는 양상을 보였습니다. 반면, 야간 비혼잡 시간대(20:00~익일 08:00)에는 최소 레플리카 수를 유지하며 큰 변동 없이 운영되고 있었고, 이로 인해 상당량의 GPU 자원이 장시간 활용되지 않는 상태로 남게 되었습니다.

예를 들어 레플리카 하나가 GPU 4장을 사용하는 환경을 기준으로 보면, 하루 평균 52장의 GPU가 약 12시간 동안 유휴 상태로 유지됩니다. 이는 서비스 안정성을 위한 여유 자원이라는 측면에서 필요하지만, GPU 활용 효율성 관점에서는 개선의 여지가 있는 영역입니다. 이러한 유휴 자원을 연구 및 실험 작업에 활용한다면, 추가적인 인프라 확장 없이도 전체 GPU 활용률을 크게 높일 수 있습니다.

이미지 2. GPU Replica Pool Status Example over Time

이러한 분석을 바탕으로, 서비스 트래픽이 감소하는 야간 시간대에 GPU 작업을 실행할 수 있는 파이프라인을 구축했습니다. 본 파이프라인은 기존 서비스 자원의 가동성을 침해하지 않는 것을 전제로 동작하며, 서비스 트래픽 증가로 GPU 회수가 필요한 경우, 실행 중인 작업이 언제든지 중단될 수 있는 ‘Best-effort’ 방식으로 운영되도록 설계되었습니다.

3. GPU 작업 파이프라인 설계

이미지 3. GPU Job Pipeline Based on Argo Workflows

유휴 GPU 자원을 활용하기 위해서는 다양한 형태의 작업을 실행할 수 있는 파이프라인이 필요합니다. 특히 연구 및 실험 작업은 그 특성상 실행 방식이 매우 다양하고, 동일한 작업이라도 설정에 따라 반복 실행되는 경우가 많기 때문에, 파이프라인은 범용성과 유연성, 그리고 재현성을 동시에 만족해야 합니다.

  1. 범용성: 다양한 모델의 학습(Training)과 추론(Inference) 작업을 모두 지원

  2. 확장성 및 유연성: 새로운 작업 유형이 추가되더라도 별도의 개발 부담 없이 실행할 수 있어야 함

  3. 재현성: 동일한 입력과 설정 하에서 항상 동일한 동작과 결과 보장

이러한 요구사항을 바탕으로 GPU 작업 파이프라인은 확장성과 범용성을 주요 목표로 설계했습니다. 먼저 특정 프레임워크나 실행 환경에 종속되는 것을 방지하기 위해, 모든 작업은 Docker 이미지 단위로 정의하도록 했습니다. 사용자가 작업에 필요한 최적의 실행 환경과 코드를 포함한 이미지를 준비하면, 파이프라인은 해당 이미지를 그대로 실행하는 구조입니다. 이를 통해 언어나 라이브러리, 실행 방식에 대한 제약 없이 다양한 작업을 수용할 수 있도록 구현했습니다.

이미지 4. Example of GPU Job Pipeline

파이프라인의 실행 단위는 스텝으로 구성됩니다. 각 스텝은 하나의 독립적인 작업을 의미하며, 사용자는 이를 순차적으로 조합하여 하나의 워크플로우를 구성할 수 있습니다. 예를 들어 LLM 학습 과정이라면 데이터 전처리, Pre-training, Supervised Fine-tuning, Reinforcement Learning, 평가 단계를 각각 스텝으로 나누고, 이를 순서대로 연결하는 방식입니다. 또한 하나의 스텝을 parameter만 달리하여 병렬로 다수의 작업을 실행하는 것도 가능합니다. 이 구조를 통해 복잡한 실험 흐름을 명확하게 표현할 수 있고, 특정 단계만 수정하거나 재실행하는 것도 용이해집니다.

각 스텝은 실행 시점에 필요한 입력 값을 외부에서 주입받는 형태로 동작합니다. 입력에는 데이터 경로, 모델 경로, 하이퍼파라미터, 사용할 GPU 수량 등이 포함됩니다. 이때 중요한 점은 실행에 필요한 모든 설정을 코드가 아니라 파라미터로 분리했다는 것입니다. 동일한 Docker 이미지를 유지하면서 입력 값만 변경하면 서로 다른 실험을 수행할 수 있기 때문에, 실험 관리와 재현성이 크게 향상됩니다.

모든 실행 과정과 결과물은 모두 Cloud storage를 통해 관리되며, 이를 통해 실험의 재현성과 추적 가능성을 확보했습니다. 각 스텝은 필요한 데이터를 storage에서 읽고 결과를 다시 저장하는 방식으로 동작합니다. 이러한 구조는 실행 환경 간 상태를 공유하지 않아도 되며, 파이프라인이 비저장성(Stateless)하게 유지됩니다.

결과적으로 이 파이프라인은 “어떤 작업이든 Docker 이미지로 정의하고, 필요한 자원과 입력값만 지정하면 실행할 수 있는 구조”를 목표로 합니다. 이를 통해 새로운 실험이나 모델이 등장하더라도 파이프라인 자체를 수정할 필요 없이 유연하게 수용할 수 있으며, 확보된 유휴 GPU 자원을 다양한 형태의 연구 작업에 최적으로 활용할 수 있습니다.

4. 유휴자원 활용 결과

이미지 5. Operational Results of the Idle GPU Project

시스템 구축 이후, 2025년 11월부터 2026년 1월까지 약 3개월간의 운영 데이터를 수집하여 유휴 GPU 활용 효과를 분석했습니다. 해당 기간 동안 총 85개의 작업이 파이프라인을 통해 실행되었으며, 모델 학습, 성능 평가, 데이터 생성 등 다양한 유형의 작업이 포함되었습니다.

25년 11월 프로젝트 초기에는 상대적으로 적은 수의 작업이 실행됐지만, 프로젝트의 안정화 및 내부 확산에 따라 26년 1월에는 실행된 작업 수와 사용량이 유의미하게 증가했음을 확인할 수 있습니다. 3개월 동안 누적된 GPU 사용량은 총 95,000 GPU hours에 달합니다. 특히 월별 추이를 보면 2026년 1월의 GPU 사용량은 2025년 11월 대비 약 70% 증가하여, 유휴 자원 활용이 점진적으로 확산되고 있음을 확인할 수 있습니다. 이를 일 12시간 기준 GPU 장수로 환산하면 2025년 11월에는 약 67장 수준이었으나, 2026년 1월에는 약 110장 수준까지 증가했습니다. 이 수치를 다시 24시간 기준으로 환산하면, 2026년 1월 한 달 동안 약 55장의 GPU를 추가로 확보한 것과 동일한 효과를 갖습니다. 즉, 별도의 하드웨어 증설 없이도 상당한 규모의 연산 자원을 확보한 것과 같은 결과를 얻은 셈입니다.

비용 측면에서도 의미 있는 성과를 확인할 수 있었습니다. 동일한 연산량을 퍼블릭 클라우드 3년약정 비용을 기준으로 계산할 경우, 2026년 1월 한 달 동안 약 7천5백만 원 수준의 비용 절감 효과가 발생했으며, 3개월 누적 기준으로는 약 1억 8천5백만 원 규모에 달하는 가치를 창출했습니다.

또한 기존에는 활용되지 않던 GPU 자원을 실질적인 생산성으로 전화함으로써 추가적인 인프라 투자 없이도 조직 전체의 GPU 사용률을 확장할 수 있었습니다. 또한 사용량 지표의 꾸준한 상승 곡선은, 초기 단계에 머물던 시스템이 점차 조직 내에 자연스럽게 정착하며 확산되는 과정도 확인할 수 있었습니다. 이는 기술적 구현을 넘어, 실제 사용자 관점에서도 충분한 활용 가치와 편의성을 인정 받는 결과라고 볼 수 있습니다.

5. Future plan : GPU 자원 관리 고도화

LG AI연구원은 GPU 자원을 보다 정교하게 관리하기 위해 고도화 작업을 계속하고자 합니다.

  1. 오토 스케일링 지표 고도화: 서비스별 실제 사용 패턴을 더욱 세밀하게 분석하여, 변동하는 수요에 맞춘 최적의 GPU 자원 스케줄링 로직을 구현하겠습니다.

  2. 지능형 GPU 스케줄링 기술 확립: Kubernetes와 EXAONE 등을 활용해 자원 스케줄링 기술을 더 발전시킬 예정입니다. 야간 시간에 국한되지 않고, 가용 자원이 발생하는 즉시 작업을 실행할 수 있는 상시 실행 가능한 시스템을 구축하고자 합니다.

  3. 사용자 경험(UX) 최적화: 인터페이스 개선을 통해 작업 요청부터 실시간 모니터링까지의 과정을 직관적으로 설계하여, 연구자들이 기술적 장벽 없이 인프라를 활용할 수 있는 환경을 만들겠습니다.

Platform&Infra Team에서는 지속적인 개선을 통해 유휴 GPU 자원의 활용도를 극대화하고, 연구 생산성을 높이는 데 실질적으로 기여해 나갈 것입니다.