Google Kubernetes Engine(GKE)에서 GPU를 사용하여 대규모 언어 모델(LLM) 추론 워크로드를 자동 확장하기 위한 권장사항


이 권장사항 가이드에서는 사용 가능한 측정항목과 GKE에서 추론 워크로드에 대해 수평형 포드 자동 확장 처리(HPA)를 설정하는 데 적절한 측정항목을 선택하는 방법을 보여줍니다. HPA는 부하에 따라 모델 서버가 적절하게 확장되도록 보장하는 효율적인 방법입니다. HPA 설정을 미세 조정하는 것은 추론 서버 성능 목표를 달성하기 위해 프로비저닝된 하드웨어 비용을 트래픽 수요에 맞추는 기본적인 방법입니다.

이러한 권장사항을 구현하는 방법의 예시는 GKE에서 GPU의 LLM 워크로드 자동 확장 구성을 참조하세요.

목표

이 가이드는 Kubernetes에서 GPU를 사용하여 LLM 워크로드를 최적화하는 데 관심이 있는 생성형 AI 고객, 신규 또는 기존 GKE 사용자, ML 엔지니어, LLMOps(DevOps) 엔지니어를 대상으로 합니다.

이 가이드를 참고하면 다음을 수행할 수 있습니다.

  • LLM 추론을 위한 자동 확장 측정항목을 이해합니다.
  • 자동 확장할 측정항목을 고려할 때 비교할 대략적인 장단점을 파악합니다.

LLM 추론을 위한 자동 확장 측정항목 개요

GKE에서 사용 가능한 측정항목은 다음과 같습니다.

서버 측정항목

TGI, vLLM, NVIDIA Triton과 같은 인기 있는 LLM 추론 서버는 워크로드별 성능 측정항목을 내보냅니다. GKE는 이러한 서버 수준 측정항목을 기반으로 워크로드 스크래핑 및 자동 확장을 단순화합니다. 이러한 측정항목을 사용하여 배치 크기, 큐 크기, 디코딩 지연 시간과 같은 성능 지표를 파악할 수 있습니다.

이러한 측정항목을 기반으로 가장 관련성이 높은 성능 지표에 따라 직접 자동 확장을 수행할 수 있습니다. 자동 확장의 주요 서버 수준 측정항목은 다음과 같습니다.

  • 큐 크기: 서버 큐에서 처리 대기 중인 요청 수입니다. 큐 크기를 사용하여 특정 목표 지연 시간 기준점 내에서 처리량을 극대화하고 비용을 최소화합니다. 자세한 내용은 관련 권장사항 섹션을 참조하세요.
  • 배치 크기: 추론을 진행 중인 요청 수입니다. 큐 크기보다 낮은 목표 지연 시간 기준점에 도달하려면 배치 크기를 사용합니다. 자세한 내용은 관련 권장사항 섹션을 참조하세요.

이러한 측정항목은 성능 및 트래픽 변동에 대해 복원력이 우수하므로 다양한 GPU 하드웨어 설정의 자동 확장을 위한 안정적인 시작점으로 사용됩니다.

GPU 측정항목

GPU는 다양한 사용량 및 성능 측정항목을 내보내 커스텀 측정항목이 없는 워크로드 추론을 포함하여 모든 GPU 기반 태스크에 워크로드에 구애받지 않는 자동 확장을 제공합니다. DCGM 수집을 설정하는 방법은 DCGM 수집 구성을 참조하세요.

GKE의 일반적인 GPU 측정항목은 다음과 같습니다.

GPU 측정항목 사용 제한사항
GPU 사용률(DCGM_FI_DEV_GPU_UTIL) GPU가 활성화된 시간인 가동 주기를 측정합니다. GPU가 활성화된 동안 수행하는 작업량은 측정하지 않습니다. 따라서 지연 시간 및 처리량과 같은 추론 기반 성능 측정항목을 GPU 사용률 기준점에 매핑하기는 어렵습니다.
GPU 메모리 사용량(DCGM_FI_DEV_FB_USED) 특정 시점에 사용 중인 GPU 메모리 양을 측정합니다. 이는 GPU 메모리의 동적 할당을 구현하는 워크로드에 유용합니다. GPU 메모리를 사전 할당하거나 메모리를 할당 해제하지 않는 워크로드(예: TGI 및 vLLM에서 실행되는 워크로드)의 경우 이 측정항목은 수직 확장에만 작동하며 트래픽이 줄어도 축소되지 않습니다.

