AI 및 ML 관점: 안정성

Last reviewed 2025-08-07 UTC

Google Cloud Well-Architected Framework: AI 및 ML 관점의 이 문서에서는 Google Cloud에서 안정적인 AI 및 ML 시스템을 설계하고 운영하기 위한 원칙과 권장사항을 개략적으로 설명합니다. 고급 신뢰성 관행과 관측 가능성을 아키텍처 청사진에 통합하는 방법을 살펴봅니다. 이 문서의 권장사항은 Google Cloud Well-Architected 프레임워크의 안정성 분야와 일치합니다.

빠르게 진화하는 AI 및 ML 환경에서 고객 만족도를 높이고 비즈니스 목표를 달성하려면 안정적인 시스템이 필수적입니다. 예측 ML과 생성형 AI의 고유한 요구사항을 모두 충족하려면 강력하고 안정적이며 적응 가능한 AI 및 ML 시스템이 필요합니다. 개발부터 배포, 지속적인 개선에 이르기까지 MLOps의 복잡성을 처리하려면 안정성 우선 접근 방식을 사용해야 합니다. Google Cloud 는 사이트 안정성 엔지니어링 (SRE) 원칙에 부합하고 안정적인 AI 및 ML 시스템을 위한 강력한 기반을 제공하는 맞춤형 AI 인프라를 제공합니다.

이 문서의 권장사항은 다음 핵심 원칙에 매핑됩니다.

ML 인프라가 확장 가능하고 가용성이 높아야 합니다.

클라우드에서 안정적인 AI 및 ML 시스템을 사용하려면 확장 가능하고 가용성이 높은 인프라가 필요합니다. 이러한 시스템은 동적 요구사항, 다양한 리소스 요구사항, 모델 가용성에 대한 중요한 종속성이 있습니다. 확장 가능한 아키텍처는 변동하는 부하와 데이터 볼륨 또는 추론 요청의 변화에 적응합니다. 고가용성 (HA)은 구성요소, 영역 또는 리전 수준에서 장애에 대한 복원력을 보장하는 데 도움이 됩니다.

확장 가능하고 가용성이 높은 ML 인프라를 빌드하려면 다음 권장사항을 고려하세요.

자동 및 동적 확장 기능 구현

AI 및 ML 워크로드는 데이터 도착률, 학습 빈도, 추론 트래픽 볼륨에 따라 수요가 변동하는 동적인 워크로드입니다. 자동 및 동적 확장을 통해 인프라 리소스를 수요 변동에 원활하게 적응시킬 수 있습니다. 워크로드를 효과적으로 확장하면 다운타임을 방지하고, 성능을 유지하고, 비용을 최적화할 수 있습니다.

AI 및 ML 워크로드를 자동 확장하려면 Google Cloud에서 다음 제품과 기능을 사용하세요.

  • 데이터 처리 파이프라인: Dataflow에서 데이터 파이프라인을 만듭니다. CPU 사용률, 파이프라인 병렬 처리, 대기 중인 데이터를 기반으로 작업자 인스턴스 수를 동적으로 조정하는 Dataflow의 수평 자동 확장 기능을 사용하도록 파이프라인을 구성합니다. 작업을 실행할 때 파이프라인 옵션을 통해 자동 확장 매개변수를 구성할 수 있습니다.
  • 학습 작업: Vertex AI 커스텀 학습을 사용하여 학습 작업의 확장/축소를 자동화합니다. 머신 유형, 가속기 유형 및 수, 작업자 풀 수와 같은 작업자 풀 사양을 정의할 수 있습니다. 중단을 허용할 수 있는 작업과 학습 코드에서 체크포인트를 구현하는 작업의 경우 스팟 VM을 사용하여 비용을 절감할 수 있습니다.
  • 온라인 추론: 온라인 추론의 경우 Vertex AI 엔드포인트를 사용합니다. 자동 확장을 사용 설정하려면 최소 및 최대 복제본 수를 구성합니다. 고가용성을 위해 복제본을 2개 이상 지정합니다. Vertex AI는 트래픽과 CPU 사용률, 복제본 사용률과 같은 구성된 자동 확장 측정항목을 기반으로 복제본 수를 자동으로 조정합니다.
  • Google Kubernetes Engine의 컨테이너화된 워크로드: 노드 및 포드 수준에서 자동 확장을 구성합니다. 클러스터 자동 확장 처리기노드 자동 프로비저닝을 구성하여 CPU, 메모리, GPU, TPU와 같은 대기 중인 포드 리소스 요청에 따라 노드 수를 조정합니다. 배포에 수평형 포드 자동 확장 처리 (HPA)를 사용하여 CPU 및 메모리 사용률과 같은 측정항목을 기반으로 확장 정책을 정의합니다. GPU 또는 TPU 사용률, 초당 예측 요청 수와 같은 맞춤 AI 및 ML 측정항목을 기반으로 확장할 수도 있습니다.
  • 서버리스 컨테이너화된 서비스: Cloud Run에 서비스를 배포하고 컨테이너 인스턴스의 최소 및 최대 수를 지정하여 자동 확장을 구성합니다. 권장사항을 사용하여 가속기 유형을 지정하여 GPU 지원 인스턴스를 자동 확장합니다. Cloud Run은 수신 요청에 따라 구성된 최소 및 최대 한도 사이에서 인스턴스를 자동으로 확장합니다. 요청이 없으면 인스턴스 0개로 효율적으로 확장됩니다. Cloud Run의 자동 요청 기반 확장 기능을 활용하여 Vertex AI 에이전트를 배포하고 Ollama를 사용하는 양자화된 모델, vLLM을 사용하는 LLM 모델 추론, Huggingface Text Generation Inference (TGI)와 같은 서드 파티 워크로드를 배포할 수 있습니다.

HA 및 내결함성을 위한 설계

프로덕션 등급 AI 및 ML 워크로드의 경우 지속적인 운영과 장애에 대한 복원력을 보장하는 것이 중요합니다. HA 및 내결함성을 구현하려면 Google Cloud에서 아키텍처에 중복 및 복제를 빌드해야 합니다. 이 접근 방식은 개별 구성요소의 장애가 전체 시스템의 장애를 일으키지 않도록 하는 데 도움이 됩니다.

Google Cloud에서 중요한 AI 및 ML 구성요소의 중복성을 구현합니다. 다음은 리소스 중복을 구현할 수 있는 제품 및 기능의 예입니다.

  • 여러 영역에 GKE 리전 클러스터를 배포합니다.
  • Cloud Storage 멀티 리전 또는 이중 리전 버킷을 사용하여 데이터 세트 및 체크포인트의 데이터 중복을 보장합니다.
  • 전역적으로 일관되고 가용성이 높은 메타데이터 스토리지를 위해 Spanner를 사용합니다.
  • 운영 데이터베이스용 Cloud SQL 읽기 복제본을 구성합니다.
  • 검색 증강 생성 (RAG)을 위한 벡터 데이터베이스가 고가용성이며 멀티 영역 또는 멀티 리전인지 확인합니다.

선제적으로 리소스를 관리하고 요구사항 예측

효과적인 리소스 관리는 비용, 성능, 안정성을 최적화하는 데 중요합니다. AI 및 ML 워크로드는 동적이며 GPU 및 TPU와 같은 전문 하드웨어에 대한 수요가 높습니다. 따라서 사전 예방적 리소스 관리를 적용하고 리소스 가용성을 보장하는 것이 중요합니다.

Cloud Monitoring의 GPU 또는 TPU 사용률 및 처리량과 같은 이전 모니터링 데이터와 Cloud Logging의 로그를 기반으로 용량을 계획합니다. BigQuery 또는 Looker Studio를 사용하여 이 원격 분석 데이터를 분석하고 성장 또는 새 모델을 기반으로 향후 GPU 수요를 예측합니다. 리소스 사용 패턴과 추세를 분석하면 중요한 특수 가속기가 언제 어디에 필요한지 예측할 수 있습니다.

  • 엄격한 부하 테스트를 통해 용량 추정치를 검증합니다. Apache JMeter 또는 LoadView와 같은 도구를 사용하여 서빙 및 파이프라인과 같은 AI 및 ML 서비스의 트래픽을 시뮬레이션합니다.
  • 스트레스 상태에서 시스템 동작을 분석합니다.
    • 프로덕션에서 증가하는 워크로드 요구사항을 예측하고 충족하려면 리소스 요구사항을 사전에 파악하세요. 지연 시간, 처리량, 오류, 리소스 사용률(특히 GPU 및 TPU 사용률)을 모니터링합니다. 필요에 따라 리소스 할당량을 늘립니다.
    • 생성형 AI 서빙의 경우 높은 동시 부하에서 테스트하고 가속기 가용성이 성능을 제한하는 수준을 식별합니다.
  • 모델 쿼리에 대한 지속적인 모니터링을 수행하고 에이전트에 대한 사전 대응형 알림을 설정합니다.
    • 모델 모니터링 가능성 대시보드를 사용하여 모델의 초당 쿼리 수 (QPS), 토큰 처리량, 최초 토큰 지연 시간과 같이 Cloud Monitoring에서 수집되는 측정항목을 확인합니다.

