기사 공유하기

올해 구글IO에서는 ‘버텍스 AI(Vertex AI)라는 새 이름으로 그동안 키워왔던 구글 클라우드 기반의 머신러닝 개발 및 배포, 운영 플랫폼을 내놓았다. 일반적으로 이러한 플랫폼을 서비스로서의 머신러닝(MLaaS, Machine Learning As A Service)로 클라우드컴퓨팅서비스의 일부로서 머신러닝 도구를 제공하는 서비스이다. 구글 클라우드 외에 AWS사의 세이지메이커(SageMaker)나 MS 애저의 애저 ML 스튜디오가 현재 경쟁을 펼치고 있다.

버텍스 구글 AI

‘서비스로서의 머신러닝’은 고객이 내부 조직에서 머신러닝 팀을 설립하는데 드는 비용, 시간 및 위험을 줄여 머신러닝의 혜택을 누릴 수 있도록 지원한다. 또한, 데이터 사전 처리, 모델 훈련 및 평가, 궁극적으로는 예측과 같은 문제를 풀기 위해 ‘서비스로서의 머신러닝’을 통해 인프라 스트럭처를 구축하는 데 장점이 있다.

클라우드 서비스 제공업체는 예측 분석 및 딥러닝, 데이터 시각화, 자연어 처리, MLOps(Machine Learning Operations; 머신러닝 오퍼레이션; 테이터 관리와 머신러닝 시스템, 서비스 운영을 통합하는 방식과 문화) API 등과 같은 도구를 함께 제공한다. 계산 측면에서는 클라우드 서비스 제공자의 데이터 센터에서 제공하는 GPU와 TPU를 이용하여 머신러닝 모델 훈련을 빠르게 처리하게 도와준다.

MLOps

머신러닝 모델 개발 프로세스 관점에서 

버텍스 AI 도구를 사용해 머신러닝 모델 개발 프로세스를 간소화할 수 있다. 머신러닝 워크플로우 전체를 관장하며 데이터 수집부터 모델 배포, 모니터링까지 포함한다. 또한, 관리형 머신러닝 플랫폼으로 실무자들의 머신러닝을 실험하고 배포하는 속도를 단축하는데 도움을 준다.

예를 들어, 백엔드에서 머신러닝 모델 구축, 훈련, 배포에 필요한 모든 도구를 제공한다. 네트워크 통신이 오프라인이거나 장치를 사용하는 상태일 수 있으며 데스크톱이나 모바일 클라이언트의 앱 로직은 백엔드에서 배포된 모델과 연결해 예측 결과를 가져와 최종 사용자에게 보여준다.

구글 리서치에서 수행한 다양한 실험과 발표 논문에서 보였던 수년간의 인공지능에 대한 전략 투자를 통해 버텍스 AI의 기반과 설계에 반영했는데, 컴퓨터 비전, 자연어 처리, 대화 및 구조화된 데이터를 포함하여 내부적으로 사용되는 인공지능 도구에 접근하고 구글 리서치가 지속적으로 개선할 수 있도록 했다.

버텍스 AI 전체 프로세스 및 아키텍처 (출처: 구글 클라우드)
버텍스 AI 전체 프로세스 및 아키텍처 (출처: 구글 클라우드)

먼저 버텍스 AI는 데이터 준비 프로세스를 지원한다. 빅 쿼리 및 클라우드 저장소에서 데이터를 수집하고 버텍스 데이터 레이블을 활용하여 고품질 훈련 데이터에 주석을 달고 예측 정확도를 향상시킬 수 있다. 버텍스 데이터 레이블링은 더 나은 머신러닝 모델을 위해 인간 레이블러로부터 매우 정확한 레이블을 얻을 수도 있다.

