이 문서는 Google Kubernetes Engine (GKE)을 처음 사용하고 GKE에서 추론 워크로드를 최대한 빨리 실행하려는 머신러닝 (ML) 엔지니어를 위한 시리즈의 첫 번째 부분입니다.
이 시리즈에서는 사용 가능한 모든 GKE 옵션을 설명하지 않습니다. 대신 GKE에서 워크로드를 실행하는 데 필요한 기본 정보를 제공합니다. 이 시리즈에는 다음 문서가 포함되어 있습니다.
- AI/ML 추론에 GKE를 사용하는 이유 (이 문서)
- GKE의 AI/ML 모델 추론 정보
- GKE의 AI/ML 워크로드에 대한 간소화된 자동 확장 개념
AI/ML 플랫폼 엔지니어는 GKE를 사용하여 모델 배포를 관리할 수 있습니다. GKE는 Kubernetes 기반 추론 워크로드와 워크로드가 실행되는 컴퓨팅 인프라의 배포, 확장, 모니터링을 자동화할 수 있는 서비스입니다. 이 문서에서는 모델 추론에 GKE를 사용할 때의 주요 이점 중 일부를 다룹니다. 여기에는 다음이 포함됩니다.
- 일관된 애플리케이션 성능
- 특수 추론 하드웨어에 대한 간소화된 액세스
- 추론 워크로드의 자동 확장
- 워크로드 성능 및 상태의 자동 모니터링 및 로깅
- 개방형 표준 및 오픈소스 기술 사용의 이식성 및 유연성
시작하기 전에
이 문서를 읽기 전에 다음 사항을 숙지해야 합니다.
- 기본적인 Kubernetes 개념: 컨테이너, 포드, 노드, 클러스터와 서로 어떤 관련이 있는지 알아봅니다.
- GKE 작업 모드: Autopilot 및 Standard GKE 클러스터, 용도, 차이점을 알아봅니다.
일관된 성능을 위해 모델 패키징
일관되고 안정적인 모델 추론은 AI 애플리케이션에 매우 중요하며 GKE는 대규모 추론 관리에 따른 운영 복잡성을 줄일 수 있습니다. 학습된 모델, 추론 서버, 모든 종속 항목을 컨테이너에 패키징하면 GKE에서 실행되는 표준화된 이식 가능한 아티팩트가 생성됩니다. 컨테이너화를 사용하면 종속 항목 불일치 또는 일관되지 않은 환경으로 인해 발생하는 오류를 줄일 수 있습니다. GKE는 이러한 컨테이너를 자동으로 배포하고 관리합니다. GKE는 비정상 종료된 워크로드 다시 시작 또는 리소스 재프로비저닝과 같은 작업을 처리하여 AI/ML 워크로드의 성능을 안정화합니다.
GPU 및 TPU를 사용하여 서빙 지연 시간 줄이기
지연 시간은 추론 워크로드의 문제입니다. 일부 복잡한 모델은 GPU 및 TPU와 같은 하드웨어 가속기를 사용하여 추론 서빙을 가속화합니다. GKE는 하드웨어 프로비저닝 및 관리를 간소화하여 지연 시간에 민감한 추론 워크로드에 GPU 또는 TPU를 사용하는 프로세스를 간소화합니다. 성능 및 비용 요구사항에 가장 적합한 특정 하드웨어 구성을 선택하면 GKE는 선택한 하드웨어로 노드를 자동으로 프로비저닝하여 워크로드를 실행합니다. GKE는 일반적으로 Kubernetes에서 수동 구성이 필요한 설정 단계(예: NVIDIA 드라이버 설치)도 자동화합니다. 노드 구성을 더 세부적으로 제어하려면 커스텀 ComputeClass 를 사용하여 GKE가 노드를 프로비저닝할 때 사용하는 재사용 가능한 특정 하드웨어 프로필을 만들 수 있습니다.
GKE는 추론 서빙에 TPU 및 GPU 리소스를 더 효율적으로 사용할 수 있도록 리소스 관리 기능도 제공합니다. 예를 들어, GPU 공유를 사용하여 단일 GPU 서버에서 여러 모델을 호스팅하여 GPU 사용률을 개선하거나 가속기가 있는 스팟 VM에서 내결함성 추론 작업을 실행하여 비용을 절감할 수 있습니다. 수요 요구사항이 변동하거나 기간이 짧은 중소 규모 워크로드의 경우 Flex-start를 사용할 수 있습니다. 이 기능은 GPU 또는 TPU와 같은 특수 컴퓨팅 리소스를 유연하고 비용 효율적으로 사용할 수 있는 기술을 제공합니다. 이러한 기능을 사용하면 서빙 지연 시간과 비용을 모두 최적화하면서 가속기 리소스 사용을 극대화할 수 있습니다.
변동하는 트래픽 패턴 자동 처리
실시간 추론 워크로드의 트래픽과 부하는 예측할 수 없고 동적일 수 있습니다. 수요 급증으로 인해 지연 시간이 증가하고 성능이 저하될 수 있습니다. GKE는 자동 확장에 다층적 접근 방식을 제공하므로 변동하는 추론 수요를 충족하기 위해 리소스를 자동으로 추가하거나 삭제할 수 있습니다. 예를 들어 수평형 포드 자동 확장 처리 (HPA)를 사용하여 배포의 포드 수를 자동으로 조정하거나 클러스터 자동 확장 처리를 사용하여 기존 노드 풀의 노드 수를 자동으로 조정할 수 있습니다. GKE 자동 확장 기능을 사용하면 추론 워크로드에 필요한 리소스 양을 애플리케이션 수요량과 효율적으로 일치시킬 수 있습니다.
추론 워크로드의 상태 및 성능 모니터링
GKE는 관측 가능성 제품군 (Cloud Logging 및 Cloud Monitoring)과 통합되어 있으며 기본 제공 관측 가능성 기능 을 사용하여 추론 워크로드의 상태와 성능을 모니터링할 수 있습니다. Cloud de Confiance by S3NS 이러한 관측 가능성 기능을 사용하면 워크로드를 배포한 후 워크로드의 성능에 대한 통계와 가시성을 얻을 수 있습니다. 예를 들어 모델이 예상대로 작동하는지 또는 워크로드가 지연 시간 및 정확도 요구사항을 충족하는지 궁금할 수 있습니다.
GKE는 CPU, 메모리, 가속기 사용률과 같은 인프라 측정항목을 자동으로 보고합니다. 모델별 성능에 관한 질문에 답하려면 Google Cloud Managed Service for Prometheus를 사용하거나 추론 애플리케이션에서 Cloud Monitoring으로 커스텀 측정항목을 전송하면 됩니다. 예를 들어 자동 애플리케이션 모니터링을 구성하고 초당 요청 수 (RPS)와 같은 주요 추론 측정항목을 모니터링할 수 있습니다. 입력 데이터 분포와 같은 모델별 측정항목을 분석하여 개념 드리프트를 모니터링하고 이전 로그 분석을 수행하여 문제를 디버깅할 수 있습니다.
이식성 및 유연성을 위해 GKE 사용
GKE는 컨테이너와 같은 개방형 표준 및 Kubernetes와 같은 오픈소스 기술을 사용하여 요구사항이 변경됨에 따라 추론 서빙 워크로드를 다른 위치로 이동하고 다른 리소스와 도구를 사용할 수 있는 자유를 제공합니다. 예를 들어 GKE에서 추론 애플리케이션을 개발하고 테스트한 후 프로덕션을 위해 동일한 컨테이너화된 애플리케이션을 온프레미스 환경에 배포할 수 있습니다.
결론적으로 GKE를 사용하여 AI/ML 모델을 개발에서 프로덕션으로 이동하는 방법을 간소화할 수 있습니다. GKE는 인프라 관리와 관련된 여러 복잡한 문제를 처리하므로 성능이 우수하고 확장 가능하며 관측 가능한 환경에서 추론 워크로드를 실행하는 데 집중할 수 있습니다. 이 시리즈를 진행하면서 GKE를 사용하여 AI/ML 모델을 강력한 프로덕션 지원 애플리케이션으로 전환하는 방법을 알아봅니다.
다음 단계
- GKE의 AI/ML 모델 추론 정보 (이 시리즈의 다음 문서)
- GKE에서 추론 워크로드 실행을 위한 권장사항 알아보기
- GKE에서 단일 GPU로 모델 서빙하는 방법 알아보기
- 사전 구성된 아키텍처로 GKE에서 개방형 LLM 서빙하는 방법 알아보기
- 사전 구성된 아키텍처로 GKE에서 TPU를 사용하여 개방형 LLM 서빙하는 방법 알아보기