2020.10.23

애저 머신러닝 디자이너를 사용해 맞춤형 모델 만들기

Simon Bisson | InfoWorld
머신러닝(Machine Learning)은 현대 애플리케이션 개발의 중요한 부분으로, 과거 복잡한 일련의 규칙 엔진을 사용해 수행했던 일의 상당 부분을 대체하고 있으며 훨씬 더 폭넓은 문제까지 그 범위도 확장하고 있다. 애저 코그니티브 서비스(Azure’s Cognitive Service)와 같은 서비스는 여러 일반적인 사용사례를 지원하는 사전 구축, 사전 학습된 모델을 다수 제공하지만 많은 경우 맞춤형 모델 개발이 필요하다.


머신러닝을 사용한 맞춤 제작

맞춤형 머신러닝 모델(custom machine learning models) 구축은 어떻게 시작해야 할까? 데이터의 기반 구조를 이미 파악하고 있다면 R과 같은 통계 분석 언어를 사용해 모델을 구축하고 검증하거나 파이썬 아나콘다(Python Anaconda)의 선형대수 기능을 사용할 수 있다. 마찬가지로, 파이토치(PyTorch), 텐서플로우(TensorFlow)와 같은 툴은 익숙한 언어 및 플랫폼과 통합되면서도 신경망(neural nets)과 딥 러닝(deep learning)을 활용해 더 복잡한 모델을 구축하는 데 유용하다.

하지만 이런 이야기는 자체적으로 모델을 구축, 테스트, 검증(가장 중요)할 수 있는 데이터 과학자와 수학자로 구성된 팀이 있을 때에만 해당된다. 머신러닝 전문가를 찾기 힘든 현실에서 필요한 것은 개발자에게 비즈니스에 필요한 모델을 생성하는 과정을 안내할 수 있는 툴이다. 실제 환경에서 대부분의 머신러닝 모델은 비슷한 데이터를 찾는 모델과 예외적 데이터를 찾는 모델, 두 가지 유형 가운데 하나에 해당된다.

첫 번째 유형을 사용해 예를 들어 컨베이어 벨트의 특정 항목을 식별할 수 있고, 두 번째 유형을 사용해 일련의 산업용 센서에서 가져온 데이터에서 문제점을 찾을 수 있다. 이와 같은 시나리오는 특별히 복잡하지는 않지만, 찾고자 하는 것이 무엇인지 파악하고 전제를 증폭하거나 노이즈에 응답하지 않으면서 데이터에서 신호를 찾기 위해서는 여전히 검증된 모델을 구축해야 한다.

 
애저 머신러닝 디자이너

애저는 이를 위한 다양한 툴을 사전 구축, 사전 학습된 맞춤 구성 가능한 모델과 함께 제공한다. 이 가운데 하나인 애저 머신러닝 디자이너(Azure Machine Learning Designer)는 시각적 설계 툴과 드래그 앤 드롭 컨트롤을 사용해 기존 데이터로 작업할 수 있게 해준다.

모델을 구축하기 위한 코드를 작성할 필요는 없지만 필요한 경우 맞춤형 R 또는 파이썬을 가져올 수 있다. 예전의 ML 스튜디오(ML Studio)를 대체하는 툴로, 애저의 머신러닝 SDK에 더 깊게 통합되며 CPU 기반 모델 외에 GPU 지원 머신러닝 및 자동화된 모델 학습과 튜닝까지 지원한다.

애저 머신러닝 디자이너를 사용해 작업을 시작하려면 애저 머신러닝 사이트를 열고 애저 계정을 사용해 로그인한다. 먼저 구독에 연결하고 모델을 위한 작업 공간을 생성한다. 설정 마법사에 표시되는 메시지에 따라 모델의 엔드포인트가 공개인지 비공개인지, 그리고 민감한 데이터를 다루는지 여부를 선택한 다음 키 관리 방법을 선택한다. 민감한 데이터는 애저 용어로 '비즈니스 영향이 큰 작업 공간'에서 처리된다. 이 작업 공간에 해당하는 경우 마이크로소프트는 수집하는 진단 데이터의 양을 축소하고 부가적인 암호화 계층을 추가한다.


머신러닝 작업 공간 구성