리소스 가용성 및 획득 가능성 최적화

워크로드 요구사항에 따라 적절한 컴퓨팅 리소스를 전략적으로 선택하여 비용을 최적화하고 리소스 가용성을 보장합니다.

  • 안정적인 24x7 추론 또는 고정되거나 예측 가능한 용량 요구사항이 있는 학습 워크로드의 경우 VM 및 가속기에 약정 사용 할인 (CUD)을 사용하세요.
  • GKE 노드 및 Compute Engine VM의 경우 스팟 VM 및 동적 워크로드 스케줄러 (DWS) 기능을 사용하세요.

    • 평가 및 실험 워크로드와 같은 내결함성 작업에는 Spot VM을 사용합니다. 스팟 VM은 선점될 수 있지만 전체 비용을 줄이는 데 도움이 될 수 있습니다.
    • 수요가 많은 액셀러레이터의 선점 위험을 관리하려면 DWS를 사용하여 획득 가능성을 높이면 됩니다.
      • 최대 7일 동안 실행되는 고급 GPU가 필요한 복잡한 배치 학습의 경우 DWS Flex-Start 모드를 사용하세요.
      • 최대 3개월 동안 실행되는 장기 실행 워크로드의 경우 캘린더 모드를 사용하여 특정 GPU (H100 및 H200)와 TPU (Trillium)를 예약합니다.
  • GKE에서 AI 추론을 최적화하려면 변동하는 용량 및 성능 요구사항을 해결하기 위해 TPU와 GPU를 동적으로 사용하는 vLLM 엔진을 실행하면 됩니다. 자세한 내용은 vLLM GPU/TPU 대체 가능성을 참고하세요.

  • 액셀러레이터가 포함된 복잡한 리소스 및 토폴로지 요구사항이 있는 고급 시나리오의 경우 도구를 사용하여 리소스 관리를 추상화하세요.

    • Cluster Director를 사용하면 다중 GPU 학습 (A3 Ultra H200 및 A4 B200)을 위해 공동 배치 및 예약이 포함된 가속기 그룹을 배포하고 관리할 수 있습니다. Cluster Director는 GKE 및 Slurm 클러스터를 지원합니다.
    • Vertex AI 기반 Ray는 분산 컴퓨팅 인프라를 추상화합니다. 이를 통해 애플리케이션은 VM과 컨테이너를 직접 관리할 필요 없이 학습 및 제공을 위한 리소스를 요청할 수 있습니다.

수신 트래픽을 여러 인스턴스에 분산

효과적인 부하 분산은 수요가 변동하는 AI 애플리케이션에 매우 중요합니다. 부하 분산은 트래픽을 분산하고, 리소스 사용률을 최적화하고, 고가용성 및 짧은 지연 시간을 제공하며, 원활한 사용자 환경을 보장하는 데 도움이 됩니다.

  • 다양한 리소스 요구사항을 사용한 추론: 모델 측정항목을 기반으로 부하 분산을 구현합니다. GKE Inference Gateway를 사용하면 모델 인식 라우팅을 통해 부하 분산기 뒤에 모델을 배포할 수 있습니다. 게이트웨이는 생성형 AI 및 LLM 추론과 같은 컴퓨팅 집약적인 작업을 위해 GPU 및 TPU 가속기가 있는 인스턴스의 우선순위를 지정합니다. 모델 상태를 평가하기 위해 자세한 상태 점검을 구성합니다. LLM 측정항목에 vLLM 또는 Triton과 같은 서빙 프레임워크를 사용하고 Google Cloud Managed Service for Prometheus를 사용하여 측정항목을 Cloud Monitoring에 통합합니다.
  • GPU 또는 TPU가 필요한 추론 워크로드: 특히 GPU 및 TPU 사용 가능 여부가 제한적인 경우 중요한 AI 및 ML 추론 워크로드가 워크로드 요구사항에 적합한 머신에서 일관되게 실행되도록 하려면 GKE 커스텀 컴퓨팅 클래스를 사용하세요. 자동 확장용 대체 정책을 사용하여 특정 컴퓨팅 프로필을 정의할 수 있습니다. 예를 들어 예약된 GPU 또는 TPU 인스턴스의 우선순위를 높게 지정하는 프로필을 정의할 수 있습니다. 프로필에는 예약된 리소스를 일시적으로 사용할 수 없는 경우 비용 효율적인 스팟 VM을 사용하는 대체 옵션이 포함될 수 있습니다.
  • 다양한 오케스트레이션 플랫폼의 생성형 AI: 중앙 집중식 부하 분산기를 사용합니다. 예를 들어 비용 및 관리 효율성을 위해 GPU 요구사항이 낮은 요청은 Cloud Run으로 라우팅하고 더 복잡하고 GPU 집약적인 작업은 GKE로 라우팅할 수 있습니다. 서비스 간 통신 및 정책 관리를 위해 Cloud Service Mesh를 사용하여 서비스 메시를 구현합니다. Cloud Logging 및 Cloud Monitoring을 사용하여 일관된 로깅 및 모니터링을 보장합니다.
  • 전역 부하 분산: 지연 시간이 짧아야 하는 전 세계 사용자의 트래픽을 부하 분산하려면 전역 외부 애플리케이션 부하 분산기를 사용하세요. 가장 가까운 리전으로 위치정보 라우팅을 구성하고 장애 조치를 구현합니다. Vertex AI 또는 GKE에서 리전 엔드포인트 복제를 설정합니다. 정적 애셋에 대해 Cloud CDN을 구성합니다. Cloud Monitoring을 사용하여 전역 트래픽과 지연 시간을 모니터링합니다.
  • 세부적인 트래픽 관리: 데이터 유형이나 복잡성이 다양하고 장기 실행 요청이 있는 요청의 경우 세부적인 트래픽 관리를 구현합니다.
    • URL 경로 및 헤더와 같은 속성을 기반으로 요청을 전문 백엔드로 전달하도록 콘텐츠 기반 라우팅을 구성합니다. 예를 들어 이미지 또는 동영상 모델의 경우 GPU 지원 백엔드에 직접 요청하고 텍스트 기반 모델의 경우 CPU 최적화 백엔드에 직접 요청합니다.
    • 장기 실행 생성형 AI 요청 또는 일괄 워크로드의 경우 WebSockets 또는 gRPC를 사용하세요. 트래픽 관리를 구현하여 타임아웃과 버퍼링을 처리합니다. API Gateway 또는 Apigee를 사용하여 요청 시간 제한 및 재시도를 구성하고 비율 제한 및 할당량을 구현합니다.

모듈화되고 느슨하게 결합된 아키텍처 사용

모듈식의 느슨하게 결합된 AI 및 ML 아키텍처에서 복잡한 시스템은 잘 정의된 인터페이스를 통해 상호작용하는 더 작고 자체 포함된 구성요소로 나뉩니다. 이 아키텍처는 모듈 종속 항목을 최소화하고 개발 및 테스트를 간소화하며 재현성을 향상하고 오류를 포함하여 내결함성을 개선합니다. 모듈식 접근 방식은 복잡성을 관리하고, 혁신을 가속화하며, 장기적인 유지관리 가능성을 보장하는 데 중요합니다.

AI 및 ML 워크로드용 모듈식의 느슨하게 결합된 아키텍처를 설계하려면 다음 권장사항을 고려하세요.

작은 자체 포함 모듈 또는 구성요소 구현

엔드 투 엔드 AI 및 ML 시스템을 작고 독립적인 모듈이나 구성요소로 분리합니다. 각 모듈 또는 구성요소는 데이터 수집, 기능 변환, 모델 학습, 추론 제공 또는 평가와 같은 특정 기능을 담당합니다. 모듈식 설계는 AI 및 ML 시스템에 유지 관리성 향상, 확장성 증가, 재사용성, 유연성 및 민첩성 향상 등 여러 가지 주요 이점을 제공합니다.

다음 섹션에서는 Google Cloud AI 및 ML 시스템의 모듈식 아키텍처를 설계하는 데 사용할 수 있는 제품, 기능, 도구를 설명합니다.

