Google Vertex AI

Vertex AI는 구글 클라우드 플랫폼에서 제공하는 통합 인공지능 플랫폼이다. BigQuery나 컴퓨팅 엔진과 연결해 end-to-end로 데이터 파이프라인을 구축할 수도 있고, ML 엔지니어 없이 최소한의 전문성으로 실제로 작동하는 ML 모델을 만들고 배포할 수 있다.

사용법도 매우 간단하다. GUI 기반이며, 코드 작성이 필요 없다.

  1. 데이터 업로드 (또는 BigQuery 연결)
  2. 학습 목표 설정 (분류인지 예측인지, 이미지인지 테이블 데이터인지 등, 정밀도와 재현율의 목표는 어떻게 할지 등)
  3. 학습에 투자할 노드시간 부여 (얼마만큼의 컴퓨팅 리소스를 얼마동안 사용하게 할지)
  4. 학습 및 평가 (평가지표 및 Feature Importance 제공됨)

그럼 데이터 전처리는 직접 해야하는가? 모델의 성능을 개선하려면 그게 좋다. 하지만 결측치가 있어도, 카테고리 인코딩이 불충분해도 Vertex AI는 충분히 좋은 모델을 만들어준다. 데이터셋을 우선 한번 올려서 학습을 시켜보고 그 이후 개선하라고 추천하고 싶다.

물론 Feature를 선정하는 것은 Vertex AI가 대신해줄 수 없다. Feature 선정에는 도메인 지식이 필요한 경우도 많고, 데이터를 확보하는 당사자만 결정할 수 있는 영역에 가깝기 때문이다.

신용카드 거래 데이터

캐글에서 구할 수 있는 “신용카드 거래" 데이터로 사기거래를 분류하는 모델을 만들어 보았다.

데이터는 CSV로 업로드했고, AUC-ROC를 최적화 목표로 삼았다. 최적화목표는 궁금하다면 찾아보고 설정하면 된다. 신용카드 거래 데이터는 99%가 정상거래다. 세상은 생각보다 멀쩡한 사람들이 대부분이고, 사기꾼은 소수다. 따라서 사기거래(이상거래) 비율보다 정상거래 비율이 앞도적으로 높은데, 이 경우 AUC-ROC가 이런 편향성을 잘 대응한다고 한다.

학습이 완료되면 평가를 볼 수 있다.

confusion matrix

이렇게 Confusion Matrix도 제공하며,

feature importance

Feature Importance도 제공한다.

참고로 이 데이터는 Feature가 다 “V14”, “V4” 형식으로 칼럼명이 변경되어 있다. 아무래도 신용카드 거래 데이터가 개인정보다 보니 그런 것 같다.

이 외에도 정밀도나 재현율 관련해 AUC-ROC 등등의 지표를 제공한다. 신뢰수준에 따라서 확인할 수 있다.

무엇이 장점인가?

구글이 알아서 적절한 알고리즘을 적용해준다. 우리가 선택할 것은 “이미지", “테이블" 등 데이터의 형태와 분류인지 예측인지 정도다.

직접 ML 모델을 구축하려면 많은 공부가 필요하다. 분류 모델이라면 XGBoost와 같은 알고리즘들 중 적절한 알고리즘을 선정해야 한다. 트리 모델을 사용할 경우 depth 등 하이퍼 파라미터 튜닝도 필요하다. 데이터의 결측치를 대응하고 정규화하고 카테고리는 인코딩도 해야 한다. Vertex AI는 이런 수고를 줄여준다.

단점은 무엇인가?

Vertex AI로 학습하는 것은 저렴하지는 않다. 1시간여 학습에도 꽤 비용이 청구된다.

구글에 종속되는 것도 단점이다. 물론 모델을 export할 수 있다. 하지만 제약이 있을 것으로 생각한다.

튜닝도 제한적이다. 직접 코드를 업로드해 학습을 진행하는 방법도 있으므로 커스터마이징이 가능한 셈이지만, 그럴 경우 Vertex AI를 사용하는 목적이 상당히 퇴색된다(쉬운 사용성). GUI를 통해 워낙 쉽고 직관적으로 모델 훈련이 가능하다 보니, 튜닝의 요소가 상대적으로 적다. 모델을 바꿔본다거나 할 수 없고, 특정 feature에 가중치를 준다던지, 학습 목표를 AUC-ROC에서 다른 것으로 바꿔본다던지, 아니면 데이터셋을 직접 개선하는 정도가 전부인 것 같다.

총평

Vertex AI를 활용하면 AI 전문가가 없는 회사도 모델을 구축할 수 있다. 물론 이 모델은 전문가가 만든 모델보다 부족하다. 모델 튜닝을 위해서는 전문가에 준하는 지식이 필요할 수도 있다. 하지만, 많은 비즈니스 영역이 전문가가 항상 부족한 점, 그들이 필요로 하는 AI/ML 모델이 그렇게까지 고성능일 필요가 없는 경우도 많다는 점을 생각해보면 충분히 매력적인 솔루션이라고 생각한다.

위에 잠깐 공유한 모델의 경우 구글 클라우드의 다른 기능들을 이용하면 쉽게 API로 만들 수 있다. BigQuery를 Data Warehouse로 사용한다면, 데이터를 자동으로 적재하고, 모델을 지속적으로 학습시킬 수도 있다.