마법사를 마치면 애저가 설정을 확인한 다음 머신러닝 작업 공간을 만든다. 유용한 점은 ARM 템플릿을 제공한다는 것이다. 따라서 이후 생성 과정을 자동화하고, 비즈니스 분석가가 내부 포털에서 사용할 수 있는 스크립트를 위한 프레임워크를 통해 애저 관리자의 부담을 줄일 수 있다. 작업 공간을 만들기 위해 필요한 리소스를 배포하는 데는 시간이 걸리므로 모델 구축에 앞서 한동안 기다려야 할 수 있다.

작업 공간에는 설계와 학습부터 컴퓨팅 및 스토리지 관리에 이르기까지 머신러닝 모델을 개발하고 관리하기 위한 툴이 포함된다. 또한 기존 데이터에 레이블을 지정해서 학습 데이터 집합의 가치를 높일 수도 있다. 보통 처음 시작할 때 선택하는 방법은 주피터(Jupyter) 스타일 노트북의 애저 머신러닝 파이썬 SDK, 애저 머신러닝의 자동 학습 툴, 또는 로우 코드 방식의 드래그 앤 드롭 디자이너, 세 가지 가운데 하나다.


애저 머신러닝 디자이너를 사용해 모델 만들기

디자이너는 연결해 코드에 바로 사용 가능한 머신러닝 API를 구성할 수 있는 일련의 사전 제작된 모듈을 제공하므로 맞춤형 머신러닝을 시작하기 위한 가장 빠른 방법이다. 먼저 머신러닝 파이프라인을 위한 캔버스를 만들어 파이프라인의 컴퓨팅 타깃을 설정한다. 컴퓨팅 타겟은 전체 모델에 대해 설정해도 되고 파이프라인의 개별 모듈에 대해 설정해 적절히 성능을 튜닝해도 된다.
 
ⓒ IDG

모델의 컴퓨팅 리소스는 필요에 따라 확장 및 축소되는 서버리스(serverless) 컴퓨팅이라고 생각하면 된다. 사용하지 않을 때는 0으로 축소되고, 이 상태에서 다시 가동하는 경우 최대 5분이 소요될 수 있다. 이 부분이 애플리케이션의 작동에 영향을 미칠 수 있으므로 리소스에 의존하는 애플리케이션을 실행하기 전에 해당 리소스가 가용 상태인지 확인해야 한다. 컴퓨팅 타깃을 선택할 때는 모델을 학습시키는 데 필요한 리소스를 고려해야 한다. 복잡한 모델은 애저의 컴퓨팅 옵션 대부분을 지원하는(가용 할당량에 따라 다름) 애저의 GPU 지원을 활용할 수 있다.

학습 컴퓨팅 리소스를 설정한 다음에는 학습 데이터 집합을 선택한다. 자체 데이터일 수도 있고, 마이크로소프트 샘플 중 하나일 수도 있다. 로컬 파일, 애저에 이미 저장된 데이터, 웹, 또는 등록된 공개 데이터 집합(정부 정보인 경우가 많음)에서 맞춤형 데이터 집합을 구성할 수 있다.


애저 머신러닝 디자이너에서 데이터 사용

디자이너에 있는 툴을 통해 사용 중인 데이터 집합을 탐색하면서 구축하려는 모델에 맞는 소스인지 확인할 수 있다. 캔버스에 데이터 소스를 올리고 모듈을 끌어와서 연결해 학습 데이터를 처리할 수 있다. 예를 들어 충분한 데이터가 포함되지 않은 열을 제거하거나 누락된 데이터를 정리한다. 이렇게 끌어와서 연결하는 과정은 파워 플랫폼(Power Platform)과 같은 로우 코드 툴을 사용하는 방법과 상당히 흡사하다. 차이점은 자체 모듈을 사용할 수 있다는 것이다.

데이터를 처리한 후, 모델을 학습시키기 위한 모듈을 선택할 수 있다. 마이크로소프트는 일반적인 알고리즘, 그리고 학습과 테스트를 위해 데이터 집합을 분할하기 위한 툴을 제공한다. 

학습을 거친 후 나온 결과 모델을 다른 모듈을 사용해 채점할 수 있다. 점수는 평가 모듈로 전달되므로 알고리즘의 얼마나 잘 작동했는지를 볼 수 있다. 결과를 해석하기 위해서는 생성된 오차의 유형을 이해할 수 있는 얼마간의 통계 지식이 필요하지만 오류 값은 작을수록 좋다. 자체 파이썬과 R 코드를 가져올 수 있으므로 준비된 알고리즘을 꼭 사용할 필요는 없다.