GKE의 컨테이너화된 마이크로서비스

복잡한 AI 및 ML 시스템이나 세부적인 조정이 필요한 복잡한 생성형 AI 파이프라인의 경우 GKE를 사용하여 조정되는 마이크로서비스로 모듈을 구현합니다. 각 개별 단계를 Docker 컨테이너 내의 개별 마이크로서비스로 패키징합니다. 이러한 고유한 단계에는 다양한 형식에 맞게 조정된 데이터 수집, 전문 데이터 전처리 또는 특성 추출, 대규모 기본 모델의 분산 모델 학습 또는 미세 조정, 평가 또는 서빙이 포함됩니다.

컨테이너화된 마이크로서비스를 GKE에 배포하고 CPU 및 메모리 사용률 또는 GPU 사용률과 같은 맞춤 측정항목, 순차적 업데이트, YAML 매니페스트의 재현 가능한 구성을 기반으로 자동 확장을 활용합니다. GKE 서비스 검색을 사용하여 마이크로서비스 간의 효율적인 통신을 보장합니다. 비동기 패턴의 경우 Pub/Sub와 같은 메시지 큐를 사용합니다.

GKE의 마이크로서비스 접근 방식을 사용하면 단계를 별도의 서비스로 설계할 수 있는 복잡한 RAG 애플리케이션과 같은 작업을 위한 확장 가능하고 복원력이 뛰어난 플랫폼을 빌드할 수 있습니다.

서버리스 이벤트 기반 서비스

서버리스 자동 확장의 이점을 누릴 수 있는 이벤트 기반 작업에는 Cloud Run 또는 Cloud Run 함수를 사용하세요. 이러한 서비스는 전처리 같은 비동기 작업이나 소규모 추론 작업에 적합합니다. Cloud Storage에 생성된 새 데이터 파일이나 Artifact Registry의 모델 업데이트와 같은 이벤트에서 Cloud Run 함수를 트리거합니다. 컨테이너 환경이 필요한 웹훅 작업 또는 서비스의 경우 Cloud Run을 사용하세요.

Cloud Run 서비스와 Cloud Run 함수는 빠르게 확장하고 0으로 축소할 수 있으므로 변동하는 워크로드의 비용 효율성을 보장하는 데 도움이 됩니다. 이러한 서비스는 Vertex AI 에이전트 워크플로의 모듈식 구성요소에 적합합니다. 워크플로 또는 Application Integration을 사용하여 구성요소 시퀀스를 조정할 수 있습니다.

Vertex AI 관리형 서비스

Vertex AI 서비스는 모듈성을 지원하며 AI 및 ML 시스템의 개발 및 배포를 간소화하는 데 도움이 됩니다. 서비스는 인프라 복잡성을 추상화하므로 애플리케이션 로직에 집중할 수 있습니다.

  • 모듈식 단계로 빌드된 워크플로를 조정하려면 Vertex AI Pipelines를 사용하세요.
  • 커스텀 AI 및 ML 코드를 실행하려면 Vertex AI 커스텀 학습 및 Vertex AI 예측과 같은 관리형 서비스에서 실행할 수 있는 Docker 컨테이너에 코드를 패키징하세요.
  • 모듈식 특성 엔지니어링 파이프라인의 경우 Vertex AI Feature Store를 사용하세요.
  • 모듈식 탐색 및 프로토타입 제작에는 Vertex AI Workbench 또는 Colab Enterprise와 같은 노트북 환경을 사용하세요. 코드를 재사용 가능한 함수, 클래스, 스크립트로 정리합니다.

에이전트형 애플리케이션

AI 에이전트의 경우 에이전트 개발 키트 (ADK)도구상태와 같은 모듈식 기능을 제공합니다. LangChain, LangGraph, LlamaIndex, Vertex AI와 같은 프레임워크 간의 상호 운용성을 사용 설정하려면 ADK를 Agent2Agent (A2A) 프로토콜Model Context Protocol (MCP)과 결합하면 됩니다. 이 상호 운용성을 통해 다양한 구성요소를 사용하여 에이전트 워크플로를 구성할 수 있습니다.

확장 가능한 에이전트 배포에 최적화된 관리형 런타임인 Vertex AI Agent Engine에 에이전트를 배포할 수 있습니다. 컨테이너화된 에이전트를 실행하려면 Cloud Run의 자동 확장 기능을 활용하면 됩니다.

잘 정의된 인터페이스 설계

강력하고 유지관리 가능한 소프트웨어 시스템을 빌드하려면 시스템 구성요소가 느슨하게 결합되고 모듈화되어야 합니다. 이 접근 방식은 시스템의 여러 부분 간 종속성을 최소화하므로 상당한 이점을 제공합니다. 모듈이 느슨하게 결합되면 한 모듈의 변경사항이 다른 모듈에 미치는 영향이 최소화됩니다. 이 격리를 통해 개별 모듈의 독립적인 업데이트와 개발 워크플로가 가능합니다.

다음 섹션에서는 AI 및 ML 시스템의 모듈 간 원활한 통신과 통합을 보장하는 데 도움이 되는 가이드를 제공합니다.

프로토콜 선택

  • 범용 액세스를 위해서는 HTTP API를 사용하고, RESTful 원칙을 준수하며, 언어에 구애받지 않는 데이터 교환을 위해 JSON을 사용하세요. 리소스에 대한 작업을 나타내도록 API 엔드포인트를 설계합니다.
  • 마이크로서비스 간의 고성능 내부 통신에는 효율적인 직렬화와 엄격한 타이핑을 위해 프로토콜 버퍼 (ProtoBuf)와 함께 gRPC를 사용하세요. .proto 파일을 사용하여 ModelInput, PredictionResult, ADK Tool 데이터와 같은 데이터 구조를 정의한 다음 언어 바인딩을 생성합니다.
  • 성능이 중요한 사용 사례의 경우 대규모 데이터 세트 또는 실시간 텍스트 음성 변환이나 동영상 애플리케이션과 같은 연속 흐름에 gRPC 스트리밍을 활용하세요. GKE에 gRPC 서비스를 배포합니다.

표준화되고 포괄적인 문서

선택한 인터페이스 프로토콜과 관계없이 표준화된 문서가 중요합니다. OpenAPI 사양은 RESTful API를 설명합니다. OpenAPI를 사용하여 AI 및 ML API(경로, 메서드, 매개변수, JSON 스키마에 연결된 요청-응답 형식, 보안)를 문서화합니다. 포괄적인 API 문서는 검색 가능성과 클라이언트 통합을 개선하는 데 도움이 됩니다. API 작성 및 시각화에는 Swagger Editor와 같은 UI 도구를 사용합니다. 개발을 가속화하고 일관성을 유지하려면 Gemini Code Assist와 같은 AI 지원 코딩 도구를 사용하여 클라이언트 SDK와 서버 스텁을 생성하면 됩니다. OpenAPI 문서를 CI/CD 흐름에 통합합니다.

Vertex AI와 같은 Google Cloud 관리형 서비스와의 상호작용

개발 생산성에 적합한 Vertex AI SDK의 높은 추상화와 REST API가 제공하는 세부적인 제어 중에서 선택합니다.

  • Vertex AI SDK는 작업과 인증을 간소화합니다. Vertex AI와 상호작용해야 하는 경우 SDK를 사용합니다.
  • REST API는 특히 시스템의 레이어 간에 상호 운용성이 필요한 경우 강력한 대안입니다. SDK가 없는 언어의 도구에 유용하며 세부적인 제어가 필요한 경우에도 유용합니다.

API를 사용하여 모듈을 격리하고 구현 세부정보를 추상화