그 외 다양한 버텍스 AI의 주요 특징은 다음과 같다.

  • 버텍스 매칭 엔진은 대규모 확장성, 짧은 지연 시간 및 비용 등을 효율적인 벡터를 통해 매칭해주는 서비스이다.
  • 파이썬 SDK를 통해 ML 워크플로우에 대한 버텍스 ML 메타데이터는 모델 학습 프로세스에서 생성된 출력을 설명하는 아티팩트, 데이터 출처 및 발생 상황 및 시간 경과에 따른 위치를 포함하는 데이터 계통 및 실행 추적 기능을 제공한다.
  • 버텍스 피처(Vertex Feature)는 머신러닝에서 사용하는 특징을 추가 및 선택할 수 있으며, 공유 및 재사용하기 위해 완전 관리형인 피처 저장소를 사용한다. 따라서 유저 케이스 간에 ML 피처를 공유 및 재사용할 수 있으며, 서버 ML은 대기 시간이 짧은 규모로 제공된다. 이를 통해 학습 서비스 기울기를 완화해준다.
  • 머신러닝 모델 학습 시 버텍스 훈련을 통해 사전 빌드 알고리듬 집합을 제공하고 사용자들이 커스텀 코드를 학습 모델에 가져올 수 있도록 한다. 사용자 정의가 더 필요한 온프레미스 환경 또는 다른 클라우드 환경과 같은 하이브리드 인공지능을 활용하여 모델 학습을 실행하는 사용자를 위한 관리형 학습 서비스를 제공한다.
  • 버텍스 뉴럴 아키텍처 검색은 구글의 선도적인 인공지능 연구를 기반으로 하는 자동화된 서비스를 통해 애플리케이션별 요구를 대상으로 하는 새로운 모델 아키텍처를 구축하고 대기 시간, 메모리 및 전력에 맞게 기존 모델 아키텍처를 최적화하여 뉴럴 아키텍처 구조를 검색한다.
  • 버텍스 설명 가능 인공지능(explainable AI)은 버텍스 예측, 자동으로 데이터를 증강시키는AutoML 테이블 및 노트북에 통합된 강력하고 설명 가능한 모델 예측을 이해하도록 돕고 신뢰를 구축한다. 또한, 설명 가능한 인공지능을 통해 모델 평가, 지표 및 특징 속성 및 계통 등 상세한 정보를 제공한다.

머신러닝 인프라 관점에서

버텍스 AI는 경쟁 플랫폼보다 모델을 학습하는데 거의 80% 줄인 코드 라인으로 데이터 과학자와 머신러닝 엔지니어가 갖고 있는 전문지식의 수준에 따라 MLOps(머신러닝 오퍼레이션)를 구현하여 전체 개발 수명주기 동안 머신러닝 프로젝트를 효율적으로 구축하고 관리할 수 있다.

코드 프로그램 프로그래머 코딩

딥러닝의 가상 머신 이미지는 소프트웨어 호환성 걱정 없이 컴퓨팅 엔진 인스턴스에서 가장 인기 있는 인공지능 프레임워크를 포함하는 가상 머신 이미지를 인스턴스화할 수 있는데, 데이터 과학자를 위한 표준 워크벤치인 주피터랩을 사용하여 가상 머신을 생성, 관리 및 연결할 수 있다. 가상 머신 안에는 딥러닝 프레임워크 및 오픈소스 라이브러리와 함께 사전에 이미 설치되어 있다.

따라서 버텍스 딥러닝 컨테이너는 모든 인공지능 애플리케이션을 위한 일관된 환경에서 신속하게 모델을 구축하고 배치한다. 특히, 버텍스 엣지 매니저는 스마트폰이나 사물인터넷 등 경량의 모델이 필요한 장치나 환경에서 유연한 API를 통해 엣지 추론 및 자동화한 프로세스를 원활하게 배포 및 모니터링한다.

클라우드에서 스케일인 및 스케일아웃은 각각 동일한 유형의 인스턴스를 제거하고 추가하는 것을 의미한다. 초당 요청과 같은 지정된 지표에 따라 자동으로 더 많은 인스턴스를 추가하는 스케일아웃하거나 인스턴스를 더 적게 줄이는 스케일인 하도록 클라우드 엔드포인트를 구성할 수 있다.

