Vertex Vizier 초매개변수 미세 조정으로 ML 모델을 개선하는 5가지 방법
Sagi Perel
ML Research Engineer
* 본 아티클의 원문은 2021년 6월 4일 Google Cloud 블로그(영문)에 게재되었습니다.
Google이 최근에 출시한 Vertex AI는 머신러닝(ML)을 실험 단계에서 프로덕션 단계로 더욱 신속하게 배포하여 ML 모델을 안심하고 관리하도록 도와 줍니다. 조직은 이를 통해 성과를 빠르게 개선할 수 있습니다.
하지만 ML을 시작한지 얼마 안 되었다면 익혀야 할 내용이 무척 많을 것입니다. 그래서 Google은 Vertex AI Platform을 구축하고 최대한 많은 권장사항 콘텐츠를 제공하여 조직이 빠르게 ML을 익히도록 돕고 있습니다. 또한 6월 10일에는 Applied ML Summit이라는 이름의 전용 이벤트를 열어 프로젝트에 ML 기술을 적용하는 방법과 이 분야에서 기술을 쌓는 방법 등을 다룬 세션을 진행했습니다.
초매개변수 미세 조정에 대한 간략한 강의도 진행했습니다. 초매개변수 미세조정이 중요한 이유는 (a) 정말 효과적이고 (b) 동료에게 큰 인상을 남길 수 있고 (c) Google Cloud가 이 분야에서 현장 검증을 거친 기술을 갖고 있으며 (d) 우수한 ML 모델을 프로덕션에 빠르게 배포하여 시간을 절약할 수 있기 때문입니다. Vertex Vizier는 기존 방법에 비해 80% 이상 적은 시도 횟수로 복잡한 함수에 대한 최적의 매개변수를 찾아냅니다.
정말 큰 효과를 볼 수 있는데 그렇다면 Vertex Vizier란 정확히 무엇일까요?
머신러닝 모델은 데이터를 통해 자동으로 학습하지만 여전히 학습 프로세스를 안내하는 사용자 정의 노브가 필요합니다. 일반적으로 초매개변수라고 부르는 이러한 노브가 학습의 정확성과 일반화 간의 균형을 유지해 줍니다. 초매개변수의 예로는 사용되는 옵티마이저, 학습률, 정규화 매개변수, DNN 등이 있습니다.
특정 데이터 세트의 최적 값으로 초매개변수를 설정하면 모델 품질을 크게 향상할 수 있습니다. 보통은 적은 수의 조합을 그리드 검색하거나 지루하기 이를 데 없는 수동 실험을 실시하여 최적의 초매개변수 값을 찾습니다. 초매개변수 미세 조정에서는 최적의 모델 성능을 제공하는 최고의 초매개변수 구성을 검색하여 이러한 작업을 자동화해 줍니다.
Vertex Vizier는 여러 가지 방법으로 자동화된 초매개변수 미세 조정을 지원합니다.
'기존' 초매개변수 미세 조정: ML 모델의 출력인 단일 목표 측정항목을 측정하여 최적의 초매개변수 값을 찾습니다. 예를 들어 Vizier에서 모델 정확성을 극대화할 목적으로 히든 레이어의 수와 크기, 옵티마이저, 학습률을 선택합니다.
초매개변수를 평가할 때 모델의 학습 및 평가가 분할된 데이터 세트를 기반으로 이루어집니다. 모델이 학습할 때 평가 측정항목이 (에포크의 함수 등으로) Vizier로 스트리밍되는 경우 Vizier의 조기 중단 알고리즘에서 최종 목표 값을 예측할 수 있으며 성능 저하가 예측되는 시도는 조기 중단하도록 권장할 수 있습니다. 따라서 컴퓨팅 리소스가 절약되고 수렴 속도가 빨라집니다.
모델이 다양한 데이터 세트에서 순차적으로 미세 조정되는 경우가 많습니다. 기본 제공되는 Vizier의 전이 학습에서는 이전 초매개변수 미세 조정 연구에서 이전 항목을 학습하고 이를 활용하여 후속 초매개변수 미세 조정 연구를 더 빠르게 수렴합니다.
AutoML은 1번의 변이로서 이를 통해 Vertex Vizier에서 모델 선택을 수행하고 아키텍처/비아키텍처를 미세 조정하여 매개변수를 수정합니다. AutoML은 일반적으로 (데이터 수집 등을 위해) Vertex Vizier 외에 많은 코드가 필요하지만 대부분의 경우 Vizier가 프로세스를 구동시키는 '엔진' 역할을 합니다. AutoML은 (1번과 같이) '수평의' 검색 공간이 아닌 DAG 검색 공간과 같은 트리를 정의하여 구현됩니다. 계층적 공간을 통해 검색하는 것이 적합한 경우에는 DAG 검색 공간을 사용해도 됩니다.
둘 이상의 측정항목을 최적화해야 하는 경우도 있습니다. 예를 들면 모델 정확성을 최적화하는 동시에 모델 지연 시간을 최소화해야 할 수 있습니다. Vizier는 여러 측정항목의 장단점을 알려주는 파레토 프론티어를 찾아 사용자가 적절한 절충점을 선택하도록 지원합니다. 더 정확한 모델을 만들고 싶지만 제공 지연 시간을 최소화해야 한다고 가정해 보겠습니다. 두 측정항목의 절충점을 아직 모르는 상태입니다. 사용자가 가장 적절한 선택을 내릴 수 있도록 Vizier를 사용해 균형 곡선을 탐색하고 표시할 수 있습니다. 예를 들어 '지연 시간이 200ms 감소하면 정확도가 0.5%만 감소합니다.'
Vertex AI를 통한 손쉬운 Google Vizier 사용
Google은 2017년에 블랙박스 최적화 작업과 사용 사례를 공유한 Vizier 연구 자료를 게시했습니다. 이 자료에서는 시스템 내부를 피어링하여 노브가 제대로 작동하는지 확인할 수 없을 때 여러 매개변수 또는 노브에 대한 최적의 설정을 찾는 프로세스를 다루었습니다. 이 자료에서는 요구사항, 인프라 설계, 기본 알고리즘, 서비스에서 제공하는 전이 학습 등의 고급 기능에 대해 설명합니다. Vizier가 Google 머신러닝의 발전에 중요한 역할을 해온 만큼, Vertex AI를 통해 이를 제공하게 되어 매우 기쁘게 생각합니다.
Vizier는 이미 Google에서 수백만 개의 ML 모델을 미세 조정한 바 있으며 실제 특이 사례의 빠른 수렴과 처리가 가능하도록 알고리즘을 계속하여 개선하고 있습니다. Vertex Vizier의 모델은 잘 보정되고 자체 조정되며(사용자 데이터에 맞춰 조정) 계층적 검색 공간 및 다중 목표 최적화 등의 특별한 기능을 제공합니다. Google Cloud만의 고유한 기능인 Vertex Vizier의 여러 기능을 통해 고객이 초매개변수를 자동으로 미세 조정하여 모델의 품질을 자사에 맞게 최적화할 수 있기를 기대합니다.
Vertex Vizier에 대한 자세한 내용은 이 문서를 참조하고 향후 5년간 머신러닝이 어떻게 발전할지 궁금하다면 6월 10일에 열린 Applied ML Summit을 원하는 시간대에 온디맨드 세션으로 시청하세요.