보안, 확장성, 가시성을 위해 AI 및 ML 서비스에 강력한 API 관리를 구현하는 것이 중요합니다. 정의된 인터페이스에 API 관리를 구현하려면 다음 제품을 사용하세요.

  • API 게이트웨이: 외부에 노출되고 관리되는 API의 경우 API 게이트웨이는 중앙 집중식의 안전한 진입점을 제공합니다. 예측, 학습, 데이터 API와 같은 서버리스 백엔드 서비스에 대한 액세스를 간소화합니다. API 게이트웨이는 액세스 포인트를 통합하고, API 계약을 적용하고, API 키 및 OAuth 2.0과 같은 보안 기능을 관리하는 데 도움이 됩니다. 백엔드의 과부하를 방지하고 안정성을 보장하려면 API Gateway에서 비율 제한 및 사용량 할당량을 구현하세요.
  • Cloud Endpoints: GKE 및 Cloud Run에서 API 개발 및 배포를 간소화하려면 API 키를 생성하는 개발자 친화적인 솔루션을 제공하는 Cloud Endpoints를 사용하세요. 또한 API 호출을 위한 통합 모니터링 및 추적을 제공하고 OpenAPI 사양 생성을 자동화하여 문서화 및 클라이언트 통합을 간소화합니다. Cloud Endpoints를 사용하여 학습을 트리거하고 기능 저장소를 관리하는 등 내부 또는 제어된 AI 및 ML API에 대한 액세스를 관리할 수 있습니다.
  • Apigee: 엔터프라이즈 규모의 AI 및 ML, 특히 정교한 생성형 AI API의 경우 Apigee는 고급의 포괄적인 API 관리를 제공합니다. Apigee를 사용하여 위협 보호 및 OAuth 2.0과 같은 고급 보안, 캐싱, 할당량, 중재와 같은 트래픽 관리, 분석을 수행합니다. Apigee는 생성형 AI API 사용을 이해하는 데 중요한 API 사용 패턴, 성능, 참여도에 대한 심층적인 통계를 얻는 데 도움이 됩니다.

단계적 성능 저하 계획

프로덕션 AI 및 ML 시스템에서는 다른 시스템과 마찬가지로 구성요소 장애가 불가피합니다. 단계적 성능 저하를 통해 필수 기능이 계속 작동할 수 있으며, 성능이 저하될 수도 있습니다. 이 접근 방식을 사용하면 완전한 서비스 중단을 방지하고 전반적인 가용성을 개선할 수 있습니다. 그레이스풀 디그레이션은 지연 시간에 민감한 추론, 분산 학습, 생성형 AI에 매우 중요합니다.

다음 섹션에서는 점진적 성능 저하를 계획하고 구현하는 데 사용하는 기법을 설명합니다.

결함 격리

  • 분산 아키텍처에서 결함이 있는 구성요소를 격리하려면 Java의 Resilience4j 및 Python의 CircuitBreaker와 같은 복원력 라이브러리를 사용하여 서킷 브레이커 패턴을 구현하세요.
  • 연속 장애를 방지하려면 오류율, 지연 시간과 같은 AI 및 ML 워크로드 측정항목을 기반으로 임계값을 구성하고 더 간단한 모델, 캐시된 데이터와 같은 대체를 정의하세요.

구성요소 중복

중요한 구성요소의 경우 중복 및 자동 장애 조치를 구현합니다. 예를 들어 GKE 다중 영역 클러스터 또는 리전별 클러스터를 사용하고 여러 리전에 Cloud Run 서비스를 중복 배포합니다. 비정상 인스턴스가 감지될 때 정상 인스턴스로 트래픽을 라우팅하려면 Cloud Load Balancing을 사용하세요.

Cloud Storage 멀티 리전 버킷을 사용하여 데이터 중복성을 보장합니다. 분산 학습의 경우 장애 발생 후 재개할 수 있도록 비동기 체크포인트를 구현합니다. 복원력 있고 탄력적인 학습에는 Pathways를 사용합니다.

사전 예방적 모니터링

정상적인 성능 저하는 오류 발생 시 시스템 가용성을 보장하는 데 도움이 되지만, 지속적인 상태 점검과 포괄적인 모니터링을 위한 사전 조치도 구현해야 합니다. 지연 시간, 처리량, GPU 사용률과 같은 AI 및 ML 관련 측정항목을 수집합니다. 또한 Cloud Monitoring 및 Vertex AI Model Monitoring을 사용하여 모델 및 데이터 드리프트와 같은 모델 성능 저하 측정항목을 수집합니다.

상태 점검을 통해 결함이 있는 노드를 교체하거나, 용량을 추가로 배포하거나, 업데이트된 데이터를 사용하는 파이프라인의 지속적인 재학습 또는 미세 조정이 자동으로 트리거될 수 있습니다. 이 사전 예방적 접근 방식은 정확도 기반 성능 저하와 시스템 수준의 점진적 성능 저하를 모두 방지하고 전반적인 안정성을 향상하는 데 도움이 됩니다.

SRE 관행

시스템 상태를 모니터링하려면 SRE 관행을 채택하여 서비스 수준 목표 (SLO)를 구현하는 것이 좋습니다. 오류 예산 손실 및 소진율에 대한 알림은 시스템의 안정성 문제를 나타내는 조기 지표가 될 수 있습니다. SRE 관행에 대한 자세한 내용은 Google SRE 도서를 참고하세요.

자동화된 엔드 투 엔드 MLOps 플랫폼 빌드

강력하고 확장 가능하며 안정적인 AI 및 ML 시스템을 Google Cloud 구축하려면 모델 개발 수명 주기를 위한 자동화된 엔드 투 엔드 MLOps 플랫폼이 필요합니다. 개발 수명 주기에는 초기 데이터 처리, 지속적인 모델 학습, 프로덕션 배포 및 모니터링이 포함됩니다. Google Cloud에서 이러한 단계를 자동화하면 반복 가능한 프로세스를 설정하고, 수동 작업을 줄이며, 오류를 최소화하고, 혁신 속도를 높일 수 있습니다.

애플리케이션의 프로덕션 등급 신뢰성을 설정하려면 자동화된 MLOps 플랫폼이 필수입니다. 자동화는 모델 품질을 보장하고, 재현성을 보장하며, AI 및 ML 아티팩트의 지속적인 통합 및 배포를 지원합니다.

자동화된 엔드 투 엔드 MLOps 플랫폼을 빌드하려면 다음 권장사항을 고려하세요.

모델 개발 수명 주기 자동화

자동화된 MLOps 플랫폼의 핵심 요소는 데이터 준비 및 검증부터 모델 학습, 평가, 배포, 모니터링에 이르기까지 전체 AI 및 ML 워크플로를 연결된 자동화된 단계의 시리즈로 조정하는 것입니다.

  • Vertex AI Pipelines를 중앙 조정자로 사용합니다.
    • 데이터 처리, 학습, 평가, 배포를 위한 모듈식 구성요소로 엔드 투 엔드 워크플로를 정의합니다.
    • 새 데이터 또는 코드 변경과 같은 일정이나 트리거를 사용하여 파이프라인 실행을 자동화합니다.
    • 각 파이프라인 실행에 대해 자동화된 매개변수화 및 버전 관리를 구현하고 버전 기록을 만듭니다.
    • 기본 제공 로깅 및 추적을 사용하여 파이프라인 진행 상황과 리소스 사용량을 모니터링하고 Cloud Monitoring 알림과 통합합니다.
  • Kubeflow Pipelines (KFP) SDK 또는 TensorFlow Extended SDK를 사용하여 프로그래매틱 방식으로 ML 파이프라인을 정의합니다. 자세한 내용은 Vertex AI Pipelines 인터페이스를 참고하세요.
  • Dataflow, Vertex AI 커스텀 학습, Vertex AI Model Registry, Vertex AI 엔드포인트와 같은 Google Cloud 서비스를 사용하여 작업을 오케스트레이션합니다.
  • 생성형 AI 워크플로의 경우 프롬프트 관리, 일괄 추론, 인간 참여형 (HITL) 평가, ADK 구성요소 조정 단계를 조정합니다.

코드형 인프라 관리

코드형 인프라 (IaC)는 AI 및 ML 시스템 인프라를 관리하고 재현 가능하고 확장 가능하며 유지관리 가능한 배포를 지원하는 데 매우 중요합니다. AI 및 ML 시스템의 인프라 요구사항은 동적이고 복잡합니다. 이러한 시스템에는 GPU, TPU와 같은 전문 하드웨어가 필요한 경우가 많습니다. IaC는 일관성을 보장하고, 롤백을 지원하고, 배포를 반복 가능하게 만들어 수동 인프라 관리의 위험을 완화하는 데 도움이 됩니다.

인프라 리소스를 코드로 효과적으로 관리하려면 다음 기법을 사용하세요.

리소스 프로비저닝 자동화

Google Cloud에서 IaC를 효과적으로 관리하려면 Terraform을 사용하여 AI 및 ML 인프라 리소스를 정의하고 프로비저닝하세요. 인프라에는 다음과 같은 리소스가 포함될 수 있습니다.

  • 노드 풀로 구성된 GKE 클러스터 노드 풀은 워크로드 요구사항에 따라 최적화할 수 있습니다. 예를 들어 학습에는 A100, H100, H200 또는 B200 GPU를 사용하고 추론에는 L4 GPU를 사용할 수 있습니다.
  • 모델 서빙을 위해 구성되고 머신 유형과 확장 정책이 정의된 Vertex AI 엔드포인트
  • 데이터 및 아티팩트용 Cloud Storage 버킷