CPU 측정항목

GKE에서 HPA는 CPU 및 메모리 기반 자동 확장을 즉시 사용할 수 있습니다. CPU에서 실행되는 워크로드의 경우 CPU 및 메모리 사용률 측정항목이 일반적으로 기본 자동 확장 측정항목입니다.

GPU에서 실행되는 추론 워크로드의 경우 추론 워크로드가 주로 GPU 리소스에 의존하므로 CPU 및 메모리 사용률을 작업에서 소비하는 리소스 양에 대한 유일한 지표로 사용하지 않는 것이 좋습니다. 따라서 자동 확장에 CPU 측정항목만 사용하면 최적화되지 않은 성능과 비용으로 이어질 수 있습니다.

자동 확장 측정항목 선택 시 고려사항

다음 고려사항과 권장사항에 따라 추론 워크로드 성능 목표를 달성하기 위해 GKE의 자동 확장에 가장 적합한 측정항목을 선택합니다.

권장사항: 큐 크기를 사용하여 특정 목표 지연 시간 기준 내에서 처리량을 극대화하고 비용을 최소화

처리량과 비용을 최적화할 때, 그리고 모델 서버의 최대 배치 크기의 최대 처리량으로 지연 시간 목표를 달성할 수 있는 경우 큐 크기 자동 확장을 사용하는 것이 좋습니다.

큐 크기는 요청 지연 시간과 직접적인 상관 관계가 있습니다. 수신 요청은 처리되기 전 모델 서버에서 큐에 추가되고 이 큐 시간이 전체 지연 시간에 추가됩니다. 증가된 부하가 큐를 빠르게 채우므로 큐 크기는 부하 급증을 나타내는 민감한 지표입니다.

큐 크기에 따른 자동 확장 기능은 부하 시 확장되고 큐가 비어 있을 때 축소하여 큐 시간을 최소화합니다. 큐 크기는 요청 크기, 모델, 하드웨어와 독립적이므로 이 방법은 구현하기 쉽고 주로 워크로드에 구애받지 않습니다.

모델 서버의 구성을 고려하면서 처리량을 극대화하려면 큐 크기에 집중하는 것이 좋습니다. 큐 크기는 처리 중인 요청이 아니라 대기 중인 요청을 추적합니다. vLLM 및 TGI는 동시 요청을 극대화하고 배치 공간을 사용할 수 있을 때 큐를 낮게 유지하는 연속 일괄 처리를 사용합니다. 배치 공간이 제한되면 큐가 눈에 띄게 증가하므로 성장 지점을 확장을 시작하는 신호로 사용하세요. 큐 크기 자동 확장과 최적화된 일괄 처리량을 결합하여 요청 처리량을 극대화할 수 있습니다.

HPA에 최적화된 큐 크기 기준점 결정

변동을 줄이기 위해 목표 값에 대해 0.1 작업 없음 범위가 기본값으로 설정되는 HPA 톨러레이션(toleration)에 유의해야 합니다.

올바른 큐 크기 기준점을 선택하려면 3~5 사이의 값으로 시작하고 요청이 원하는 지연 시간에 도달할 때까지 점진적으로 늘립니다. 테스트에 locust-load-inference 도구를 사용합니다. 기준점이 10 미만인 경우 HPA 수직 확장 설정을 미세 조정하여 트래픽 급증을 처리합니다.

Cloud Monitoring 커스텀 대시보드를 만들어 측정항목 동작을 시각화할 수도 있습니다.

제한사항

