이 권장사항 가이드에서는 사용 가능한 측정항목과 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 문서의 수평형 포드 자동 확장을 참고하세요.
다음 단계
- GPU에서 LLM 워크로드 자동 확장 구성 방법 알아보기