구성 템플릿 사용

Terraform 구성을 모듈식 템플릿으로 정리합니다. AI 및 ML 리소스의 프로비저닝을 가속화하려면 Cluster Toolkit을 사용하면 됩니다. 이 툴킷은 Slurm 또는 GKE에서 바로 사용할 수 있는 HPC, AI, ML 클러스터를 배포하는 데 사용할 수 있는 Google 선별 Terraform 템플릿인 예시 청사진을 제공합니다. Terraform 코드를 맞춤설정하고 버전 제어 시스템에서 관리할 수 있습니다. 리소스 프로비저닝 및 업데이트 워크플로를 자동화하려면 Cloud Build를 사용하여 코드를 CI/CD 파이프라인에 통합하면 됩니다.

구성 변경 자동화

인프라를 프로비저닝한 후에는 지속적인 구성 변경사항을 선언적으로 관리합니다.

  • Kubernetes 중심 환경에서는 구성 커넥터를 사용하여 Google Cloud리소스를 Kubernetes 객체로 관리합니다.
  • YAML 매니페스트를 사용하여 데이터 세트, 모델, 엔드포인트, Cloud SQL 인스턴스, Pub/Sub 주제, Cloud Storage 버킷과 같은 Vertex AI 리소스를 정의하고 관리합니다.
  • 애플리케이션 및 인프라 구성을 통합하기 위해 매니페스트를 GKE 클러스터에 배포합니다.
  • CI/CD 파이프라인을 사용하여 구성 업데이트를 자동화하고 템플릿을 사용하여 환경 차이를 처리합니다.
  • IaC를 사용하여 ID 및 액세스 관리 (IAM) 정책 및 서비스 계정의 구성을 구현합니다.

CI/CD와 통합

  • Cloud BuildInfrastructure Manager와 같은 도구를 사용하여 IaC를 CI/CD 파이프라인에 통합하여 인프라 리소스의 수명 주기를 자동화합니다. Google Cloud
  • 코드 커밋 시 자동 업데이트 트리거를 정의합니다.
  • 파이프라인 내에서 자동 테스트 및 유효성 검사를 구현합니다. 예를 들어 Terraform validateplan 명령어를 자동으로 실행하는 스크립트를 만들 수 있습니다.
  • 구성을 아티팩트로 저장하고 버전 관리를 사용 설정합니다.
  • 버전 관리에서 고유한 구성으로 개발, 스테이징, 프로덕션과 같은 별도의 환경을 정의하고 환경 승격을 자동화합니다.

모델 동작 검증

시간이 지남에 따라 모델의 정확성과 관련성을 유지하려면 MLOps 플랫폼 내에서 학습 및 평가 프로세스를 자동화하세요. 이 자동화는 엄격한 검증과 결합되어 모델이 프로덕션에 배포되기 전에 관련 데이터로 예상대로 작동하도록 지원합니다.

  • 새 데이터와 데이터 드리프트와 같은 모니터링 신호에 의해 트리거되거나 일정에 따라 실행되는 지속적 학습 파이프라인을 설정합니다.
    • 초매개변수 조정 트라이얼, 대형 모델의 분산 학습 구성과 같은 자동화된 학습 작업을 관리하려면 Vertex AI 커스텀 학습을 사용하세요.
    • 파운데이션 모델을 세부 조정하는 경우 세부 조정 프로세스를 자동화하고 작업을 파이프라인에 통합하세요.
  • 자동화된 모델 버전 관리를 구현하고 학습이 성공적으로 실행될 때마다 학습된 모델 아티팩트를 안전하게 저장합니다. 아티팩트를 Cloud Storage에 저장하거나 모델 레지스트리에 등록할 수 있습니다.
  • 평가 지표를 정의하고 최소 정확도, 최대 오류율, 최소 F1 점수와 같은 명확한 기준을 설정합니다.
    • 모델이 평가를 자동으로 통과하고 배포 대상으로 고려될 수 있는 기준을 충족하는지 확인합니다.
    • Vertex AI의 모델 평가와 같은 서비스를 사용하여 평가를 자동화합니다.
    • 평가에 생성된 출력의 품질, 사실에 기반한 정확성, 안전 속성, 지정된 스타일 또는 형식 준수와 관련된 측정항목이 포함되어 있는지 확인합니다.
  • 각 학습 및 평가 실행의 파라미터, 코드 버전, 데이터 세트 버전, 결과를 자동으로 로깅하고 추적하려면 Vertex AI Experiments를 사용하세요. 이 접근 방식은 비교, 디버깅, 재현에 유용한 기록을 제공합니다.
  • 초매개변수 미세 조정을 최적화하고 정의된 목표에 따라 최적의 모델 구성을 자동으로 검색하려면 Vertex AI Vizier를 사용하세요.
  • 개발 중에 학습 측정항목을 시각화하고 디버그하려면 Vertex AI TensorBoard를 사용하세요.

AI 및 ML 파이프라인의 입력 및 출력 검증

AI 및 ML 시스템의 신뢰성과 무결성을 보장하려면 데이터가 시스템에 입력되고 파이프라인을 통해 이동할 때 데이터를 검증해야 합니다. 구성요소 경계에서 입력과 출력을 확인해야 합니다. 모든 입력과 출력(원시 데이터, 처리된 데이터, 구성, 인수, 파일)을 강력하게 검증하면 예기치 않은 동작을 방지하고 MLOps 수명 주기 전반에 걸쳐 모델 품질을 유지하는 데 도움이 됩니다. 이 선제적 접근 방식을 MLOps 플랫폼에 통합하면 오류가 시스템 전체에 전파되기 전에 감지할 수 있어 시간과 리소스를 절약할 수 있습니다.

AI 및 ML 파이프라인의 입력과 출력을 효과적으로 검증하려면 다음 기법을 사용하세요.

데이터 검증 자동화

  • TensorFlow 데이터 검증 (TFDV)을 사용하여 데이터 수집 및 전처리 파이프라인에서 자동화된 데이터 검증을 구현합니다.
    • 대규모 SQL 기반 데이터 품질 검사의 경우 BigQuery와 같은 확장 가능한 처리 서비스를 활용하세요.
    • 스트리밍 또는 일괄 데이터에 대한 복잡한 프로그래매틱 검증에는 Dataflow를 사용하세요.
  • TFDV 기능을 사용하여 시간 경과에 따른 데이터 분포를 모니터링합니다.
    • Cloud Monitoring과 통합된 도구를 사용하여 추세를 시각화하여 데이터 드리프트를 감지합니다. 데이터 패턴이 크게 변경되면 모델 재학습 파이프라인을 자동으로 트리거할 수 있습니다.
  • 분석 및 기록 추적을 위해 BigQuery에 검증 결과와 측정항목을 저장하고 Cloud Storage에 검증 아티팩트를 보관합니다.

파이프라인 구성 및 입력 데이터 유효성 검사

잘못된 설정으로 인한 파이프라인 실패 또는 예기치 않은 동작을 방지하려면 모든 파이프라인 구성 및 명령줄 인수에 대해 엄격한 유효성 검사를 구현하세요.

  • Python용 jsonschema와 같은 스키마 유효성 검사 라이브러리를 사용하여 YAML 또는 JSON과 같은 구성 파일의 명확한 스키마를 정의합니다. 파이프라인 실행이 시작되기 전과 구성요소가 실행되기 전에 이러한 스키마에 대해 구성 객체를 검증합니다.
  • argparse와 같은 인수 파싱 라이브러리를 사용하여 모든 명령줄 인수와 파이프라인 매개변수에 대한 입력 유효성 검사를 구현합니다. 유효성 검사에서는 올바른 데이터 유형, 유효한 값, 필수 인수를 확인해야 합니다.
  • Vertex AI Pipelines 내에서 기본 제공 구성요소 입력 유효성 검사 기능을 사용하여 구성요소 매개변수의 예상 유형과 속성을 정의합니다.
  • 파이프라인 실행의 재현성을 보장하고 감사 추적을 유지하려면 검증되고 버전이 지정된 구성 파일을 Cloud Storage 또는 Artifact Registry에 저장하세요.

입력 및 출력 파일 유효성 검사

