GKE의 모델 추론 정보


이 페이지에서는 GKE Gen AI 기능을 사용하여 Google Kubernetes Engine (GKE)에서 생성형 AI 모델 추론 워크로드를 실행하기 위한 주요 개념, 이점, 단계를 설명합니다.

추론 서빙은 생성형 AI 모델을 실제 애플리케이션에 배포하는 데 매우 중요합니다. GKE는 컨테이너화된 워크로드를 관리하기 위한 강력하고 확장 가능한 플랫폼을 제공하므로 개발 또는 프로덕션에서 모델을 제공하는 데 적합합니다. GKE를 사용하면 Kubernetes의 오케스트레이션, 확장, 고가용성 기능을 사용하여 추론 서비스를 효율적으로 배포하고 관리할 수 있습니다.

Google은 AI/ML 추론의 특정 요구사항을 인식하여 GKE에서 추론 서비스를 개선하고 최적화하도록 설계된 기능 모음인 GKE 생성형 AI 기능을 도입했습니다. Google Cloud 특정 기능에 관한 자세한 내용은 GKE 생성형 AI 기능을 참고하세요.

용어

이 페이지에서는 GKE에서의 추론과 관련하여 다음 용어를 사용합니다.

  • 추론: GKE 클러스터 내에서 대규모 언어 모델 또는 확산 모델과 같은 생성형 AI 모델을 실행하여 입력 데이터에서 텍스트, 임베딩 또는 기타 출력을 생성하는 프로세스입니다. GKE의 모델 추론은 가속기를 활용하여 실시간 또는 일괄 처리를 위한 복잡한 계산을 효율적으로 처리합니다.
  • 모델: 데이터에서 패턴을 학습하고 추론에 사용되는 생성형 AI 모델입니다. 모델은 크기와 아키텍처가 다양하며 소규모 도메인별 모델부터 다양한 언어 작업에 최적화된 수십억 개의 대규모 매개변수 신경망까지 다양합니다.
  • 모델 서버: 추론 요청을 수신하고 예측을 반환하는 컨테이너화된 서비스입니다. 이 서비스는 Python 앱이거나 vLLM, JetStream, TensorFlow Serving, Triton 추론 서버와 같은 더 강력한 솔루션일 수 있습니다. 모델 서버는 모델을 메모리에 로드하는 작업을 처리하고, 가속기에서 계산을 실행하여 예측을 효율적으로 반환합니다.
  • 가속기: NVIDIA의 그래픽 처리 장치 (GPU) 및 Google의 Tensor Processing Unit (TPU)과 같은 특수 하드웨어로, GKE 노드에 연결하여 특히 학습 및 추론 작업의 계산 속도를 높일 수 있습니다.

추론을 위한 GKE의 이점

GKE에서 추론을 실행하면 다음과 같은 몇 가지 이점이 있습니다.

  • 효율적인 가격 대비 성능: 추론 서비스 요구사항에 맞는 가치와 속도를 얻을 수 있습니다. GKE를 사용하면 다양한 강력한 가속기 (GPU 및 TPU) 중에서 선택할 수 있으므로 필요한 성능에 대해서만 비용을 지불하면 됩니다.
  • 더 빠른 배포: GKE 생성형 AI 기능에서 제공하는 맞춤 권장사항, 자격요건, 권장사항을 통해 시장에 출시하는 데 걸리는 시간을 단축하세요.
  • 확장 가능한 성능: GKE 추론 게이트웨이, 수평형 포드 자동 확장 처리(HPA), 맞춤 측정항목을 사용하여 사전 빌드된 모니터링으로 성능을 확장합니다. 80억 개에서 최대 6, 710억 개에 이르는 다양한 선행 학습 또는 맞춤 모델을 실행할 수 있습니다.
  • 전체적인 이동성: 개방형 표준을 통해 완전한 이동성을 활용하세요. Google은 GatewayLeaderWorkerSet를 비롯한 주요 Kubernetes API에 기여하고 있으며 모든 API는 Kubernetes 배포와 함께 이식할 수 있습니다.
  • 생태계 지원: 고급 리소스 큐잉 및 관리를 위한 Kueue, 분산 컴퓨팅을 위한 Ray와 같은 도구를 지원하는 GKE의 강력한 생태계를 기반으로 확장 가능하고 효율적인 모델 학습 및 추론을 지원합니다.

GKE에서 추론이 작동하는 방식

이 섹션에서는 추론 서비스에 GKE를 사용하는 단계를 간략하게 설명합니다.

  1. 모델 컨테이너화: 모델 서버 (예: vLLM)를 컨테이너화하고 Cloud Storage 또는 Hugging Face와 같은 저장소에서 모델 가중치를 로드하여 모델을 배포합니다. GKE 추론 빠른 시작을 사용하면 컨테이너화된 이미지가 매니페스트에서 자동으로 관리됩니다.

  2. GKE 클러스터 만들기: GKE 클러스터를 만들어 배포를 호스팅합니다. 관리 환경을 위해 Autopilot을 선택하거나 맞춤설정을 위해 표준을 선택합니다. 클러스터 크기, 노드 유형, 가속기를 구성합니다. 최적화된 구성의 경우 추론 빠른 시작을 사용하세요.

  3. Kubernetes 배포로 모델 배포: Kubernetes 배포를 만들어 추론 서비스를 관리합니다. 배포는 클러스터의 노드 간에 분산된 포드의 여러 복제본을 실행할 수 있는 Kubernetes API 객체입니다. Docker 이미지, 복제본, 설정을 지정합니다. Kubernetes는 이미지를 가져와 GKE 클러스터 노드에서 컨테이너를 실행합니다. 필요한 경우 LoRA 어댑터를 포함하여 모델 서버 및 모델로 팟을 구성합니다.

  4. 추론 서비스 노출: Kubernetes 서비스를 만들어 배포의 네트워크 엔드포인트를 제공하여 추론 서비스에 액세스할 수 있도록 합니다. 생성형 AI 추론 워크로드에 특별히 맞춤화된 지능형 부하 분산 및 라우팅을 위해 추론 게이트웨이를 사용합니다.

  5. 추론 요청 처리: 예상 형식 (JSON, gRPC)으로 애플리케이션 클라이언트에서 서비스의 엔드포인트로 데이터를 전송합니다. 부하 분산기를 사용하는 경우 부하 분산기가 모델 복제본에 요청을 배포합니다. 모델 서버는 요청을 처리하고 모델을 실행한 후 예측을 반환합니다.

  6. 추론 배포 확장 및 모니터링: HPA를 사용하여 추론을 확장하여 CPU 또는 지연 시간을 기반으로 복제본을 자동으로 조정합니다. 추론 빠른 시작을 사용하여 자동 생성된 확장 추천을 가져옵니다. 성능을 추적하려면 vLLM과 같은 인기 모델 서버용 대시보드를 비롯하여 사전 빌드된 관측 가능성과 함께 Cloud Monitoring 및 Cloud Logging을 사용하세요.

특정 모델, 모델 서버, 가속기를 사용하는 자세한 예시는 추론 예시를 참고하세요.

GKE 생성형 AI 기능

이러한 기능을 함께 또는 개별적으로 사용하여 생성형 AI 모델을 제공하고 GKE 환경 내에서 리소스 사용을 개선하는 데 발생하는 주요 문제를 추가 비용 없이 해결할 수 있습니다.

이름 설명 이점
GKE 추론 빠른 시작 (미리보기)

비즈니스 요구사항을 지정하고 요구사항에 가장 적합한 가속기, 확장 구성, 모델 서버 조합에 맞는 맞춤 권장사항을 확인하세요. gcloud CLI를 사용하여 이 서비스에 액세스할 수 있습니다.

자세한 내용은 GKE 추론 빠른 시작 레시피로 권장사항 추론 실행을 참고하세요.

  • 인프라 선택 및 구성의 초기 단계를 자동화하여 시간을 절약합니다.
  • 추가 조정을 위해 Kubernetes 설정을 완전히 제어할 수 있습니다.
GKE 추론 게이트웨이 (미리보기)

KV 캐시 사용률과 같은 측정항목을 기반으로 라우팅하여 지연 시간을 개선합니다.

자세한 내용은 GKE 추론 게이트웨이 정보를 참고하세요.

  • 비용 효율성을 위해 LoRA 파일을 사용하는 미세 조정된 모델을 어피니티 기반 엔드포인트 선택과 공유합니다.
  • 여러 리전에서 GPU 및 TPU 용량에 동적으로 액세스하여 고가용성을 달성하세요.
  • Model Armor 부가기능 정책으로 모델의 보안을 강화하세요.

추론 계획

이 섹션에서는 GKE에서 추론 워크로드를 실행할 때 고려해야 할 몇 가지 주요 사항을 설명합니다.

비용 효율성

대규모 생성형 AI 모델을 제공하는 것은 가속기 사용으로 인해 비용이 많이 들 수 있으므로 효율적인 리소스 활용에 집중해야 합니다. 가속기 메모리를 모델 크기 및 정량화 수준에 맞추려면 적절한 머신 유형과 가속기를 선택하는 것이 중요합니다. 예를 들어 NVIDIA L4 GPU가 있는 G2 인스턴스는 소규모 모델에 비용 효율적일 수 있지만 A3 인스턴스는 대규모 모델에 더 적합합니다.

비용 효율성을 극대화하려면 다음 팁과 권장사항을 따르세요.

성능

GKE에서 추론 성능을 최적화하려면 다음 벤치마크 측정항목에 집중하세요.

벤치마크 지표 미터법 (단위) 설명
지연 시간 첫 번째 토큰까지의 시간 (TTFT) (밀리초) 요청의 첫 번째 토큰을 생성하는 데 걸리는 시간입니다.
출력 토큰당 정규화된 시간 (NTPOT) (밀리초) 출력 토큰 수로 정규화된 요청 지연 시간으로, request_latency / total_output_tokens로 측정됩니다.
출력 토큰당 시간 (TPOT) (밀리초) 출력 토큰 하나를 생성하는 데 걸리는 시간으로, (request_latency - time_to_first_token) / (total_output_tokens - 1)로 측정됩니다.
토큰 간 지연 시간 (ITL) (밀리초) 두 출력 토큰 생성 간의 지연 시간을 측정합니다. 전체 요청에서 지연 시간을 측정하는 TPOT와 달리 ITL은 각 개별 출력 토큰을 생성하는 데 걸리는 시간을 측정합니다. 그런 다음 이러한 개별 측정값을 집계하여 평균, 중앙값, 백분위수 값(예: p90)을 생성합니다.
요청 지연 시간(밀리초) 요청을 완료하는 데 걸리는 전체 시간입니다.
처리량 초당 요청 초당 게재되는 총 요청 수입니다. 이 측정항목은 컨텍스트 길이에 따라 크게 달라질 수 있으므로 LLM 처리량을 측정하는 데는 신뢰할 수 있는 방법이 아닐 수 있습니다.
초당 출력 토큰 total_output_tokens_generated_by_server / elapsed_time_in_seconds로 측정되는 일반적인 측정항목입니다.
초당 입력 토큰 total_input_tokens_generated_by_server / elapsed_time_in_seconds로 측정됩니다.
초당 토큰 수 total_tokens_generated_by_server / elapsed_time_in_seconds로 측정됩니다. 이 측정항목은 입력 토큰과 출력 토큰을 모두 집계하므로, 높은 사전 채우기 시간과 높은 디코딩 시간을 가진 워크로드를 비교하는 데 도움이 됩니다.

워크로드의 성능 벤치마킹을 시도하려면 AI-Hypercomputer/inference-benchmark의 안내를 따르세요.

실적을 개선하기 위한 추가 팁과 권장사항을 고려해 보세요.

  • 성능 요구사항에 따라 권장되는 가속기를 가져오려면 추론 빠른 시작을 사용하세요.
  • 성능을 높이려면 권장사항 가이드에 있는 일괄 처리 및 PagedAttention과 같은 모델 서버 최적화 기술을 사용하세요. 또한 토큰 간 지연 시간을 일관되게 낮추기 위해 효율적인 메모리 관리와 어텐션 계산에 우선순위를 둡니다.
  • 모델 서버 전반에서 표준화된 측정항목 (예: Hugging Face TGI, vLLM, NVIDIA Triton)을 사용하여 자동 확장 및 부하 분산을 개선하면 선택한 지연 시간에서 더 높은 처리량을 달성하는 데 도움이 됩니다. GKE는 여러 모델 서버에 자동 애플리케이션 모니터링을 제공합니다.
  • 추론 게이트웨이와 같은 GKE 네트워크 인프라 기능을 사용하여 지연 시간을 최소화합니다.

확보 가능성