대규모 인스턴스에는 CPU, GPU, 메모리 및 네트워크 대역폭이 더 많이 가지고 있어 요청이 많아질수록 버텍스 AI는 자동으로 모델 클러스터를 확장하여 수요를 충족시킨다. 클러스터를 정의할 때는 동종 인스턴스 유형을 사용하는 것이 가장 좋다. 인스턴스 유형을 혼합하면 클러스터를 조정하고 이기종 클러스터의 모든 인스턴스에 일관되게 적용되는 확장 정책을 정의하는데 어려움이 있을 수 있다. 새 인스턴스 유형을 시도할 경우 해당 인스턴스 유형만 사용하여 새 클러스터를 생성하고 각 클러스터를 단일 단위로 비교하는 것이 좋다.

AutoML 사전 학습 모델과 머신러닝 파이프라인

적은 데이터를 가진 경우 데이터 증강을 해주는 AutoML을 통하여 모델 학습 루틴을 작성하지 않고도 사전에 학습된 고품질 사용자 정의 머신러닝 모델을 쉽게 개발할 수 있다. 버텍스 파이프라인은 텐서플로 익스텐디드 및 큐브플로 파이프라인을 사용하여 머신러닝 파이프라인을 구축하고 구글 클라우드의 관리 서비스를 활용하여 확장성과 사용당 지불을 가능하게 한다. 또한, 버텍스 메타데이터를 통해 자세한 메타데이터 추적, 지속적인 모델링 및 트리거된 모델 재학습으로 MLOps(머신러닝 오퍼레이션)를 간소하게 할 수 있다.

따라서 추론 파이프라인은 단일 엔드포인트에 배포된 연속 절차이다. HTTPS의 요청 핸들러를 자체 프레임워크를 이용한 학습 컨테이너로 배포할 수 있다. 그 다음에 텐서플로 서빙 컨테이너에서 텐서플로 모델을 사용할 수 있으며, 다시 자체 프레임워크를 이용한 학습 컨테이너가 응답 핸들러를 처리하는 메카니즘으로 동작하게 된다.

또한, 텐서플로, 파이토치, Scikit-Learn, 아파치 스파크 등을 포함한 다양한 인공지능 및 머신러닝 프레임워크에 모델의 앙상블을 배치할 수 있다. 각 단계는 버텍스 AI에서 제어하는 컨테이너 간의 일련의 HTTPS 요청이다. 한 단계의 응답은 다음 단계 등에 대한 예측 요청으로 사용한다.

마지막 단계는 최종 응답을 다시 추론 파이프라인으로 반환하고, 이 파이프라인은 응답을 호출 애플리케이션으로 반환한다. 추론 파이프라인은 버텍스 AI에서 완전히 관리하며 배치 변환뿐만 아니라 실시간 예측에 사용할 수 있다.

버텍스 AI에서 버텍스 파이프라인 모델 개발 (출처: 구글 클라우드)
버텍스 AI에서 버텍스 파이프라인 모델 개발 (출처: 구글 클라우드)

그리고 버텍스 파이프라인은 위 도표에서 보듯이 조건부 논리 및 분기를 파이프라인에 추가할 수 있다. 파이프라인에서 생성된 모든 아티팩트에 대한 메타데이터를 저장한다. 머신러닝 워크플로우 전반에서 아티팩트, 계통, 지표 및 실행을 추적할 수 있으며, 클라우드 IAM, VPC-SC 및 CMEK을 지원한다.

한편, 버텍스 커스텀 학습의 경우, 분산 훈련 작업을 실행하고 GPU를 사용하여 학습을 가속하고 구글의 최첨단 전이 학습과 하이퍼파라미터 검색 기술을 기반으로 한 버텍스 학습 프로세스는 최대 예측 정확도를 위해 최적화된 하이퍼파라미터인 버텍스 비지어(Vizier)를 통해 실험 속도를 높일 수 있다.

이러한 예측 모델이 성능 저하가 되는 데이터 드리프트 및 컨셉트 드리프트를 피하려면, ML 모델을 끊임없이 모니터링하고, 재학습하고 업데이트해야 한다. 지도 학습이 필요할 수 있는 모델 성능 문제에 대한 경고 또한 버텍스 모델 모니터링을 통해 자동으로 해준다. 또한 머신러닝 실험을 위한 시각화 및 추적 도구로 사용하는 버텍스 텐서보드는 이미지, 텍스트 및 오디오 데이터를 표시하는 모델 그래프를 더 추가할 수 있다.

MLOps 관점에서의 머신러닝 클라우드 서비스