데이터 세트, 모델 아티팩트, 평가 보고서와 같은 입력 및 출력 파일의 무결성과 형식 정확성을 검사합니다.

  • 라이브러리를 사용하여 CSV, Parquet, 이미지 유형과 같은 파일 형식을 검증합니다.
  • 대용량 파일 또는 중요한 아티팩트의 경우 Cloud Storage 데이터 검증 및 변경 감지를 사용하여 파일 크기와 체크섬을 검증하여 손상 또는 불완전한 전송을 감지합니다.
  • Cloud Run 함수(예: 파일 업로드 이벤트 기반)를 사용하거나 Dataflow 파이프라인 내에서 파일 유효성 검사를 실행합니다.
  • 더 쉽게 검색하고 분석할 수 있도록 BigQuery에 검증 결과를 저장합니다.

배포 자동화 및 지속적 모니터링 구현

프로덕션에서 모델을 자동 배포하고 지속적으로 모니터링하면 안정성을 보장하고, 신속하게 업데이트하고, 문제를 즉시 감지할 수 있습니다. 여기에는 다음 섹션에 설명된 대로 모델 버전 관리, 제어된 배포, CI/CD를 사용한 자동 배포, 포괄적인 모니터링이 포함됩니다.

모델 버전 관리

버전 관리 도구를 사용하여 모델 반복 및 연결된 아티팩트를 관리합니다.

  • 모델 버전과 메타데이터를 추적하고 기본 모델 아티팩트에 연결하려면 Model Registry를 사용하세요.
  • 명확한 버전 관리 스키마 (예: 시맨틱 버전 관리)를 구현합니다. 각 모델 버전에는 학습 매개변수, 검증 파이프라인의 평가 측정항목, 데이터 세트 버전과 같은 포괄적인 메타데이터를 첨부합니다.
  • 모델 파일, 사전 학습된 가중치, 서빙 컨테이너 이미지와 같은 모델 아티팩트를 Artifact Registry에 저장하고 버전 관리 및 태그 지정 기능을 사용합니다.
  • 보안 및 거버넌스 요구사항을 충족하려면 Model Registry 및 Artifact Registry에 대한 엄격한 액세스 제어 정책을 정의하세요.
  • 프로그래매틱 방식으로 버전을 등록 및 관리하고 자동화된 CI/CD 파이프라인에 버전을 통합하려면 Vertex AI SDK 또는 API를 사용하세요.

제어된 배포 실행

서빙 플랫폼의 트래픽 관리 기능을 사용하여 엔드포인트에 모델 버전을 배포하는 것을 제어합니다.

  • Vertex AI 엔드포인트의 트래픽 분할 기능을 사용하여 롤링 배포를 구현합니다.
  • 모델을 GKE에 배포하는 경우 카나리아 배포와 같은 고급 트래픽 관리 기법을 사용하세요.
    1. 프로덕션 트래픽의 작은 하위 집합을 새 모델 버전으로 라우팅합니다.
    2. 측정항목을 통해 성능과 오류율을 지속적으로 모니터링합니다.
    3. 모델이 신뢰할 수 있는지 확인합니다.
    4. 모든 트래픽에 버전을 출시합니다.
  • AI 에이전트의 A/B 테스트를 실행합니다.
    1. 동일한 엔드포인트에 서로 다른 두 모델-에이전트 버전을 배포하거나 완전히 다른 모델을 배포합니다.
    2. 배포 간에 트래픽을 분할합니다.
    3. 비즈니스 목표에 대한 결과를 분석합니다.
  • 모니터링 알림이 트리거되거나 성능 기준을 충족하지 못하는 경우 엔드포인트 트래픽을 이전의 안정적인 모델 버전으로 신속하게 되돌릴 수 있는 자동 롤백 메커니즘을 구현합니다.
  • Vertex AI SDK 또는 API를 사용하여 프로그래매틱 방식으로 트래픽 분할 및 배포 설정을 구성합니다.
  • Cloud Monitoring을 사용하여 버전 간 성능과 트래픽을 추적합니다.
  • CI/CD 파이프라인으로 배포 자동화 Cloud Build를 사용하여 컨테이너를 빌드하고, 아티팩트 버전을 지정하고, Vertex AI 엔드포인트에 배포를 트리거할 수 있습니다.
  • CI/CD 파이프라인이 버전을 관리하고 Artifact Registry에서 가져오는지 확인합니다.
  • 트래픽을 이동하기 전에 예측 정확도, 지연 시간, 처리량, API 기능을 위한 자동 엔드포인트 테스트를 실행합니다.
  • 모든 구성을 버전 제어에 저장합니다.

지속적으로 모니터링

  • 모델 모니터링을 사용하여 성능 저하, 데이터 드리프트 (학습에 비해 입력 분포의 변화), 예측 드리프트 (모델 출력의 변화)를 자동으로 감지합니다.
    • 임곗값과 알림을 사용하여 드리프트 감지 작업을 구성합니다.
    • 실시간 성능(예측 지연 시간, 처리량, 오류율)을 모니터링합니다.
  • 비즈니스 KPI에 대해 Cloud Monitoring에서 맞춤 측정항목을 정의합니다.
  • 알림 및 대시보드를 위해 모델 모니터링 결과와 맞춤 측정항목을 Cloud Monitoring과 통합합니다.
  • 이메일, Slack, PagerDuty와 같은 알림 채널을 구성하고 자동 수정 작업을 구성합니다.
  • 예측 로그를 디버깅하려면 Cloud Logging을 사용하세요.
  • 모니터링을 사고 관리와 통합합니다.

생성형 AI 엔드포인트의 경우 유해성, 일관성과 같은 출력 특성을 모니터링합니다.

  • 드리프트가 있는지 특성 제공을 모니터링합니다.
  • 세부적인 예측 검증 구현: 맞춤 로직을 사용하여 예상 범위 및 형식에 대해 출력을 검증합니다.
  • 예측 분포의 변화를 모니터링합니다.
  • 출력 스키마를 검증합니다.
  • 예상치 못한 출력 및 변화에 대한 알림을 구성합니다.
  • Pub/Sub를 사용하여 실시간 검증 이벤트를 추적하고 이에 응답합니다.

포괄적인 모니터링의 출력이 지속적인 학습에 다시 제공되는지 확인합니다.

데이터 및 모델 거버넌스를 통해 신뢰와 관리 유지

AI 및 ML 안정성은 기술적 업타임을 넘어섭니다. 여기에는 신뢰와 강력한 데이터 및 모델 거버넌스가 포함됩니다. AI 출력은 부정확하거나, 편향되거나, 오래되었을 수 있습니다. 이러한 문제는 신뢰를 저하시키고 피해를 야기할 수 있습니다. 포괄적인 추적 가능성, 강력한 액세스 제어, 자동화된 검증, 투명한 관행은 AI 출력이 신뢰할 수 있고 윤리 표준을 준수하도록 지원합니다.

데이터 및 모델 거버넌스를 통해 신뢰와 제어력을 유지하려면 다음 권장사항을 고려하세요.

추적성을 위해 데이터 및 모델 카탈로그 설정

AI 및 ML 애셋의 포괄적인 추적, 감사, 계보 이해를 용이하게 하려면 수명 주기 전반에 걸쳐 데이터 및 모델 버전의 강력한 중앙화된 기록을 유지하세요. 신뢰할 수 있는 데이터 및 모델 카탈로그는 원시 데이터 소스 및 처리된 데이터 세트부터 학습된 모델 버전 및 배포된 엔드포인트에 이르기까지 AI 및 ML 파이프라인에서 사용되고 생성되는 모든 아티팩트의 단일 정보 소스 역할을 합니다.