학습되고 테스트된 모델은 신속하게 추론(Inferencing) 파이프라인으로 변환해 애플리케이션에서 사용하도록 준비할 수 있다. 이렇게 하면 모델에 입력 및 출력 REST API가 추가되어 코드에 사용할 준비가 된다. 이후 결과 모델이 AKS 추론 클러스터에 즉시 사용 가능한 컨테이너 형태로 배포된다.


애저에 맡기기, 자동화된 머신러닝

많은 경우, 개발 작업은 그다지 많이 필요하지 않다. 마이크로소프트는 마이크로소프트 리서치의 연구 결과를 바탕으로 한 자동화된 머신러닝(Automated ML) 옵션을 최근 공개했다. 자동화된 머신러닝의 경우 애저가 액세스할 수 있는 데이터 집합으로 시작한다. 이 데이터 집합은 테이블 형태의 데이터여야 한다. 

자동화된 머신러닝은 분류, 회귀, 예측의 세 가지 모델 유형에 맞는다. 데이터를 제공하고 모델 유형을 선택하면 툴이 데이터에서 자동으로 스키마를 생성한다. 이 스키마를 사용해 특정 데이터 필드를 켜거나 끄면서 모델을 구축하고 테스트하기 위한 실험을 만들 수 있다.

자동화된 머신러닝이 여러 모델을 만들고 순위를 지정하면 이를 조사해 당면한 문제에 가장 적합한 모델을 결정하면 된다. 원하는 모델을 찾았으면 파워 BI와 같은 툴에서 사용 가능한 입력 및 출력 단계를 신속하게 서비스로 추가할 수 있다.

많은 유형의 비즈니스 문제에서 예측 도구로서 머신러닝의 중요성이 높아지는 가운데 애저 머신러닝 디자이너는 훨씬 더 폭넓은 대상에 머신러닝을 적용할 수 있게 해준다. 데이터가 있다면 최소한의 데이터 과학 전문 지식으로 분석 모델과 예측 모델을 모두 구축할 수 있다. 새로운 자동화된 머신러닝 서비스를 사용하면 데이터에서 서비스로, 노코드(no-code) 분석으로 쉽게 이동할 수 있다. editor@itworld.co.kr 


2020.10.23

애저 머신러닝 디자이너를 사용해 맞춤형 모델 만들기

Simon Bisson | InfoWorld
머신러닝(Machine Learning)은 현대 애플리케이션 개발의 중요한 부분으로, 과거 복잡한 일련의 규칙 엔진을 사용해 수행했던 일의 상당 부분을 대체하고 있으며 훨씬 더 폭넓은 문제까지 그 범위도 확장하고 있다. 애저 코그니티브 서비스(Azure’s Cognitive Service)와 같은 서비스는 여러 일반적인 사용사례를 지원하는 사전 구축, 사전 학습된 모델을 다수 제공하지만 많은 경우 맞춤형 모델 개발이 필요하다.


머신러닝을 사용한 맞춤 제작

맞춤형 머신러닝 모델(custom machine learning models) 구축은 어떻게 시작해야 할까? 데이터의 기반 구조를 이미 파악하고 있다면 R과 같은 통계 분석 언어를 사용해 모델을 구축하고 검증하거나 파이썬 아나콘다(Python Anaconda)의 선형대수 기능을 사용할 수 있다. 마찬가지로, 파이토치(PyTorch), 텐서플로우(TensorFlow)와 같은 툴은 익숙한 언어 및 플랫폼과 통합되면서도 신경망(neural nets)과 딥 러닝(deep learning)을 활용해 더 복잡한 모델을 구축하는 데 유용하다.

하지만 이런 이야기는 자체적으로 모델을 구축, 테스트, 검증(가장 중요)할 수 있는 데이터 과학자와 수학자로 구성된 팀이 있을 때에만 해당된다. 머신러닝 전문가를 찾기 힘든 현실에서 필요한 것은 개발자에게 비즈니스에 필요한 모델을 생성하는 과정을 안내할 수 있는 툴이다. 실제 환경에서 대부분의 머신러닝 모델은 비슷한 데이터를 찾는 모델과 예외적 데이터를 찾는 모델, 두 가지 유형 가운데 하나에 해당된다.