MLOps(머신러닝 오퍼레이션)리서치 중심의 모델 개발에서 실제 서비스를 위한 프로덕션의 모델 배치로 초점을 전환한다. 모델을 배포하는 방법에는 온라인 실시간 예측을 하는 방법과 오프라인으로 일괄적으로 배치 예측하는 방법이 있다.

두 예측 방법 중에 하나를 선택하려면 머신러닝 애플리케이션과 비즈니스 컨텍스트를 고려하여 대기 시간 또는 처리량을 얼마나 또는 어떻게 최적화할 것인가를 결정해야 한다. 또한, 이러한 애플리케이션이 주기적인 트래픽 요구 사항을 처리하기 위해 하루 종일 모델이 자동으로 확장해야 하는가? 그렇지 않으면 하루에 한 번만 배포 또는 연결만 이루어져도 되는가를 고려해야 한다. 무엇보다도 A/B 테스트를 통해 프로덕션 모델을 비교하여 모니터링을 할 것인가도 결정해야 한다.

애플리케이션에 낮은 대기 시간이 필요한 경우에 모델을 실시간 API로 배포하여 HTTPS를 통해 단일 예측 요청에 대한 초고속 예측을 제공해야 한다. 실시간 예측을 위해 HTTPS 상의 REST API 프로토콜을 클라우드 엔드포인트와 JSON 형태로 연동하여 인공지능 모델들을 배포, 확장 및 비교한다.

데이터 과학자는 머신러닝의 종단간 수동으로 연결해서 개발 및 실험 중인 모델이 프로덕션에 배포하는 일이 거의 없게 문제를 해결하고 있다. 이러한 과제를 해결하기 위해 사용자가 쉽게 접근할 수 있는 하나로 통합된 화면 인터페이스 및 개발자가 접근할 수 있는 API로 구글 클라우드 서비스와 결합하여 대규모로 머신러닝 모델을 생성, 학습, 배포하는 프로세스를 단순화한다.

이 단일 환경에서 사용자는 모델을 실험에서 프로덕션 단계로 실운영할 수 있도록 더 빠르게 이동하고, 다양한 머신러닝 패턴과 이상치를 더욱 효율적으로 발견하고, 더 나은 예측과 의사 결정을 내리고, 역동적으로 변화하는 시장에 더 민첩하게 대응할 수 있다.

전망대 망원경 예측 예견 예상 미래

버텍스 AI 활용한 배포 전략

컴퓨팅, 메모리, 스토리지를 제공하는 클라우드 인스턴스와 모델 컨테이너 애플리케이션을 결합한 것을 “프로덕션 변형(production variants)”이라고 한다. 프로덕션 변형은 인스턴스 유형, 인스턴스 수 및 모델을 정의한다. 기본적으로 구글 클라우드 엔드포인트는 단일 프로덕션 변형으로 구성하지만, 필요에 따라 여러 가지로 변형을 추가할 수 있다.

따라서 프로덕션 변형 방법을 통한 새로운 머신러닝 모델 및 업데이트된 모델 배포는 구글 클라우드 엔드포인트 상에서 검증하고 배포할 수 있다. 이러한 변형은 하드웨어(CPU/GPU), 데이터(구조적/반구조적/비구조적), 지역(미국 서부 또는 독일 북부)에 따라 다를 수 있다.

카나리아 롤아웃 배포를 사용하기 위해 5%의 트래픽을 새 모델로 분할한다 (출처: 구글 SRE 책)
카나리아 롤아웃 배포를 사용하기 위해 5%의 트래픽을 새 모델로 분할한다 (출처: 구글 SRE 책)

첫째, 위 도표에서와 같이 카나리아(Canary) 롤아웃 배포를 위한 새로운 프로덕션 변형을 만든 후, 새로운 엔드포인트를 통해 카나리아 롤아웃에 새롭게 적은 양의 트래픽(5%)을 지정하고 나머지 트래픽(95%)을 기존 변형에 지정한다.

따라서 데이터가 지속적으로 변경되기 때문에 이 변화를 포착하기 위해 모델이 진화해야 한다. 모델을 업데이트할 때, 카나리아를 사용하여 인간이 탄광에서 숨을 쉴 수 있는지를 감지하는 오래된 병적인 프로세스의 이름을 따서 명명된 “카나리아 롤아웃(Canary Rollout)”을 사용하여 이것을 수행할 수 있다.

