AI/ML 추론에 GKE를 사용해야 하는 이유

이 문서는 GKE를 처음 사용하고 GKE에서 추론 워크로드를 최대한 빨리 실행하려는 머신러닝 (ML) 엔지니어를 대상으로 하는 시리즈의 첫 번째 부분입니다.

이 시리즈에서는 사용 가능한 모든 GKE 옵션에 대해 설명하지 않습니다. 대신 GKE에서 워크로드를 실행하는 데 필요한 기본 정보를 제공합니다. 이 시리즈에는 다음 문서가 포함되어 있습니다.

AI/ML 실무자는 Google Kubernetes Engine(GKE)을 사용하여 모델 배포를 관리할 수 있습니다. GKE는 Kubernetes 기반 추론 워크로드와 워크로드가 실행되는 컴퓨팅 인프라의 배포, 확장, 모니터링을 자동화할 수 있는 서비스입니다. 이 문서에서는 모델 추론에 GKE를 사용할 때 얻을 수 있는 주요 이점을 다룹니다.

시작하기 전에

이 문서를 읽기 전에 다음 사항을 숙지해야 합니다.

  • 기본 Kubernetes 개념: 컨테이너, 포드, 노드, 클러스터와 이러한 요소 간의 관계를 알아봅니다.
  • GKE 작업 모드: Autopilot 및 Standard GKE 클러스터, 용도, 차이점에 대해 알아봅니다.

일관된 성능을 위해 모델 패키징

일관되고 안정적인 모델 추론은 AI 애플리케이션에 매우 중요하며 GKE는 대규모 추론 관리의 운영 복잡성을 줄일 수 있습니다. 학습된 모델, 추론 서버, 모든 종속 항목을 컨테이너에 패키징하면 GKE에서 일관되게 실행되는 표준화된 이식 가능한 아티팩트가 만들어집니다. 컨테이너화는 종속 항목 불일치 또는 환경 불일치로 인해 발생하는 오류를 줄이는 데 도움이 됩니다. GKE는 이러한 컨테이너를 자동으로 배포하고 관리합니다. 비정상 종료된 워크로드를 다시 시작하거나 리소스를 다시 프로비저닝하는 등의 작업을 처리하여 AI/ML 워크로드의 성능을 안정화합니다.

GPU 및 TPU를 사용하여 제공 지연 시간 줄이기

지연 시간은 추론 워크로드의 문제이며 일부 복잡한 모델은 추론 서빙을 가속화하기 위해 GPUTPU와 같은 하드웨어 가속기를 사용합니다. GKE는 지연 시간에 민감한 추론 워크로드에 GPU 또는 TPU를 사용하는 프로세스를 간소화합니다. 성능 및 비용 요구사항에 가장 적합한 특정 하드웨어 구성을 선택하면 GKE에서 선택한 하드웨어를 자동으로 프로비저닝하고 관리합니다. 예를 들어 GKE는 일반적으로 Kubernetes에서 수동 구성이 필요한 단계인 NVIDIA 드라이버 설치를 자동화합니다.

또한 GKE는 추론 제공을 위해 TPU 및 GPU 리소스를 더 효율적으로 사용할 수 있도록 리소스 관리 기능을 제공합니다. 예를 들어 GKE를 사용하여 여러 모델에서 GPU 또는 TPU 풀을 예약하거나 공유할 수 있으며, 스팟 VM과 함께 가속기를 사용하여 내결함성 추론 워크로드의 비용 효율성을 높일 수 있습니다. 이러한 기능을 사용하면 서빙 지연 시간과 비용을 모두 최적화하면서 액셀러레이터 리소스의 사용을 극대화할 수 있습니다.

변동하는 트래픽 패턴 자동 처리

실시간 추론 워크로드의 트래픽과 부하는 예측할 수 없고 동적일 수 있습니다. 수요가 급증하면 지연 시간이 증가하고 성능이 저하될 수 있습니다. GKE는 다양한 추론 수요를 충족하기 위해 리소스를 자동으로 추가하거나 삭제할 수 있도록 다층적 자동 확장 접근 방식을 제공합니다. 예를 들어 수평형 포드 자동 확장 처리 (HPA)를 사용하여 배포의 포드 수를 자동으로 조정하거나 클러스터 자동 확장 처리를 사용하여 기존 노드 풀의 노드 수를 자동으로 조정할 수 있습니다. GKE 자동 확장 기능을 사용하면 추론 워크로드에 필요한 리소스 양을 애플리케이션 수요량에 효율적으로 맞출 수 있습니다.

추론 워크로드의 상태 및 성능 모니터링

GKE는 Google Cloud 관측 가능성 제품군(Cloud LoggingCloud Monitoring)과 통합되어 있으며 기본 제공 관측 가능성 기능을 사용하여 추론 워크로드의 상태와 성능을 모니터링할 수 있습니다. 이러한 관측 가능성 기능을 사용하면 워크로드를 배포한 후 워크로드의 성능을 파악하고 확인할 수 있습니다. 예를 들어 모델이 예상대로 작동하는지 또는 워크로드가 지연 시간 및 정확도 요구사항을 충족하는지 궁금할 수 있습니다.

GKE는 CPU, 메모리, 가속기 사용률과 같은 인프라 측정항목을 자동으로 보고합니다. 모델별 성능에 관한 질문에 답변하려면 Google Cloud Managed Service for Prometheus를 사용하거나 추론 애플리케이션에서 Cloud Monitoring으로 맞춤 측정항목을 전송하면 됩니다. 예를 들어 자동 애플리케이션 모니터링을 구성하고 초당 요청 수 (RPS)와 같은 주요 추론 측정항목을 모니터링할 수 있습니다. 입력 데이터 분포와 같은 모델별 측정항목을 분석하여 개념 드리프트를 모니터링하고, 이전 로그 분석을 실행하여 문제를 디버그할 수 있습니다.

이식성과 유연성을 위해 GKE 사용

GKE는 컨테이너와 같은 개방형 표준과 Kubernetes와 같은 오픈소스 기술을 사용하여 요구사항이 변경될 때 추론 서비스 워크로드를 다른 위치로 이동하고 다른 리소스와 도구를 사용할 수 있는 자유를 제공합니다. 예를 들어 GKE에서 추론 애플리케이션을 개발하고 테스트한 다음 프로덕션을 위해 동일한 컨테이너화된 애플리케이션을 온프레미스 환경에 배포할 수 있습니다.

결론적으로 GKE를 사용하면 AI/ML 모델을 개발에서 프로덕션으로 이동하는 방법을 간소화할 수 있습니다. GKE는 인프라 관리와 관련된 많은 복잡성을 처리하므로 성능이 우수하고 확장 가능하며 관측 가능한 환경에서 추론 워크로드를 실행하는 데 집중할 수 있습니다. 이 시리즈를 진행하면서 GKE를 사용하여 AI/ML 모델을 강력한 프로덕션 지원 애플리케이션으로 변환하는 방법을 알아봅니다.

다음 단계