첫 번째 유형을 사용해 예를 들어 컨베이어 벨트의 특정 항목을 식별할 수 있고, 두 번째 유형을 사용해 일련의 산업용 센서에서 가져온 데이터에서 문제점을 찾을 수 있다. 이와 같은 시나리오는 특별히 복잡하지는 않지만, 찾고자 하는 것이 무엇인지 파악하고 전제를 증폭하거나 노이즈에 응답하지 않으면서 데이터에서 신호를 찾기 위해서는 여전히 검증된 모델을 구축해야 한다.

 
애저 머신러닝 디자이너

애저는 이를 위한 다양한 툴을 사전 구축, 사전 학습된 맞춤 구성 가능한 모델과 함께 제공한다. 이 가운데 하나인 애저 머신러닝 디자이너(Azure Machine Learning Designer)는 시각적 설계 툴과 드래그 앤 드롭 컨트롤을 사용해 기존 데이터로 작업할 수 있게 해준다.

모델을 구축하기 위한 코드를 작성할 필요는 없지만 필요한 경우 맞춤형 R 또는 파이썬을 가져올 수 있다. 예전의 ML 스튜디오(ML Studio)를 대체하는 툴로, 애저의 머신러닝 SDK에 더 깊게 통합되며 CPU 기반 모델 외에 GPU 지원 머신러닝 및 자동화된 모델 학습과 튜닝까지 지원한다.

애저 머신러닝 디자이너를 사용해 작업을 시작하려면 애저 머신러닝 사이트를 열고 애저 계정을 사용해 로그인한다. 먼저 구독에 연결하고 모델을 위한 작업 공간을 생성한다. 설정 마법사에 표시되는 메시지에 따라 모델의 엔드포인트가 공개인지 비공개인지, 그리고 민감한 데이터를 다루는지 여부를 선택한 다음 키 관리 방법을 선택한다. 민감한 데이터는 애저 용어로 '비즈니스 영향이 큰 작업 공간'에서 처리된다. 이 작업 공간에 해당하는 경우 마이크로소프트는 수집하는 진단 데이터의 양을 축소하고 부가적인 암호화 계층을 추가한다.


머신러닝 작업 공간 구성

마법사를 마치면 애저가 설정을 확인한 다음 머신러닝 작업 공간을 만든다. 유용한 점은 ARM 템플릿을 제공한다는 것이다. 따라서 이후 생성 과정을 자동화하고, 비즈니스 분석가가 내부 포털에서 사용할 수 있는 스크립트를 위한 프레임워크를 통해 애저 관리자의 부담을 줄일 수 있다. 작업 공간을 만들기 위해 필요한 리소스를 배포하는 데는 시간이 걸리므로 모델 구축에 앞서 한동안 기다려야 할 수 있다.

작업 공간에는 설계와 학습부터 컴퓨팅 및 스토리지 관리에 이르기까지 머신러닝 모델을 개발하고 관리하기 위한 툴이 포함된다. 또한 기존 데이터에 레이블을 지정해서 학습 데이터 집합의 가치를 높일 수도 있다. 보통 처음 시작할 때 선택하는 방법은 주피터(Jupyter) 스타일 노트북의 애저 머신러닝 파이썬 SDK, 애저 머신러닝의 자동 학습 툴, 또는 로우 코드 방식의 드래그 앤 드롭 디자이너, 세 가지 가운데 하나다.


애저 머신러닝 디자이너를 사용해 모델 만들기

디자이너는 연결해 코드에 바로 사용 가능한 머신러닝 API를 구성할 수 있는 일련의 사전 제작된 모듈을 제공하므로 맞춤형 머신러닝을 시작하기 위한 가장 빠른 방법이다. 먼저 머신러닝 파이프라인을 위한 캔버스를 만들어 파이프라인의 컴퓨팅 타깃을 설정한다. 컴퓨팅 타겟은 전체 모델에 대해 설정해도 되고 파이프라인의 개별 모듈에 대해 설정해 적절히 성능을 튜닝해도 된다.
 
ⓒ IDG

모델의 컴퓨팅 리소스는 필요에 따라 확장 및 축소되는 서버리스(serverless) 컴퓨팅이라고 생각하면 된다. 사용하지 않을 때는 0으로 축소되고, 이 상태에서 다시 가동하는 경우 최대 5분이 소요될 수 있다. 이 부분이 애플리케이션의 작동에 영향을 미칠 수 있으므로 리소스에 의존하는 애플리케이션을 실행하기 전에 해당 리소스가 가용 상태인지 확인해야 한다. 컴퓨팅 타깃을 선택할 때는 모델을 학습시키는 데 필요한 리소스를 고려해야 한다. 복잡한 모델은 애저의 컴퓨팅 옵션 대부분을 지원하는(가용 할당량에 따라 다름) 애저의 GPU 지원을 활용할 수 있다.