큐 크기는 동시 요청을 직접 제어하지 않으므로 기준점으로 최대 배치 크기가 허용하는 것보다 낮은 지연 시간을 보장할 수 없습니다. 이 문제를 해결하려면 최대 배치 크기를 수동으로 줄이거나 배치 크기 자동 확장을 수행하면 됩니다.

권장사항: 배치 크기를 사용하여 큐 크기보다 낮은 목표 지연 시간 기준점에 도달

큐 기반 확장이 요구사항을 충족하기에 충분히 빠르지 않은 지연 시간에 민감한 워크로드가 있는 경우 배치 크기 기반 자동 확장을 선택하는 것이 좋습니다.

배치 크기는 수신 요청의 처리량 및 지연 시간과 직접적인 상관 관계가 있습니다. 부하가 증가하면 기존 배치에 더 많은 요청이 추가되어 배치 크기가 커지므로 배치 크기는 부하 급증을 나타내는 좋은 지표입니다. 일반적으로 배치 크기가 클수록 지연 시간도 길어집니다. 배치 크기 자동 확장을 사용하면 동시에 처리되는 요청 수가 극대화되도록 워크로드가 확장되고 동시에 처리되는 요청이 적을 때는 축소됩니다.

큐 크기가 이미 지연 시간 목표를 충족하면 자동 확장에 우선순위를 둡니다. 이렇게 하면 처리량과 비용 효율성이 모두 극대화됩니다. 그러나 배치 크기는 지연 시간에 민감한 워크로드에 유용합니다. 배치 크기가 클수록 처리량이 늘어나지만 일부 요청의 사전 입력 단계가 연속 일괄 처리 모델 서버에서 다른 요청의 디코딩 단계를 방해하므로 지연 시간도 증가합니다. 배치 크기 패턴을 모니터링하고 자동 확장을 사용하여 부하 급증 시 동시 요청을 최소화할 수 있습니다.

모델 서버에서 허용하는 경우 추가 조정 메커니즘으로 최대 배치 크기를 맞춤설정하는 것이 좋습니다. 이를 큐 기반 자동 확장과 페어링할 수도 있습니다.

HPA에 최적화된 배치 크기 기준점 결정

변동을 줄이기 위해 목표 값에 대해 0.1 작업 없음 범위가 기본값으로 설정되는 HPA 톨러레이션(toleration)에 유의해야 합니다.

적절한 배치 크기 기준점을 선택하려면 실험적으로 서버 부하를 늘리고 배치 크기가 최대치에 도달하는 지점을 관찰하세요. 또한 테스트에 locust-load-inference 도구를 사용하는 것이 좋습니다. 최대 배치 크기를 확인했으면 이 최댓값보다 약간 낮은 초기 목표 값을 설정하고 원하는 지연 시간이 달성될 때까지 줄입니다.

Cloud Monitoring 커스텀 대시보드를 만들어 측정항목 동작을 시각화할 수도 있습니다.

제한사항

배치 크기 자동 확장은 지연 시간 제어에 유용하지만 제한사항이 있습니다. 다양한 요청 크기와 하드웨어 제약조건으로 인해 적절한 배치 크기 기준점을 찾기가 어렵습니다.

권장사항: HPA 구성 최적화

다음과 같은 HPA 구성 옵션을 설정하는 것이 좋습니다.

  • 안정화 기간: 측정항목 변동으로 인해 복제본 수가 빠르게 변경되지 않도록 하려면 이 HPA 구성 옵션을 사용합니다. 기본값은 축소(조기 축소 방지)의 경우 5분, 수직 확장 (대응력 보장)의 경우 0입니다. 워크로드의 변동성과 원하는 대응력에 따라 값을 조정합니다.
  • 확장 정책: 이 HPA 구성 옵션을 사용하여 수직 확장 및 축소 동작을 미세 조정합니다. '포드' 정책 한도를 설정하여 시간 단위별로 변경되는 복제본의 절대 수를 지정하고 '비율' 정책 한도를 설정하여 비율 변동에 따라 지정할 수 있습니다.

이러한 옵션에 대한 자세한 내용은 오픈소스 Kubernetes 문서의 수평형 포드 자동 확장을 참조하세요.

다음 단계