다음 제품, 도구, 기법을 사용하여 데이터 애셋의 카탈로그를 만들고 유지관리하세요.

  • Dataplex Universal Catalog를 사용하여 데이터 애셋의 전사적 카탈로그를 빌드합니다. 데이터 애셋을 자동으로 검색하고 인벤토리를 빌드하려면 Dataplex Universal Catalog를 BigQuery, Cloud Storage, Pub/Sub과 같은 스토리지 시스템과 통합하세요.
  • Cloud Storage 멀티 리전 또는 이중 리전 버킷에 데이터를 저장하여 데이터의 고가용성과 내구성을 보장하세요. 이러한 버킷에 업로드하는 데이터는 최소 두 개 이상의 지리적 위치에 중복 저장됩니다. 이 중복성은 리전 서비스 중단에 대한 내장된 복원력을 제공하며 데이터 무결성을 보장하는 데 도움이 됩니다.
  • 관련 비즈니스 메타데이터, 소유권 정보, 민감도 수준, 계보 세부정보로 데이터 세트에 태그를 지정하고 주석을 추가합니다. 예를 들어 처리된 데이터 세트를 원시 소스 및 데이터 세트를 만든 파이프라인에 연결합니다.
  • Model Registry를 사용하여 모델 버전의 중앙 저장소를 만듭니다. 학습된 각 모델 버전을 등록하고 연결된 메타데이터에 연결합니다. 메타데이터에는 다음이 포함될 수 있습니다.
    • 학습 매개변수입니다.
    • 검증 파이프라인의 평가 측정항목입니다.
    • 학습에 사용된 데이터 세트 버전으로, 계보가 관련 Dataplex 범용 카탈로그 항목으로 추적됩니다.
    • 데이터 세트를 생성한 코드 버전입니다.
    • 사용된 프레임워크 또는 기반 모델에 관한 세부정보입니다.
  • 모델을 Model Registry로 가져오기 전에 모델 파일, 사전 학습된 가중치와 같은 모델 아티팩트를 Cloud Storage와 같은 서비스에 저장합니다. Artifact Registry와 같은 보안 저장소에 서빙 또는 맞춤 학습 작업을 위한 맞춤 컨테이너 이미지를 저장합니다.
  • 데이터 및 모델 애셋이 생성되거나 수정될 때 해당 카탈로그에 자동으로 등록되고 업데이트되도록 하려면 MLOps 파이프라인 내에서 자동화된 프로세스를 구현하세요. 이 포괄적인 카탈로그를 통해 원시 데이터에서 예측까지 엔드 투 엔드 추적 가능성을 제공하므로 특정 모델 버전이나 예측으로 이어진 입력과 프로세스를 감사할 수 있습니다. 감사 기능은 예기치 않은 동작을 디버깅하고, 데이터 사용 정책을 준수하며, 시간이 지남에 따라 데이터 또는 모델 변경사항이 미치는 영향을 파악하는 데 매우 중요합니다.
  • 생성형 AI 및 파운데이션 모델의 경우 카탈로그에서 사용된 특정 파운데이션 모델, 미세 조정 매개변수, 생성된 출력의 품질 및 안전성과 관련된 평가 결과에 관한 세부정보도 추적해야 합니다.

강력한 액세스 제어 및 감사 추적 구현

AI 및 ML 시스템에서 신뢰와 제어력을 유지하려면 민감한 데이터와 모델을 무단 액세스로부터 보호하고 모든 변경사항에 대한 책임을 져야 합니다.

  • AI 및 ML 시스템의 모든 구성요소에서 엄격한 액세스 제어를 구현하고 세부 감사 추적을 유지하세요( Google Cloud).
  • AI 및 ML 리소스와 상호작용하는 사용자, 그룹, 서비스 계정에 대해 IAM에서 세부적인 권한을 정의합니다.
  • 최소 권한의 원칙을 엄격하게 따릅니다.
  • 특정 작업에 필요한 최소한의 권한만 부여합니다. 예를 들어 학습 서비스 계정에는 학습 데이터에 대한 읽기 액세스 권한과 모델 아티팩트에 대한 쓰기 액세스 권한이 필요하지만 서비스에는 프로덕션 제공 엔드포인트에 대한 쓰기 액세스 권한이 필요하지 않을 수 있습니다.

다음과 같은 AI 및 ML 시스템의 모든 관련 애셋과 리소스에 IAM 정책을 일관되게 적용합니다.

  • 민감한 정보 또는 모델 아티팩트가 포함된 Cloud Storage 버킷
  • BigQuery 데이터 세트
  • 모델 저장소, 엔드포인트, 파이프라인, Feature Store 리소스와 같은 Vertex AI 리소스
  • GKE 클러스터, Cloud Run 서비스와 같은 컴퓨팅 리소스

감사 및 로그를 사용하여 액세스 활동을 캡처, 모니터링, 분석합니다.

  • AI 및 ML 시스템에서 사용하는 모든 Google Cloud 서비스에 Cloud 감사 로그를 사용 설정합니다.
  • API 호출, 데이터 액세스 이벤트, 리소스에 대한 구성 변경에 관한 세부정보를 캡처하도록 감사 로그를 구성합니다. 로그에서 의심스러운 활동, 무단 액세스 시도 또는 중요한 데이터나 모델 애셋의 예기치 않은 수정이 있는지 모니터링합니다.
  • 실시간 분석, 알림, 시각화를 위해 감사 로그를 Cloud Logging으로 스트리밍하세요.
  • 비용 효율적인 장기 스토리지와 회고적 보안 분석 또는 규정 준수 감사를 위해 로그를 BigQuery로 내보냅니다.
  • 중앙 집중식 보안 모니터링을 위해 감사 로그를 보안 정보 및 이벤트 관리 (SIEM) 시스템과 통합합니다. 액세스 정책과 감사 추적을 정기적으로 검토하여 거버넌스 요구사항을 준수하고 잠재적인 정책 위반을 감지합니다.
  • 학습 또는 추론을 위해 개인 식별 정보 (PII)와 같은 민감한 데이터를 처리하는 애플리케이션의 경우 파이프라인 내 또는 데이터 스토리지에서 민감한 정보 보호 검사를 사용하세요.
  • 생성형 AI 및 에이전트 솔루션의 경우 감사 추적을 사용하여 특정 모델 또는 도구에 액세스한 사용자, 미세 조정 또는 프롬프트에 사용된 데이터, 프로덕션 엔드포인트로 전송된 쿼리를 추적하세요. 감사 추적은 책임성을 보장하는 데 도움이 되며 데이터 오용 또는 정책 위반을 조사하는 데 중요한 데이터를 제공합니다.

편향, 투명성, 설명 가능성 해결

신뢰할 수 있는 AI 및 ML 시스템을 구축하려면 데이터와 모델에 내재된 잠재적 편향을 해결하고, 시스템 동작의 투명성을 위해 노력하고, 모델 출력에 대한 설명 가능성을 제공해야 합니다. 특히 민감한 도메인에서 신뢰할 수 있는 시스템을 빌드하거나 생성형 AI 애플리케이션에 일반적으로 사용되는 복잡한 모델을 사용하는 경우 신뢰할 수 있는 시스템을 빌드하는 것이 중요합니다.

  • MLOps 수명 주기 전반에서 편향을 식별하고 완화하기 위한 사전 예방적 관행을 구현합니다.
  • 다양한 인구통계 그룹 또는 민감한 속성 전반의 특성 분포에서 편향을 감지하는 도구를 사용하여 학습 데이터의 편향을 분석합니다.
  • 전체 모델 성능과 사전 정의된 데이터 슬라이스 전반의 성능을 평가합니다. 이러한 평가를 통해 특정 하위 그룹에 영향을 미치는 이질적인 성능이나 편향을 식별할 수 있습니다.

모델 투명성과 설명 가능성을 위해 사용자와 개발자가 모델이 특정 예측을 하거나 특정 출력을 생성한 이유를 이해하는 데 도움이 되는 도구를 사용하세요.

  • Vertex AI 엔드포인트에 배포된 표 형식 모델의 경우 Vertex Explainable AI를 사용하여 특성 기여도를 생성합니다. 특성 기여 분석은 예측에 가장 많이 기여한 입력 특성을 나타냅니다.
  • TensorBoard와 통합되는 What-If 도구와 같은 모델에 구애받지 않는 도구를 사용하여 데이터 세트의 모델 동작과 잠재적 편향을 대화형으로 탐색합니다.
  • 설명 가능성을 모니터링 대시보드에 통합합니다. 모델의 추론을 이해하는 것이 신뢰 또는 의사결정에 중요한 상황에서는 애플리케이션 인터페이스를 통해 최종 사용자에게 직접 설명 가능성 데이터를 제공하세요.
  • 생성형 AI 모델에 사용되는 LLM과 같은 복잡한 모델의 경우 추적 로그를 사용하는 등 에이전트가 따른 프로세스를 설명합니다. 이러한 모델의 경우 설명 가능성이 비교적 어렵지만 여전히 중요합니다.
  • RAG 애플리케이션에서 검색된 정보에 대한 인용을 제공합니다. 프롬프트 엔지니어링과 같은 기법을 사용하여 모델이 설명을 제공하거나 추론 단계를 표시하도록 안내할 수도 있습니다.
  • 프로덕션에서 지속적인 모니터링을 구현하여 모델 동작이나 출력의 변화를 감지하여 편향이나 불공정성이 발생할 수 있는지 확인합니다. 모델 레지스트리의 모델 메타데이터의 일부로 모델 제한사항, 의도된 사용 사례, 알려진 잠재적 편향을 문서화합니다.

전체적인 AI 및 ML 모니터링 가능성 및 안정성 관행 구현

