이 페이지에서는 GKE 추론 빠른 시작을 사용하여 Google Kubernetes Engine (GKE)에서 AI/ML 추론 워크로드의 배포를 간소화하는 방법을 설명합니다. 추론 빠른 시작은 추론 비즈니스 요구사항을 지정하고 모델, 모델 서버, 가속기 (GPU, TPU), 확장에 관한 권장사항 및 Google의 벤치마크에 따라 최적화된 Kubernetes 구성을 가져올 수 있는 유틸리티입니다. 이렇게 하면 구성을 수동으로 조정하고 테스트하는 데 드는 시간이 절약됩니다.
이 페이지는 머신러닝 (ML) 엔지니어, 플랫폼 관리자 및 운영자, AI/ML 추론을 위해 GKE를 효율적으로 관리하고 최적화하는 방법을 알아보려는 데이터 및 AI 전문가를 대상으로 합니다. Google Cloud 콘텐츠에서 참조하는 일반적인 역할 및 예시 작업에 대해 자세히 알아보려면 일반 GKE Enterprise 사용자 역할 및 작업을 참고하세요.
모델 서빙 개념 및 용어와 GKE 생성형 AI 기능이 모델 서빙 성능을 향상하고 지원하는 방법에 대해 자세히 알아보려면 GKE의 모델 추론 정보를 참고하세요.
이 페이지를 읽기 전에 Kubernetes, GKE, 모델 제공을 숙지해야 합니다.
추론 빠른 시작 사용
추론 빠른 시작을 사용하는 대략적인 단계는 다음과 같습니다. 자세한 안내를 보려면 링크를 클릭하세요.
- 맞춤 권장사항 보기: Google Cloud 콘솔의 GKE AI/ML 페이지 또는 터미널의 Google Cloud CLI를 사용하여 선호하는 공개 모델 (예: Llama, Gemma, Mistral)과 같은 입력을 제공합니다.
- 애플리케이션의 지연 시간 타겟을 지정하여 지연 시간에 민감한지 (예: 챗봇) 또는 처리량에 민감한지 (예: 일괄 분석)를 나타낼 수 있습니다.
- 요구사항에 따라 추론 빠른 시작은 배포 또는 추가 수정을 완전히 제어할 수 있는 가속기 선택사항, 성능 측정항목, Kubernetes 매니페스트를 제공합니다. 생성된 매니페스트는 공개 모델 서버 이미지를 참조하므로 이러한 이미지를 직접 만들 필요가 없습니다.
- 매니페스트 배포: Google Cloud 콘솔 또는
kubectl apply
명령어를 사용하여 권장 매니페스트를 배포합니다. 배포하기 전에 프로젝트에서 선택한 GPU 또는 TPU에 충분한 가속기 할당량이 있는지 확인해야 합니다. Google Cloud - 성능 모니터링: Cloud Monitoring을 사용하여 GKE에서 워크로드 성능을 모니터링하는 데 사용하는 측정항목을 모니터링합니다. 모델 서버별 대시보드를 확인하고 필요에 따라 배포를 미세 조정할 수 있습니다.
이점
추론 빠른 시작을 사용하면 최적화된 구성을 제공하여 시간과 리소스를 절약할 수 있습니다. 이러한 최적화는 다음과 같은 방식으로 성능을 개선하고 인프라 비용을 줄입니다.
- 가속기 (GPU 및 TPU), 모델 서버, 확장 구성 설정에 관한 맞춤설정된 세부 권장사항을 확인할 수 있습니다. GKE는 최신 수정사항, 이미지, 성능 벤치마크를 사용하여 도구를 정기적으로 업데이트합니다.
- Google Cloud 콘솔 UI 또는 명령줄 인터페이스를 사용하여 워크로드의 지연 시간 및 처리량 요구사항을 지정하고 Kubernetes 배포 매니페스트로 맞춤설정된 자세한 권장사항을 확인할 수 있습니다.
사용 사례
추론 빠른 시작은 다음과 같은 시나리오에 적합합니다.
- 최적의 GKE 추론 아키텍처 찾기: 온프레미스 또는 다른 클라우드 제공업체와 같은 다른 환경에서 전환 중이며 특정 성능 요구사항에 맞는 GKE에서 가장 최신 권장 추론 아키텍처를 원하는 경우
- AI/ML 추론 배포 가속화: Kubernetes를 잘 알고 있으며 AI 추론 워크로드 배포를 빠르게 시작하려는 경우 Inference Quickstart를 사용하면 권장사항에 기반한 자세한 YAML 구성을 통해 GKE에서 권장사항 배포를 찾고 구현할 수 있습니다.
- 성능 향상을 위한 TPU 살펴보기: 이미 GKE에서 GPU를 사용하여 Kubernetes를 활용하고 있다면 추론 빠른 시작을 사용하여 TPU를 사용하면 얻을 수 있는 이점을 살펴보고 성능을 개선할 수 있습니다.
작동 방식
추론 빠른 시작에서는 모델, 모델 서버, 가속기 토폴로지 조합의 단일 복제본 성능에 관한 Google의 포괄적인 내부 벤치마크를 기반으로 맞춤설정된 권장사항을 제공합니다. 이러한 벤치마크는 대기열 크기 및 KV 캐시 측정항목을 비롯하여 지연 시간과 처리량을 그래프로 표시하여 각 조합의 성능 곡선을 매핑합니다.
맞춤 권장사항 생성 방법
가속기를 포화시켜 출력 토큰당 정규화된 시간 (NTPOT)을 밀리초 단위로, 처리량을 초당 출력 토큰 단위로 측정합니다. 이러한 실적 측정항목에 대해 자세히 알아보려면 GKE의 모델 추론 정보를 참고하세요.
다음 지연 시간 프로필 예는 처리량이 정체되는 변곡점 (녹색), 지연 시간이 악화되는 변곡점 이후 지점(빨간색), 지연 시간 타겟에서 최적의 처리량을 위한 이상적인 영역 (파란색)을 보여줍니다. 추론 빠른 시작에서는 이 이상적인 영역의 성능 데이터와 구성을 제공합니다.
추론 빠른 시작은 추론 애플리케이션의 지연 시간 요구사항에 따라 적절한 조합을 식별하고 지연 시간-처리량 곡선에서 최적의 작동 지점을 결정합니다. 이 지점에서 확장 지연 시간을 고려하는 버퍼와 함께 수평형 포드 자동 확장 처리 (HPA) 기준점이 설정됩니다. 전체 임곗값은 필요한 초기 복제본 수도 알려 주지만 HPA는 워크로드를 기반으로 이 수를 동적으로 조정합니다.
벤치마킹
제공된 구성 및 성능 데이터는 ShareGPT 데이터 세트를 사용하여 다음과 같은 입력 및 출력 분포로 트래픽을 전송하는 벤치마크를 기반으로 합니다.
입력 토큰 | 출력 토큰 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
최소 | 중앙값 | 평균 | P90 | P99 | 최대 | 최소 | 중앙값 | 평균 | P90 | P99 | 최대 |
4 | 108 | 226 | 635 | 887 | 1024 | 1 | 132 | 195 | 488 | 778 | 1024 |
벤치마크를 직접 실행하려면 AI-Hypercomputer/inference-benchmark의 안내를 따르세요. 벤치마킹 중에 워크로드를 대표하는 부하 패턴을 시뮬레이션하는 데 사용할 수 있는 다양한 옵션이 제공됩니다.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화하세요. 이전에 gcloud CLI를 설치한 경우
gcloud components update
를 실행하여 최신 버전을 가져옵니다.
Google Cloud 콘솔의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
프로젝트에 충분한 가속기 용량이 있는지 확인합니다.
- GPU를 사용하는 경우: 할당량 페이지를 확인하세요.
- TPU를 사용하는 경우: TPU 및 기타 GKE 리소스의 할당량 확인을 참고하세요.
Hugging Face 액세스 토큰과 해당하는 Kubernetes 보안 비밀을 생성합니다(아직 없는 경우). Hugging Face 토큰이 포함된 Kubernetes 보안 비밀을 만들려면 다음 명령어를 실행합니다.
kubectl create secret generic hf-secret \ --from-literal=hf_api_token=HUGGING_FACE_TOKEN \ --namespace=NAMESPACE
다음 값을 바꿉니다.
- HUGGING_FACE_TOKEN: 앞에서 만든 Hugging Face 토큰입니다.
- NAMESPACE: 모델 서버를 배포할 Kubernetes 네임스페이스입니다.
일부 모델의 경우 동의 라이선스 계약에 동의하고 서명해야 할 수도 있습니다.
GKE AI/ML 사용자 인터페이스 사용 준비
Google Cloud Console을 사용하는 경우 프로젝트에 아직 Autopilot 클러스터가 생성되지 않은 경우 Autopilot 클러스터를 만들어야 합니다. Autopilot 클러스터 만들기의 안내를 따릅니다.
명령줄 인터페이스 사용 준비
gcloud CLI를 사용하여 추론 빠른 시작을 실행하는 경우 다음 명령어도 실행해야 합니다.
gkerecommender.googleapis.com
API를 사용 설정합니다.gcloud services enable gkerecommender.googleapis.com
API 호출에 사용할 결제 할당량 프로젝트를 설정합니다.
gcloud config set billing/quota_project PROJECT_ID
제한사항
추론 빠른 시작을 사용하기 전에 다음 제한사항에 유의하세요.
- Google Cloud 콘솔 모델 배포는 Autopilot 클러스터에 대한 배포만 지원합니다.
- 추론 빠른 시작에서는 특정 모델 서버에서 지원하는 모든 모델의 프로필을 제공하지 않습니다.
모델 추론을 위한 최적화된 구성 보기
이 섹션에서는 Google Cloud 콘솔 또는 명령줄을 사용하여 구성 권장사항을 생성하고 확인하는 방법을 설명합니다.
콘솔
-
Google Cloud 콘솔에서 GKE AI/ML 페이지로 이동합니다.
- 모델 배포를 클릭합니다.
확인하려는 모델을 선택합니다. 추론 빠른 시작에서 지원하는 모델은 최적화됨 태그와 함께 표시됩니다.
- 기반 모델을 선택하면 모델 페이지가 열립니다. 배포를 클릭합니다. 실제 배포 전에 구성을 수정할 수 있습니다.
- 프로젝트에 Autopilot 클러스터가 없는 경우 Autopilot 클러스터를 만들라는 메시지가 표시됩니다. Autopilot 클러스터 만들기의 안내를 따릅니다. 클러스터를 만든 후 Google Cloud 콘솔의 GKE AI/ML 페이지로 돌아가 모델을 선택합니다.
모델 배포 페이지에는 선택한 모델과 권장 모델 서버 및 가속기가 미리 채워집니다. 최대 지연 시간과 같은 설정도 구성할 수 있습니다.
권장 구성이 포함된 매니페스트를 보려면 YAML 보기를 클릭합니다.
gcloud
gcloud alpha container ai recommender
명령어를 사용하여 모델, 모델 서버, 모델 서버 버전, 가속기의 최적화된 조합을 살펴보고 확인합니다.
모델
모델을 살펴보고 선택하려면 models
옵션을 사용합니다.
gcloud alpha container ai recommender models list
결과는 다음과 유사합니다.
Supported models:
- deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
- google/gemma-2-27b-it
- google/gemma-2-2b-it
- meta-llama/Llama-3.2-1B-Instruct
- meta-llama/Llama-3.3-70B-Instruct
- meta-llama/Meta-Llama-3-8B
- mistralai/Mixtral-8x22B-Instruct-v0.1
- mistralai/Mixtral-8x7B-Instruct-v0.1
모델 서버
관심 있는 모델에 권장되는 모델 서버를 살펴보려면 model-servers
옵션을 사용하세요. 예를 들면 다음과 같습니다.
gcloud alpha container ai recommender model-servers list \
--model=meta-llama/Meta-Llama-3-8B
결과는 다음과 유사합니다.
Supported model servers:
- vllm
서버 버전
원하는 경우 지원되는 모델 서버 버전을 살펴보려면 model-server-versions
옵션을 사용하세요. 이 단계를 건너뛰면 추론 빠른 시작이 기본적으로 최신 버전으로 설정됩니다.
예를 들면 다음과 같습니다.
gcloud alpha container ai recommender model-server-versions list \
--model=meta-llama/Meta-Llama-3-8B \
--model-server=vllm
결과는 다음과 유사합니다.
Supported model server versions:
- e92694b6fe264a85371317295bca6643508034ef
- v0.7.2
```
가속기
관심 있는 모델 및 모델 서버 조합에 권장되는 가속기를 살펴보려면 accelerators
옵션을 사용하세요.
예를 들면 다음과 같습니다.
gcloud alpha container ai recommender accelerators list \
--model=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \
--model-server-version=v0.7.2
결과는 다음과 유사합니다.
Supported accelerators:
accelerator | model | model server | model server version | accelerator count | output tokens per second | ntpot ms
---------------------|-----------------------------------------|--------------|------------------------------------------|-------------------|--------------------------|---------
nvidia-tesla-a100 | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm | v0.7.2 | 1 | 3357 | 72
nvidia-h100-80gb | deepseek-ai/DeepSeek-R1-Distill-Qwen-7B | vllm | v0.7.2 | 1 | 6934 | 30
For more details on each accelerator, use --format=yaml
출력은 가속기 유형 목록과 다음 측정항목을 반환합니다.
- 처리량(초당 출력 토큰)
- 출력 토큰당 정규화된 시간 (NTPOT, 밀리초)
이 값은 이 가속기 유형을 사용하는 지정된 프로필에서 처리량 증가가 중지되고 지연 시간이 급격히 증가하기 시작하는 지점 (즉, 변곡점 또는 포화점)에서 관찰된 성능을 나타냅니다. 이러한 실적 측정항목에 대해 자세히 알아보려면 GKE의 모델 추론 정보를 참고하세요.
추가 옵션은 Google Cloud CLI 문서를 참고하세요.
모델, 모델 서버, 모델 서버 버전, 가속기를 선택한 후 배포 매니페스트를 만들 수 있습니다.
권장 구성 배포
이 섹션에서는 Google Cloud 콘솔 또는 명령줄을 사용하여 구성 권장사항을 생성하고 배포하는 방법을 설명합니다.
콘솔
-
Google Cloud 콘솔에서 GKE AI/ML 페이지로 이동합니다.
- 모델 배포를 클릭합니다.
배포할 모델을 선택합니다. 추론 빠른 시작에서 지원하는 모델은 최적화됨 태그와 함께 표시됩니다.
- 기반 모델을 선택하면 모델 페이지가 열립니다. 배포를 클릭합니다. 실제 배포 전에 구성을 수정할 수 있습니다.
- 프로젝트에 Autopilot 클러스터가 없는 경우 Autopilot 클러스터를 만들라는 메시지가 표시됩니다. Autopilot 클러스터 만들기의 안내를 따릅니다. 클러스터를 만든 후 Google Cloud 콘솔의 GKE AI/ML 페이지로 돌아가 모델을 선택합니다.
모델 배포 페이지에는 선택한 모델과 권장 모델 서버 및 가속기가 미리 채워집니다. 최대 지연 시간과 같은 설정도 구성할 수 있습니다.
(선택사항) 권장 구성이 포함된 매니페스트를 보려면 YAML 보기를 클릭합니다.
권장 구성으로 매니페스트를 배포하려면 배포를 클릭합니다. 배포 작업을 완료하는 데 몇 분 정도 걸릴 수 있습니다.
배포를 보려면 Kubernetes Engine > 워크로드 페이지로 이동합니다.
gcloud
매니페스트 생성: 터미널에서
manifests
옵션을 사용하여 배포, 서비스, PodMonitoring 매니페스트를 생성합니다.gcloud alpha container ai recommender manifests create
필수
--model
,--model-server
,--accelerator-type
매개변수를 사용하여 매니페스트를 맞춤설정합니다.원하는 경우 다음 매개변수를 설정할 수 있습니다.
--target-ntpot-milliseconds
: 이 매개변수를 설정하여 HPA 임곗값을 지정합니다. 이 매개변수를 사용하면 50번째 분위수에서 측정되는 NTPOT (출력 토큰당 표준화된 시간) P50 지연 시간을 지정된 값 미만으로 유지하기 위한 확장 임곗값을 정의할 수 있습니다. 가속기의 최소 지연 시간보다 높은 값을 선택합니다. NTPOT 값을 가속기의 최대 지연 시간보다 높게 지정하면 HPA가 최대 처리량으로 구성됩니다. 예를 들면 다음과 같습니다.gcloud alpha container ai recommender manifests create \ --model=google/gemma-2-27b-it \ --model-server=vllm \ --model-server-version=v0.7.2 \ --accelerator-type=nvidia-l4 \ --target-ntpot-milliseconds=200
--model-server-version
: 모델 서버 버전입니다. 지정하지 않으면 기본값은 최신 버전입니다.--namespace
: 매니페스트를 배포할 네임스페이스입니다. 기본 네임스페이스는 'default'입니다.--output
: 유효한 값은manifest
,comments
,all
입니다. 기본적으로 이 매개변수는all
로 설정됩니다. 워크로드 배포를 위한 매니페스트만 출력하거나 기능 사용 설정에 관한 안내를 보려는 경우 댓글만 출력하도록 선택할 수 있습니다.--output-path
: 지정하면 출력이 터미널에 출력되지 않고 제공된 경로에 저장되므로 출력을 배포하기 전에 수정할 수 있습니다. 예를 들어 매니페스트를 YAML 파일에 저장하려면--output=manifest
옵션과 함께 이를 사용할 수 있습니다. 예를 들면 다음과 같습니다.gcloud alpha container ai recommender manifests create \ --model deepseek-ai/DeepSeek-R1-Distill-Qwen-7B \ --model-server vllm \ --accelerator-type=nvidia-tesla-a100 \ --output=manifest \ --output-path /tmp/manifests.yaml
추가 옵션은 Google Cloud CLI 문서를 참고하세요.
인프라 프로비저닝: 이 프로비저닝 단계에 따라 모델 배포, 모니터링, 확장에 맞게 인프라가 올바르게 설정되어 있는지 확인합니다.
매니페스트 배포:
kubectl apply
명령어를 실행하고 매니페스트의 YAML 파일을 전달합니다. 예를 들면 다음과 같습니다.kubectl apply -f ./manifests.yaml
인프라 프로비저닝
모델 배포, 모니터링, 확장에 맞게 인프라가 올바르게 설정되어 있는지 확인하려면 다음 단계를 따르세요.
클러스터 만들기: GKE Autopilot 또는 Standard 클러스터에서 모델을 제공할 수 있습니다. 완전 관리형 Kubernetes 환경을 위해서는 Autopilot 클러스터를 사용하는 것이 좋습니다. 워크로드에 가장 적합한 GKE 작업 모드를 선택하려면 GKE 작업 모드 선택을 참고하세요.
기존 클러스터가 없는 경우 다음 단계를 따르세요.
Autopilot
다음 안내에 따라 Autopilot 클러스터를 만듭니다. 프로젝트에 필요한 할당량이 있는 경우 GKE는 배포 매니페스트를 기반으로 GPU 또는 TPU 용량으로 노드 프로비저닝을 처리합니다.
표준
- 영역 또는 리전 클러스터를 만듭니다.
적절한 가속기를 사용하여 노드 풀을 만듭니다. 선택한 가속기 유형에 따라 다음 단계를 따르세요.
- GPU: 먼저 Google Cloud 콘솔의 할당량 페이지에서 GPU 용량이 충분한지 확인합니다. 그런 다음 GPU 노드 풀 만들기의 안내를 따릅니다.
- TPU: 먼저 TPU 및 기타 GKE 리소스의 할당량 확인의 안내에 따라 TPU가 충분한지 확인합니다. 그런 다음 TPU 노드 풀 만들기로 이동합니다.
(선택사항이나 권장됨) 관측 가능성 기능 사용 설정: 생성된 매니페스트의 주석 섹션에는 추천 관측 가능성 기능을 사용 설정하기 위한 추가 명령어가 제공됩니다. 이러한 기능을 사용 설정하면 워크로드와 기본 인프라의 성능 및 상태를 모니터링하는 데 도움이 되는 더 많은 통계를 얻을 수 있습니다.
다음은 관측 가능성 기능을 사용 설정하는 명령어의 예입니다.
gcloud beta container clusters update $CLUSTER_NAME --project=$PROJECT_ID --location=$LOCATION \ --enable-managed-prometheus \ --logging=SYSTEM,WORKLOAD \ --monitoring=SYSTEM,DEPLOYMENT,HPA,POD,DCGM \ --auto-monitoring-scope=ALL
자세한 내용은 추론 워크로드 모니터링을 참고하세요.
(HPA만 해당) 측정항목 어댑터 배포: HPA 리소스가 배포 매니페스트에서 생성된 경우 커스텀 측정항목 Stackdriver 어댑터와 같은 측정항목 어댑터가 필요합니다. 측정항목 어댑터를 사용하면 HPA가 kube 외부 측정항목 API를 사용하는 모델 서버 측정항목에 액세스할 수 있습니다. 어댑터를 배포하려면 GitHub의 어댑터 문서를 참고하세요.
배포 엔드포인트 테스트
명령줄을 사용하여 매니페스트를 배포한 경우 배포된 서비스는 다음 엔드포인트에 노출됩니다.
http://model-model_server-service:port/
서비스를 테스트합니다. 별도의 터미널에서 다음 명령어를 실행하여 포트 전달을 설정합니다.
kubectl port-forward service/model-model_server-service 8000:8000
엔드포인트에 요청을 빌드하고 전송하는 방법의 예는 vLLM 문서를 참고하세요.
추론 워크로드 모니터링
배포된 추론 워크로드를 모니터링하려면 콘솔의 측정항목 탐색기로 이동합니다. Google Cloud
자동 모니터링 사용 설정
GKE에는 광범위한 관측 가능성 기능의 일부인 자동 모니터링 기능이 포함되어 있습니다. 이 기능은 지원되는 모델 서버에서 실행되는 워크로드를 클러스터에서 스캔하고 이러한 워크로드 측정항목이 Cloud Monitoring에 표시되도록 하는 PodMonitoring 리소스를 배포합니다. 자동 모니터링을 사용 설정하고 구성하는 방법에 관한 자세한 내용은 워크로드의 자동 애플리케이션 모니터링 구성을 참고하세요.
이 기능을 사용 설정하면 GKE는 지원되는 워크로드의 애플리케이션을 모니터링하기 위한 사전 빌드된 대시보드를 설치합니다.
Google Cloud 콘솔의 GKE AI/ML 페이지에서 배포하면 PodMonitoring 및 HPA 리소스가 targetNtpot
구성을 사용하여 자동으로 생성됩니다.
문제 해결
- 지연 시간을 너무 낮게 설정하면 추론 빠른 시작에서 추천이 생성되지 않을 수 있습니다. 이 문제를 해결하려면 선택한 가속기에서 관찰된 최소 지연 시간과 최대 지연 시간 사이의 지연 시간 타겟을 선택합니다.
- 추론 빠른 시작은 GKE 구성요소와 별개로 존재하므로 클러스터 버전은 서비스 사용과 직접적인 관련이 없습니다. 하지만 성능 불일치를 방지하려면 최신 클러스터를 사용하는 것이 좋습니다.
- 할당량 프로젝트가 없다는
gkerecommender.googleapis.com
명령어의PERMISSION_DENIED
오류가 발생하면 수동으로 설정해야 합니다.gcloud config set billing/quota_project PROJECT_ID
를 실행하여 이 문제를 해결합니다.
다음 단계
- GKE의 AI/ML 조정 포털에서 GKE에서 AI/ML 워크로드를 실행하기 위한 공식 가이드, 튜토리얼, 사용 사례를 살펴보세요.
- 모델 서빙 최적화에 관한 자세한 내용은 GPU를 사용하여 대규모 언어 모델 추론을 최적화하기 위한 권장사항을 참고하세요. 양자화, 텐서 동시 로드, 메모리 관리와 같이 GKE에서 GPU를 사용하여 LLM을 제공하기 위한 권장사항을 다룹니다.
- 자동 확장에 관한 권장사항에 대한 자세한 내용은 다음 가이드를 참고하세요.
- ai-on-gke GitHub 저장소에서 추가 예시, 권장사항, 도구를 살펴보세요.