학습 컴퓨팅 리소스를 설정한 다음에는 학습 데이터 집합을 선택한다. 자체 데이터일 수도 있고, 마이크로소프트 샘플 중 하나일 수도 있다. 로컬 파일, 애저에 이미 저장된 데이터, 웹, 또는 등록된 공개 데이터 집합(정부 정보인 경우가 많음)에서 맞춤형 데이터 집합을 구성할 수 있다.


애저 머신러닝 디자이너에서 데이터 사용

디자이너에 있는 툴을 통해 사용 중인 데이터 집합을 탐색하면서 구축하려는 모델에 맞는 소스인지 확인할 수 있다. 캔버스에 데이터 소스를 올리고 모듈을 끌어와서 연결해 학습 데이터를 처리할 수 있다. 예를 들어 충분한 데이터가 포함되지 않은 열을 제거하거나 누락된 데이터를 정리한다. 이렇게 끌어와서 연결하는 과정은 파워 플랫폼(Power Platform)과 같은 로우 코드 툴을 사용하는 방법과 상당히 흡사하다. 차이점은 자체 모듈을 사용할 수 있다는 것이다.

데이터를 처리한 후, 모델을 학습시키기 위한 모듈을 선택할 수 있다. 마이크로소프트는 일반적인 알고리즘, 그리고 학습과 테스트를 위해 데이터 집합을 분할하기 위한 툴을 제공한다. 

학습을 거친 후 나온 결과 모델을 다른 모듈을 사용해 채점할 수 있다. 점수는 평가 모듈로 전달되므로 알고리즘의 얼마나 잘 작동했는지를 볼 수 있다. 결과를 해석하기 위해서는 생성된 오차의 유형을 이해할 수 있는 얼마간의 통계 지식이 필요하지만 오류 값은 작을수록 좋다. 자체 파이썬과 R 코드를 가져올 수 있으므로 준비된 알고리즘을 꼭 사용할 필요는 없다.

학습되고 테스트된 모델은 신속하게 추론(Inferencing) 파이프라인으로 변환해 애플리케이션에서 사용하도록 준비할 수 있다. 이렇게 하면 모델에 입력 및 출력 REST API가 추가되어 코드에 사용할 준비가 된다. 이후 결과 모델이 AKS 추론 클러스터에 즉시 사용 가능한 컨테이너 형태로 배포된다.


애저에 맡기기, 자동화된 머신러닝

많은 경우, 개발 작업은 그다지 많이 필요하지 않다. 마이크로소프트는 마이크로소프트 리서치의 연구 결과를 바탕으로 한 자동화된 머신러닝(Automated ML) 옵션을 최근 공개했다. 자동화된 머신러닝의 경우 애저가 액세스할 수 있는 데이터 집합으로 시작한다. 이 데이터 집합은 테이블 형태의 데이터여야 한다. 

자동화된 머신러닝은 분류, 회귀, 예측의 세 가지 모델 유형에 맞는다. 데이터를 제공하고 모델 유형을 선택하면 툴이 데이터에서 자동으로 스키마를 생성한다. 이 스키마를 사용해 특정 데이터 필드를 켜거나 끄면서 모델을 구축하고 테스트하기 위한 실험을 만들 수 있다.

자동화된 머신러닝이 여러 모델을 만들고 순위를 지정하면 이를 조사해 당면한 문제에 가장 적합한 모델을 결정하면 된다. 원하는 모델을 찾았으면 파워 BI와 같은 툴에서 사용 가능한 입력 및 출력 단계를 신속하게 서비스로 추가할 수 있다.

많은 유형의 비즈니스 문제에서 예측 도구로서 머신러닝의 중요성이 높아지는 가운데 애저 머신러닝 디자이너는 훨씬 더 폭넓은 대상에 머신러닝을 적용할 수 있게 해준다. 데이터가 있다면 최소한의 데이터 과학 전문 지식으로 분석 모델과 예측 모델을 모두 구축할 수 있다. 새로운 자동화된 머신러닝 서비스를 사용하면 데이터에서 서비스로, 노코드(no-code) 분석으로 쉽게 이동할 수 있다. editor@itworld.co.kr 


X