리소스 (CPU, GPU, TPU)의 가용성을 보장하는 것은 추론 워크로드의 성능, 가용성, 비용 효율성을 유지하는 데 중요합니다. 추론 워크로드는 종종 하드웨어 용량에 부담을 줄 수 있는 급증하고 예측할 수 없는 트래픽 패턴을 보입니다. GKE는 다음과 같은 기능을 사용하여 이러한 문제를 해결합니다.

  • 리소스 소비 옵션: 확실한 용량 예약, 비용 효율적인 확장, 동적 워크로드 스케줄러, 스팟 VM과 같은 옵션 중에서 선택하여 비용을 최적화하고 즉시 사용 가능한 주문형 액세스를 이용하세요.
  • 리소스 크기 조정: 예를 들어 Google Cloud 스팟 VM을 지원하는 비용 효율적인 생성형 AI 추론 확장을 위해 NVIDIA H100 GPU (1g, 2g, 4g)가 탑재된 소형 A3 High VM을 제공합니다.
  • 가속기용 컴퓨팅 클래스: 커스텀 컴퓨팅 클래스를 사용하여 더 세부적으로 제어하고, 오버프로비저닝을 방지하며, 자동 대체 옵션으로 리소스 가용성을 극대화할 수 있습니다.

노드 업그레이드

GKE는 업그레이드 프로세스의 대부분을 자동화하지만, 특히 호환성과 테스트를 위한 업그레이드 전략을 고려해야 합니다. 수동 업그레이드의 경우 추론 워크로드의 중단 허용 범위에 따라 일시 급증 업그레이드 또는 블루-그린 업그레이드 중에서 선택할 수 있습니다. 급증 업그레이드는 빠르지만 서비스에 잠시 영향을 줄 수 있습니다. 블루/그린 업그레이드는 실시간 추론에 중요한 제로에 가까운 다운타임을 제공합니다. 자세한 내용은 노드 업그레이드 전략을 참조하세요.

GPU 및 TPU는 라이브 마이그레이션을 지원하지 않으므로 유지보수를 위해 팟을 다시 시작해야 합니다. GKE 알림을 사용하여 서비스 중단에 대비하세요. 최소한의 포드 수를 계속 사용할 수 있도록 포드 중단 예산 (PDB)을 사용하는 것이 좋습니다. 포드가 종료를 적절하게 처리할 수 있는지 확인합니다. TPU 슬라이스는 단일 호스트 이벤트로 인해 중단될 수 있으므로 중복을 계획하세요. 자세한 권장사항은 GPU 및 TPU의 GKE 노드 서비스 중단 관리를 참고하세요.

추론 예시 사용해 보기

생성형 AI 모델, 가속기, 모델 서버의 GKE 배포 예시를 확인하세요. 이제 막 시작하는 경우 vLLM과 함께 GKE에서 GPU를 사용하여 Gemma 개방형 모델 제공 튜토리얼을 살펴보는 것이 좋습니다.

또는 키워드로 튜토리얼을 검색합니다.

가속기 모델 서버 튜토리얼
GPU vLLM GKE에서 DeepSeek-R1 671B 또는 Llama 3.1 405B와 같은 LLM 제공
GPU vLLM vLLM을 통해 GKE에서 GPU를 사용하여 Llama 모델 서빙
GPU vLLM GKE에서 vLLM을 통해 GPU를 사용하여 Gemma 개방형 모델 제공
GPU vLLM GKE 추론 게이트웨이 로 LLM 제공
GPU NVIDIA Triton GKE에서 단일 GPU로 모델 제공
GPU Ray Serve Ray 를 사용해 L4 GPU에서 LLM 제공
GPU TGI GKE에서 여러 GPU로 LLM 제공
GPU NVIDIA Triton GKE에서 Triton 및 TensorRT-LLM으로 GPU를 사용하여 Gemma 개방형 모델 서빙
GPU Hugging Face TGI Hugging Face TGI와 함께 GKE에서 GPU를 사용하여 Gemma 개방형 모델 제공
GPU TensorFlow Serving GKE에서 단일 GPU로 모델 제공
TPU vLLM GKE에서 TPU Trillium을 사용하여 vLLM을 사용하여 LLM 제공
TPU vLLM KubeRay 를 사용하여 GKE에서 TPU를 사용하는 LLM 제공
TPU JetStream GKE에서 JetStream 및 PyTorch와 함께 TPU를 사용하여 LLM 제공
TPU JetStream JetStream으로 GKE에서 TPU를 사용한 Gemma 서빙
TPU MaxDiffusion MaxDiffusion과 함께 GKE에서 TPU를 사용하여 Stable Diffusion XL (SDXL) 제공
TPU Optimum TPU Optimum TPU 를 통해 GKE에서 TPU를 사용하여 오픈소스 모델 서빙

다음 단계