만약 카나리아가 탄광에서 살아남는다면, 상황은 좋으며 계속 진행할 수 있다. 만약 카나리아가 살아남지 못한다면, 적응하고 나중에 다른 카나리아와 다시 시도해야 한다. 마찬가지로, 인공지능 배포 전략에서도 이 “카나리아” 배포 모델에 적은 비율의 새 트래픽을 할당하고 모델 서비스가 작동하는지 검증할 수 있다. 아마도 리서치에서 파악하지 못한 메모리 누수나 기타 생산 관련 문제가 있을 수 있다.

프로덕션 ML 시스템의 머신러닝 워크플로 (출처: 구글 클라우드)
프로덕션 ML 시스템의 머신러닝 워크플로 (출처: 구글 클라우드)

둘째, A/B 및 MAB 테스트를 사용해 프로덕션에서 모델 성능을 비교하기 위해서는 최적화하려는 비즈니스 지표를 정의하고 추적해야 한다. 비즈니스 지표는 상품 주문, 영화 시청, 광고 클릭과 같은 매출 또는 사용자 참여와 관련이 있다. 구글 클라우드 데이터스토어 또는 클라우드 스패너와 같은 모든 데이터베이스에 지표를 저장할 수 있다. 데이터 분석가들과 과학자들은 이 데이터를 사용하여 테스트로부터 최종 모델을 결정한다.

카나리아 롤아웃과 유사하게, 실시간 프로덕션에서 다른 모델을 비교하고 테스트하기 위해 트래픽 분할을 사용하여 사용자의 하위 집합을 다른 모델 변형으로 유도할 수 있다. 목표는 어떤 변형의 성능이 더 좋은지 확인하는 것이다. 이러한 검증은 통계적으로 유의하려면 적어도 주 단위로 동안 실행해야 하는 경우가 많다.

A/B 테스트는 카나리아 롤아웃과 유사하나 두 모델 간에 랜덤으로 50/50 트래픽 분할을 사용하여 두 가지 다른 모델 비교를 위한 데이터를 수집하는데 초점을 맞추고 있다. 그러므로 A/B 테스트는 더 큰 사용자 그룹을 대상으로 하고 더 많은 트래픽을 사용하며 더 오랫동안 실행되는 반면에 카나리아 롤아웃은 위험 완화와 원활한 업그레이드에 더 초점을 맞추고 있다.

결론적으로 카나리아 롤아웃, 블루/그린 배포, A/B 테스트 및 MAB 테스트를 위해 엔드포인트의 모델 변형 간에 트래픽을 안전하게 전환할 수 있다. 또한, 이러한 배포 전략을 사용하면 새로운 모델과 업데이트된 모델을 프로덕션에 푸시할 때 수반되는 위험을 최소화할 수 있다. A/B 테스트를 사용하여 새로운 모델을 테스트하고 비교하는 방법과 모델 예측 트래픽의 변화에 따라 모델 호스팅 인프라를 자동으로 확장할 수 있는 기능도 포함한다.

버텍스 AI의 비전 

소셜미디어와 모바일 앱과 같은 글로벌 데이터 소스에 의해 생성되는 데이터의 양이 증가하고 사물 인터넷과 같은 상황별 데이터가 기업에서 대중화됨에 따라 연구자들은 이러한 모든 데이터를 연결하고 귀중한 정보를 추출하고 판단해 미래를 예측할 수 있어야 한다.

구글의 버텍스 AI는 서비스로서의 유연하고 확장 가능한 머신러닝을 만드는 아키텍처를 제안하며, 오픈소스 솔루션을 구현하고 기존의 구글 클라우드와 통합했다.

 

[divide style=”2″]

[box type=”note”]

본 글은 한국지능정보사회진흥원의 지원을 받아 작성되었으며, 디지털서비스 이용지원시스템에 동시 게재합니다. 이 글의 필자는 서진호 인공지능 산업 전문가 & 하이테크 칼럼니스트입니다.

[/box]

관련 글