전체적인 모니터링 가능성은 프로덕션에서 복잡한 AI 및 ML 시스템을 관리하는 데 필수적입니다. 또한 복잡성, 리소스 집약도, 예측 불가능한 출력 가능성으로 인해 복잡한 AI 및 ML 시스템, 특히 생성형 AI의 신뢰성을 측정하는 데도 필수적입니다. 전체적인 관측 가능성에는 인프라, 애플리케이션 코드, 데이터, 모델 동작을 관찰하여 사전 예방적 문제 감지, 진단, 대응을 위한 통계를 얻는 것이 포함됩니다. 이러한 관측 가능성은 궁극적으로 고성능의 안정적인 시스템으로 이어집니다. 전체적인 관측 가능성을 달성하려면 다음을 수행해야 합니다.

  • SRE 원칙을 채택합니다.
  • 명확한 안정성 목표를 정의합니다.
  • 시스템 레이어 전반에서 측정항목을 추적합니다.
  • 관측 가능성에서 얻은 통계를 사용하여 지속적으로 개선하고 선제적으로 관리합니다.

Google Cloud에서 AI 및 ML 워크로드에 대한 전체적인 모니터링 가능성 및 안정성 관행을 구현하려면 다음 권장사항을 고려하세요.

안정성 목표 및 비즈니스 지표 설정

AI 및 ML 시스템이 직접 영향을 미치는 핵심성과지표 (KPI)를 파악합니다. KPI에는 AI 추천의 영향을 받는 수익, AI 시스템에서 예측하거나 완화한 고객 이탈, 생성형 AI 기능으로 유도된 사용자 참여 및 전환율이 포함될 수 있습니다.

각 KPI별로 KPI에 영향을 미치는 해당 기술 신뢰성 측정항목을 정의합니다. 예를 들어 KPI가 '대화형 AI 어시스턴트의 고객 만족도'인 경우 해당 안정성 측정항목에는 다음이 포함될 수 있습니다.

  • 사용자 요청의 성공률입니다.
  • 대답의 지연 시간: LLM의 첫 번째 토큰까지의 시간 (TTFT) 및 토큰 스트리밍
  • 관련성이 없거나 유해한 대답의 비율입니다.
  • 상담사의 성공적인 작업 완료율입니다.

AI 및 ML 학습의 경우 안정성 측정항목에는 모델 FLOPS 사용률 (MFU), 초당 반복, 초당 토큰, 기기당 토큰이 포함될 수 있습니다.

AI 및 ML 안정성을 효과적으로 측정하고 개선하려면 먼저 전반적인 비즈니스 목표에 부합하는 명확한 안정성 목표를 설정해야 합니다. 사용자 관점에서 AI 및 ML 서비스의 허용 가능한 안정성 및 성능 수준을 정량화하는 SLO를 정의하여 SRE 접근 방식을 채택합니다. 구체적인 SLO 타겟을 사용하여 이러한 기술적 안정성 측정항목을 정량화합니다.

다음은 SLO 타겟의 예입니다.

  • API 호출의 99.9% 가 성공 응답을 반환해야 합니다.
  • 95번째 백분위수 추론 지연 시간이 300ms 미만이어야 합니다.
  • TTFT는 요청의 99% 에 대해 500ms 미만이어야 합니다.
  • 유해한 출력의 비율이 0.1% 미만이어야 합니다.

SLO를 비즈니스 요구사항과 직접적으로 일치시키면 안정성 노력이 사용자 및 비즈니스에 영향을 미치는 가장 중요한 시스템 동작에 집중됩니다. 이 접근 방식을 사용하면 안정성을 측정 가능하고 실행 가능한 엔지니어링 속성으로 변환할 수 있습니다.

인프라 및 애플리케이션 성능 모니터링

AI 및 ML 시스템에서 사용하는 모든 리소스의 인프라 측정항목을 추적합니다. 측정항목에는 프로세서 사용량 (CPU, GPU, TPU), 메모리 사용량, 네트워크 처리량 및 지연 시간, 디스크 I/O가 포함됩니다. Vertex AI 학습 및 제공과 같은 관리형 환경과 GKE 노드 및 Cloud Run 인스턴스와 같은 자체 관리형 리소스의 측정항목을 추적합니다.

AI 및 ML 애플리케이션의 4가지 황금 신호를 모니터링합니다.

  • 지연 시간: 요청에 응답하는 데 걸리는 시간입니다.
  • 트래픽: 요청 또는 워크로드의 양입니다.
  • 오류율: 실패한 요청 또는 작업의 비율입니다.
  • 포화: CPU, 메모리, GPU 또는 TPU 가속기와 같은 중요 리소스의 사용률로, 시스템이 용량 한계에 얼마나 근접했는지를 나타냅니다.

다음 기법을 사용하여 모니터링을 실행합니다.

  • Cloud Monitoring을 사용하여 인프라 및 애플리케이션 측정항목을 수집, 저장, 시각화합니다. Google Cloud 서비스용 사전 빌드된 대시보드를 사용하고 워크로드의 특정 성능 지표 및 인프라 상태를 기반으로 맞춤설정된 대시보드를 만들 수 있습니다.
  • Cloud Logging을 사용하여 AI 및 ML 애플리케이션과 기본 인프라에서 자세한 로그를 수집합니다. 이러한 로그는 문제 해결 및 성능 분석에 필수적입니다. 이러한 로그는 이벤트와 오류에 관한 컨텍스트를 제공합니다.
  • Cloud Trace를 사용하여 지연 시간 문제를 파악하고 분산된 AI 및 ML 마이크로서비스 전반의 요청 흐름을 파악합니다. 이 기능은 복잡한 Vertex AI 에이전트 상호작용이나 다중 구성요소 추론 파이프라인을 디버깅하는 데 중요합니다.
  • Cloud Profiler를 사용하여 애플리케이션 코드의 함수 블록 내에서 성능 병목 현상을 식별합니다. 성능 병목 현상을 식별하면 리소스 사용량과 실행 시간을 최적화하는 데 도움이 됩니다.
  • NVIDIA Data Center GPU Manager (DCGM)와 같은 도구를 사용하여 프로세스별 세부 GPU 사용률, 프로세스별 메모리 사용량, 온도와 같은 특정 액셀러레이터 관련 측정항목을 수집합니다.

데이터 및 모델 모니터링 가능성 구현

신뢰할 수 있는 생성형 AI 시스템에는 강력한 데이터 및 모델 관측 가능성이 필요하며, 이는 엔드 투 엔드 파이프라인 모니터링에서 시작됩니다.

  • Dataflow와 같은 서비스를 사용하여 데이터 수집률, 처리된 볼륨, 변환 지연 시간을 추적합니다.
  • Vertex AI Pipelines에서 관리하는 파이프라인을 비롯한 MLOps 파이프라인 내에서 작업 성공률과 실패율을 모니터링합니다.

데이터 품질을 지속적으로 평가하는 것이 중요합니다.

  • Dataplex Universal Catalog을 사용하여 데이터를 관리하고 제어합니다.
    • 정답에 대해 검증하거나 이상치 감지 비율을 추적하여 정확도를 평가합니다.
    • 데이터의 경과 시간과 SLA에 따른 업데이트 빈도를 기준으로 업데이트를 모니터링합니다.
    • null 값 비율과 필수 필드 입력률을 추적하여 완전성을 평가합니다.
    • 스키마 준수 및 중복 확인을 통해 유효성과 일관성을 보장합니다.
  • Cloud Monitoring 알림을 사용하고 추적 가능성을 위해 명확한 데이터 계보를 통해 이상치를 사전 감지합니다.
  • RAG 시스템의 경우 검색된 컨텍스트의 관련성과 대답의 그라운딩 (소스에 대한 속성 지정)을 검사합니다.
  • 벡터 데이터베이스 쿼리의 처리량을 모니터링합니다.

주요 모델 관측 가능성 측정항목에는 입력-출력 토큰 수와 환각 또는 질문 해결 실패와 같은 모델별 오류율이 포함됩니다. 이러한 측정항목을 추적하려면 모델 모니터링을 사용하세요.

  • 출력의 악의성 점수와 사용자 피드백 평가를 지속적으로 모니터링합니다.
  • Gen AI Evaluation Service를 사용하여 정의된 기준에 따라 모델 출력을 자동으로 평가합니다.
  • 포괄적인 오류율 측정항목으로 데이터 및 개념 드리프트를 체계적으로 모니터링하여 지속적인 성능을 보장합니다.

모델 측정항목을 추적하려면 TensorBoard 또는 MLflow를 사용하면 됩니다. 성능 문제를 해결하기 위한 심층 분석 및 프로파일링에는 PyTorch XLA 프로파일링 또는 NVIDIA Nsight를 사용할 수 있습니다.

참여자

저자:

기타 참여자: