Tech for good

[Microsoft Azure AutoML 핸즈온] Azure Machine Learning에서 자동화된 기계 학습 사용 본문

IT/Cloud

[Microsoft Azure AutoML 핸즈온] Azure Machine Learning에서 자동화된 기계 학습 사용

Diana Kang 2022. 1. 5. 00:52

안녕하세요. 오늘은 Azure Machine Learning로 자동화된 기계 학습(Auto ML)을 사용하는 방법에 대해 알아보겠습니다.

 

 

아래의 문서를 참고하여 작성하였습니다.

https://docs.microsoft.com/ko-kr/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=AI-MVP-5003937 

 

Azure Machine Learning에서 시각적 도구를 사용하여 기계 학습 모델 만들기 - Learn

Azure Machine Learning에서 시각적 도구를 사용하여 기계 학습 모델 만들기

docs.microsoft.com


 

# 001

 

1. 소개

Machine Learning(기계학습; 머신러닝)은 대부분의 인공지능 솔루션의 토대가 되며, 이는 수집한 이전 데이터를 사용하여 예측 모델을 학습시키는 것부터 시작합니다. 'Azure Machine Learning'은 기계 학습 모델을 학습하고 관리하는 데 사용할 수 있는 클라우드 서비스입니다. 

 

오늘의 학습목표는 아래와 같습니다.

  • 다양한 종류의 기계학습 모델을 식별할 수 있습니다.
  • Azure Machine Learning의 자동화된 기계 학습 기능을 사용하여 예측 모델을 학습시키고 배포할 수 있습니다. 

 

이번 모듈에 본격적으로 들어가기 앞서, Microsoft Azure 구독을 먼저 생성해야 합니다. 구독이 아직 없다면 https://azure.microsoft.com에서 무료 체험 계정을 만드실 수 있습니다. 

 

 


2.  기계학습(Machine Learning; 머신러닝)이란 무엇인가요?

 

# 002

 

 

여기 Adventure Works Cycles라는 자전거 대여 서비스 기업이 있습니다. 이 회사는 자전거를 사용할 수 있도록 하기 위해 이전 데이터를 사용하여 일별 자전거 대여 수요를 예측하는 모델을 학습시키려고 합니다. 

이를 위해 특정 일에 대한 정보(요일, 예상 날씨 조건 등)을 입력으로 받은 후, 예상되는 대여 수를 출력으로 예측하는 기계학습 모델을 만들 수 있습니다.

 

2.1. 기계학습의 분류

# 003 (출처: 생활코딩; 클릭 시 이동)

 

 

2.2. 지도학습(Supervised Learning)

# 004

 

 

  • 지도학습이란 과거의 데이터를 학습하여 미지의 데이터를 추측하는 것입니다.
  • 원인(독립변수) - 결과(종속변수)로 이루어져 있습니다. 
  • 모델: 온도 * 2 = 대여량

 


  1. 회귀(Regression)의 사례들

# 005 (출처: 생활코딩; 클릭 시 링크 이동)

 

 

2. 분류(Classification)의 사례들

# 006 (출처: 생활코딩; 클릭 시 링크 이동)

 

2.3. Azure Machine Learning

효과적인 기계 학습 모델을 학습시키고 배포하려면 시간과 리소스가 많이 요구됩니다. Azure Machine Learning은 일부 태스크를 간소화하며, 데이터를 준비하고, 모델을 학습시키고, 예측 서비스를 배포하는 데 걸리는 시간을 단축하는 클라우드 기반 서비스입니다. 그럼 이제 본격적으로 Azure Machine Learning과 AutoML(자동화된 기계학습)에 대해 알아봅시다! 

 

 


3.  Azure Machine Learning 작업 영역 만들기

데이터 과학자는 데이터를 탐색 및 전처리하고, 다양한 유형의 모델 학습 알고리즘을 사용하여 정확한 모델을 생성하는 데 많은 노력을 기울입니다. 하지만 이러한 작업은 시간이 많이 걸리며 컴퓨팅 비용 또한 많이 듭니다. 

Azure Machine Learning은 Azure에서 기계 학습 솔루션을 빌드하고 운영하기 위한 클라우드 기반 플랫폼입니다. Azure Machine Learning을 활용하면 학습 모델과 관련하여 많은 시간이 소요되는 태스크를 자동화하여 데이터 과학자가 효율성을 높일 수 있도록 지원하며, 실제로 사용되는 경우에만 비용을 발생시키며 대량의 데이터를 효과적으로 처리하도록 확장되는 클라우드 기반 컴퓨팅 리소스를 사용할 수 있습니다. 

 

3.1. Azure Machine Learning  작업 영역 만들기

Azure Machine Learning을 사용하려면 Azure 구독에서 '작업 영역'을 만듭니다. 그러면 이 작업 영역 내에서 데이터, 컴퓨팅 리소스, 코드, 모델 및 기계 학습 워크로드와 관련된 기타 아티팩트를 관리할 수 있습니다. 작업 영역을 만드는 순서는 아래와 같습니다. 

 

  1. Azure 구독과 연결된 Microsoft 자격 증명을 사용하여 Azure Portal에 로그인한 후, + 리소스 만들기 를 선택합니다.

# 009

2. ‘Machine Learning’을 검색하고, 아래의 설정을 포함하여 새 Machine Learning 리소스를 만듭니다

# 007
# 008

만들기를 클릭합니다. 

# 009

먼저 적합한 구독모델을 선택해주세요. 저는 무료체험 권한을 다 사용하였기 때문에, 종량제 구독모델을 선택하였습니다.

 

 

# 010

구독 모델을 선택한 후에는 리소스 그룹을 새로 만들어줍니다. 

# 011

원하시는 리소스 그룹 이름을 입력하신 후, 확인 버튼을 눌러주세요. 

 

# 012

  • 작업 영역 이름
    • 고유한 작업 영역 이름을 입력해주세요. (저의 경우에는 이니셜을 따서 yjautoml로 입력하였습니다.)
  • 지역
    • 한국 중부로 선택해주세요. (다른 국가나 지역에 계신 경우에는 근접한 지역을 선택해주시면 됩니다.)
  • 스토리지 계정
  • 키 자격 증명 모음
  • Application Insights
  • 컨테이너 레지스트리: 없음 (처음으로 컨테이너에 모델을 배포할 때 자동으로 만들어집니다.)
    • 그외 설정들은 기본값을 그대로 사용합니다. 

# 013

정보를 다 입력한 후에는 '검토 + 만들기' 버튼을 클릭합니다. 

 

# 014

유효성 검사가 통과되면, '만들기' 버튼을 클릭합니다.

 

# 015

작업 영역이 배포될 때까지 잠시 기다립니다. 

 

# 016

배포가 성공적으로 되면 '리소스 이동'을 클릭합니다. 

 

# 017

 

그 다음 위에서 생성했던 yjautoml이라는 작업영역의 개요 페이지에서 

Azure Machine Learning Studio 시작하기를 클릭합니다. 

 

* 계정이 로그아웃된 경우, Microsoft 계정을 사용하여 Azure Machine Learning Studio에 다시 로그인합니다. 

 

# 018

처음 접속한 경우에는 x를 눌러 '둘러보기'를 스킵합니다. 

 

# 019

 

 

Microsoft Azure Machine Learning Studio 메인 홈입니다.

상단에 Azure Machine Learning Stutio의 대표적인 서비스 3가지(Notebooks, 자동화된 ML, 디자이너)가 있습니다. 

 

  • Notebooks
    • Python SDK를 사용하여 코딩하고 샘플 실험을 실행합니다.
  • 자동화된 ML
    • 타겟 메트릭을 사용하여 모델을 자동으로 학습하고 튜닝합니다. 
  • 디자이너
    • 드래그 앤 드롭으로 데이터 준비에서 모델 배포까지 실행합니다. 

 

# 020

참고로 Azure Machine Learning Studio에서 왼쪽 상단에 있는 ☰ 아이콘을 클릭하여 열고 닫으면 다양한 페이지를 확인할 수 있습니다.

 

* 작업 영역의 경우 Azure Portal을 사용하여 관리할 수도 있지만, Azure Machine Learning Studio을 활용하면 더욱 편한 사용자 인터페이스를 제공받을 수 있습니다.  

 

이렇게 Azure Machine Learning 작업 영역을 생성하고나면, 머신러닝 솔루션을 만드는 데 필요한 다양한 자산 및 리소스를 관리할 수 있습니다. 

 

 


4.  컴퓨팅 리소스 만들기

Azure Machine Learning 작업 영역을 만든 후에는, 이 작업 영역을 사용하여 기계 학습 솔루션을 만드는 데 필요한 다양한 자산 및 리소스를 관리할 수 있습니다. 

핵심은 Azure Machine Learning이 머신러닝 모델을 학습시키고 관리하기 위한 플랫폼이므로, 학습 프로세스를 실행하기 위한 컴퓨팅이 필요하다는 사실입니다. 

 

4.1. 컴퓨팅 대상 만들기

컴퓨팅 대상은 모델 학습 및 데이터 탐색 프로세스를 실행할 수 있는 클라우드 기반 리소스입니다. 

Azure Machine Learning Studio에서 관리 아래에 있는 컴퓨팅 페이지를 확인합니다. 

# 021

 

해당 페이지는 데이터 과학 관련 활동을 위해 컴퓨팅 대상을 관리하는 곳입니다. 아래 네 가지 종류의 컴퓨팅 리소스를 만들 수 있습니다.

  • 컴퓨팅 인스턴스: 데이터 과학자가 데이터 및 모델을 작업하는 데 사용할 수 있는 개발 워크스테이션입니다. 
  • 컴퓨팅 클러스터: 실험 코드의 주문형 처리를 지원하는 확장 가능한 가상 머신 클러스터입니다.
  • 유추 클러스터: 학습된 모델을 사용하는 예측 서비스의 배포 대상입니다.
  • 연결된 컴퓨팅: Virtual Machines 또는 Azure Databricks 클러스터와 같은 기존 Azure 컴퓨팅 리소스에 연결합니다. 

 

4.1.1. 컴퓨팅 인스턴스 생성

#022

 

관리 아래에 있는 > 컴퓨팅 페이지를 열어 컴퓨팅 인스턴스 탭을 클릭한 후, + 새로 만들기를 클릭합니다. 

 

컴퓨팅 인스턴스: 데이터 과학자가 데이터 및 모델을 작업하는데 사용할 수 있는 개발 워크스테이션입니다. 

 

# 023

 

컴퓨팅 인스턴스 탭에서 다음 설정을 사용하여 새 컴퓨팅 인스턴스를 추가합니다. 이 인스턴스를 모델을 테스트할 워크스테이션로 사용합니다. 

  • 컴퓨팅 이름: 고유한 이름을 입력
  • 가상 머신 유형: CPU
  • 가상 머신 크기:
    • 모든 옵션에서 선택
    • Standard_DS11_v2를 검색하고 선택
    • (테스트 용이므로 낮은 사양을 선택해도 되고, 권장 옵션을 선택해도 됩니다.)

위 조건을 설정한 후,  다음 : 고급 설정 버튼을 클릭합니다.

 

 

# 024

고급 설정의 경우 따로 구성할 게 없으니, 만들기 버튼을 눌러줍니다.

 

 

# 025

4.1.2. 컴퓨팅 클러스터 생성

 

컴퓨팅 인스턴스가 생성되는 동안 컴퓨팅 클러스터 탭으로 전환하고 다음 설정을 사용하여 새 컴퓨팅 클러스터를 추가합니다. 이를 사용하여 머신러닝 모델을 학습합니다.

 

# 026

 

컴퓨팅 클러스터: 실험 코드의 주문형 처리를 지원하는 확장 가능한 가상 머신 클러스터입니다.

 

 

# 027

  • 위치: 작업 영역과 동일한 위치를 선택합니다. 해당 위치가 나열되어 있지 않으면 가장 가까운 위치를 선택합니다.
  • 가상 머신 우선 순위: 전용
  • 가상 머신 유형: CPU
  • 가상 머신 크기:
    • 모든 옵션에서 선택 선택
    • Standard_DS11_v2 검색 후 선택

 

 

# 028

 

  • 컴퓨팅 이름: 고유한 이름 입력
  • 최소 노드 수: 2
  • 최대 노드 수: 2
  • 스케일 다운 전 유휴 시간(초): 120
  • SSH 액세스 사용: 선택 안함

 

컴퓨팅 대상은 만들어지는 데 시간이 좀 걸립니다. 그동안 다른 컴퓨팅 탭을 살펴보면 좋을 거 같습니다:)

 

 

4.1.3. 유추 클러스터 살펴보기

# 029

 

유추 클러스터: 학습된 모델을 사용하는 예측 서비스의 배포 대상입니다.

 

4.1.4. 연결된 컴퓨팅 살펴보기

# 030

 

연결된 컴퓨팅: Virtual Machines 또는 Azure Databricks 클러스터와 같은 기존 Azure 컴퓨팅 리소스에 연결합니다.

 


 

 

 

# 031
# 032

 

다른 컴퓨팅 탭을 살펴보는 동안, 이전에 만들었던 컴퓨팅 인스턴스컴퓨팅 클러스터가 모두 만들어졌습니다. 

 

 


5.  데이터 살펴보기

머신러닝 모델은 기존 데이터로 학습시켜야 합니다. 저희는 '이전 자전거 대여 세부 정보'를 포함하는 데이터 세트를 사용하여 계절 및 기상 특성에 따라 지정된 날짜에 예상되는 자전거 대여 수를 예측하는 모델을 학습시킬 것입니다.

 

 

5.1. 데이터 세트 만들기

Azure Machine Learning에서 모델 학습 및 기타 작업의 데이터는 주로 데이터 세트라는 개체에 캡슐화됩니다.

 

# 033

 

웹 브라우저에서 https://aka.ms/bike-rentals 에 접속해 쉼표로 구분된 데이터(CSV)를 확인합니다.

그런 다음 이 데이터를 daily-bike-share.csv 라는 로컬 파일로 저장합니다(저장 위치는 상관없습니다).

 

저는 데이터를 보여드리고 싶어 다운받았으나, 여러분은 굳이 다운받지 않으셔도 됩니다.

 

# 034

 

자산 > 데이터 세트에서 '+데이터 세트 만들기' 옆의 드랍다운 메뉴를 클릭한 후, '웹 파일에서'를 선택합니다.

 

'로컬 파일에서'를 선택하신 후, 위에서 다운 받은 daily-bike-share.csv를 선택하셔도 됩니다.

 

# 035

 

  • 기본 정보:
    • 웹 URL: https://aka.ms/bike-rentals
    • 이름: bike-rentals
    • 데이터 세트 형식: 표 형식
    • 설명: 자전거 대여 데이터
    • 데이터 유효성 검사 건너뛰기: ‘선택하지 않음’

 

# 036
# 037

 

  • 설정 및 미리 보기:
    • 파일 형식: 구분 기호로 분리됨
    • 구분 기호: 쉼표
    • 인코딩: UTF-8
    • 열 헤더: 첫 번째 파일에만 헤더가 있음
    • 행 건너뛰기: 없음
    • 데이터 세트에 여러 줄 데이터가 포함되어 있음: 선택하지 마세요.

 

 

# 038
# 039

  • 스키마:
    • Path 이외의 모든 열 포함
    • 자동으로 검색된 형식 검토

 

# 040

  • 세부 정보 확인:
    • 만든 후 데이터 세트 프로파일링 체크 해제
    • 만들기 클릭

 

# 041

 

데이터 세트를 만든 후에는 bike-rentals를 클릭하여 연 후, 한 번 살펴봅니다.

 

# 042

 

세부 정보 탭입니다.

 

# 043

사용 탭에서는 데이터를 불러올 수 있는 코드를 확인할 수 있습니다.

 

# 044

탐색  - 미리보기에서는 데이터 샘플을 확인할 수 있습니다. 이 데이터에는 자전거 대여에 대한 이전 피처 및 레이블이 포함되어 있습니다.

 

# 045

탐색  - 프로필에서는 다양한 데이터의 특성을 살펴보실 수 있습니다. 

 

 


6.  기계 학습 모델 학습

Azure Machine Learning에서는 클라우드 컴퓨팅의 확장성을 활용하여 데이터에 가장 적합한 지도학습 머신러닝 모델을 찾기 위해 여러 전처리 기술과 모델 학습 알고리즘을 자동으로 시도하는 자동화된 Machine Learning 기능이 포함되어 있습니다. 

 

Azure Machine Learning의 자동화된 Machine Learning 기능은 지도학습 머신러닝 모델, 즉 학습 데이터가 알려진 레이블 값을 포함하는 모델을 지원합니다. 자동화된 Machine Learning을 사용하여 다음에 대한 모델을 학습시킬 수 있습니다.

  • 분류(범주 또는 클래스 예측)
  • 회귀(숫자 값 예측)
  • 시계열 예측(시계열 요소를 사용한 회귀를 통해 미래 시점의 숫자 값 예측 가능)

 

6.1. 자동화된 Machine Learning 실험 실행

Azure Machine Learning에서 실행하는 작업을 실험이라고 합니다. 자동화된 기계 학습을 활용하여 자전거 대여를 예측하는 회귀 모델을 학습시키는 실험을 실행하려면 다음 단계를 수행합니다.

# 046

(작성자) '자동화된 ML'에서 '새 자동화된 ML 실행'을 선택합니다. 

 

6.1.1. 데이터 세트 선택

# 047

  • 데이터 세트 선택:
    • 데이터 세트: bike-rentals

이전에 만들어놓은 데이터 세트인 bike-rentals를 선택한 후, 다음을 클릭한다. 

 

 

6.1.2. 실행 구성

  • 실행 구성:
    • 새 실험 이름: mslearn-bike-rental
    • 대상 열: rentals (예측하기 위해 모델을 학습시키는 레이블)
    • 컴퓨팅 클러스터 선택: 이전에 만든 컴퓨팅 클러스터

# 048

새 실험 이름을 지정해줍니다. 

 

# 049

대상 열은 예측하기 위해 모델을 학습시키는 레이블입니다. 여기서는 rentals를 선택합니다. 

 

# 050
# 051
# 052

Azure ML 컴퓨팅 클러스터는 이전에 만들어 놓은 컴퓨팅 클러스터인 yjcluster0106을 선택합니다. 

 

 

6.1.3. 작업 및 설정 선택

# 053

기계 학습 작업 유형으로 회귀(연속 숫자 값 예측)를 선택합니다.

 

# 054

작업 유형 아래에 추가 구성 설정 보기  기능화 설정 보기 설정이 표시됩니다. 먼저, 추가 구성 보기를 클릭해보겠습니다.

 

# 055

 

회귀의 경우, '실제 값 vs 모델이 예측하는 값'의 차이를 통해 평가를 진행합니다.

여기서는 주 메트릭으로 '정규화된 제곱 평균 오차'를 선택합니다. 

 

 

 

# 056

최적 모델 설명 체크합니다. 이 옵션을 선택하면 자동화된 기계 학습 기능이 최적 모델의 피처(feature) 중요도를 계산합니다. 이를 통해 예측된 레이블에 각 피처가 미치는 영향을 확인할 수 있습니다.

 

 

# 057

 

차단된 알고리즘으로 RandomForest  LightGBM 이외의 모든 알고리즘을 차단합니다. 모델을 많이 사용할 수록 학습 시간이 오래 걸리기 때문입니다. UI상으로 RandomForest와 LightGBM을 제외한 모든 알고리즘을 클릭하여 추가하면 됩니다. 

 

# 058

  • 종료 기준:
    • 학습 작업 시간(시간): 0.5 - 최대 30분 후에 실험이 종료됩니다.
    • 메트릭 점수 임계값: 0.08 - 모델이 정규화된 제곱 평균 오차 메트릭 점수 0.08 이하에 도달하는 경우, 실험이 종료됩니다.
  • 동시성
    • 최대 동시 반복 횟수: 2

 

위와 같이 세팅 후, 저장을 누릅니다.

 

 

# 059

'기능화 설정 보기'를 클릭합니다. 

# 060

 

기능화 사용의 경우, 학습 전에 자동으로 피처를 전처리하는 기능입니다. 기능화 사용을 선택합니다. 

 

# 061

'저장' 버튼을 눌러줍니다.

 

# 062

다음을 클릭합니다.

 

# 063

마침을 클릭합니다.

 

# 064

 

자동화된 ML 실행 세부 정보의 제출을 완료하면, 자동으로 시작됩니다.

 

# 065

실행 상태가 '준비 중'에서 '실행 중'으로 변경될 때까지 기다립니다.

 

# 066

상태가 완료됨으로 변경될때까지, 데이터 가드 레일 탭을 살펴봅니다.

 

# 067

 

실행 상태가 '실행 중'으로 변경된 후, 모델 탭으로 이동하면 만들어진 알고리즘들이 나타나기 시작합니다.

 

학습 알고리즘과 전처리 단계의 가능한 각 조합이 시도되고, 결과 모델의 성능이 평가되는 것을 관측합니다.
이 페이지는 주기적으로 새로고침되지만, 수동으로 ↻ 새로 고침을 선택할 수도 있습니다.
클러스터 노드를 초기화해야 학습을 시작할 수 있으므로, 모델이 표시되는 데는 약 10분 정도 소요될 수 있습니다. 

시간이 지남에 따라, 모델이 점점 늘어나고 있는 것을 확인하실 수 있습니다. 

 

# 068

 

실험이 완료될 때까지 기다립니다. 시간이 걸릴 수 있으므로 지금 잠깐 쉬어가는 것이 좋을 수 있습니다.

 

 

 

6.2. 최적 모델 검토

실험을 완료한 후 생성된 최적 모델을 검토할 수 있습니다. 이 경우에는 종료 조건을 사용하여 실험을 중지했습니다. 따라서 실험에서 발견한 "최적" 모델이 가장 적합한 모델이 아니고 이 연습에 허용되는 시간 안에 확인된 최적 모델에 불과할 수 있습니다.

# 069

자동화된 기계 학습 실행의 세부 정보 탭에서 최적 모델 요약을 확인합니다. 

# 070

모델 탭에서 알고리즘 이름을 선택하여 세부 정보를 확인합니다.

 

# 071

최적 모델은 지정한 평가 메트릭에 따라 식별됩니다. 앞서 저희는 주 메트릭으로 정규화된 제곱 평균 오차를 선택했으므로 이를 확인할 수 있습니다.

 

이 메트릭을 계산하기 위해 학습 프로세스에서는 일부 데이터를 사용하여 모델을 학습시키고, 교차 유효성 검사 라는 기술을 적용하여 학습시킨 모델을 학습되지 않은 데이터로 반복적으로 테스트하고 예측 값을 실제 알려진 값과 비교합니다.

 

예측 값과 실제 값 간 차이(잔차)는 모델의 오차 크기를 나타내며, 이 특정 성능 메트릭은 모든 테스트 사례에서 오차를 제곱하고, 이러한 제곱의 평균을 구한 후 제곱근을 구하는 방식으로 계산됩니다. 이 메트릭은 값이 작을수록 모델이 보다 정확하게 예측한다는 것을 의미합니다.

 

# 072

다른 모든 메트릭 보기를 선택하여 회귀 모델에 가능한 다른 평가 메트릭 값을 확인합니다.

 

# 073

메트릭 탭을 선택하고, predicted_true residuals(잔차)를 추가로 선택합니다. 

 

그런 다음, 예측 값을 참 값과 비교하고 잔차(예측 값과 실제 값의 차이)를 히스토그램으로 표시하여 모델의 성능을 보여 주는 차트를 검토합니다.

# 074

예측 값 및 참 값(Predicted vs. True) 차트는 예측 값이 참 값과 밀접하게 상호 연관되는 대각선 추세를 표시합니다. 점선은 완벽한 모델의 작동 성능을 보여 주며, 모델의 평균 예측 값 줄이 이 점선에 가까울수록 성능이 좋은 것입니다. 꺾은선형 차트 아래의 히스토그램은 참 값의 분포를 보여 줍니다.

 

# 075

잔차 히스토그램 잔차 값 범위의 빈도를 보여 줍니다. 잔차는 모델로 설명할 수 없는 예측 값과 실제 값 간의 차이를 나타냅니다. 즉, 오차를 나타냅니다. 따라서 가장 자주 발생하는 잔차 값은 0 주변에 클러스터링되고(즉, 대부분의 오차는 작음), 오차가 아주 클 가능성은 아주 작습니다.

# 076

다음은 설명 탭을 선택합니다. 설명 ID 옆의 화살표 >>를 클릭하여 설명 목록을 펼칩니다.

설명 ID를 선택하고 오른쪽에서 이전 대시보드 환경 보기 를 선택합니다. 그 후, 전역 중요도 를 선택합니다.

이 차트는 다음과 같이 데이터 세트의 각 피처가 레이블 예측에 영향을 미치는 정도를 보여 줍니다.

 

7.  모델을 서비스로 배포

자동화된 기계 학습을 사용하여 일부 모델을 학습시킨 후에는 클라이언트 애플리케이션에서 사용할 수 있는 최상의 모델을 서비스로 배포할 수 있습니다.

7.1.  예측 서비스로 배포

Azure Machine Learning에서 서비스를 ACI(Azure Container Instances) 또는 AKS(Azure Kubernetes Service) 클러스터로 배포할 수 있습니다. 이 연습에서는 테스트에 적합한 배포 대상인 ACI 서비스를 사용하며, 추론 클러스터를 만들 필요가 없습니다. 

반면, 프로덕션 시나리오의 경우 AKS를 배포하는 것이 좋습니다.  이 경우에는 추론 클러스터 컴퓨팅 대상을 만들어야 합니다. 

 

1) 자동화된 ML 페이지에서 자동화된 기계 학습 실험에 대해 실행을 선택하고, 모델 탭을 클릭하여 알고리즘 이름을 확인합니다.

# 077

 

 

2) 모델 탭에서 배포 단추를 사용하여 다음 설정으로 모델을 배포합니다.

# 078
# 079
# 080

  • 이름: predict-rentals
  • 설명: 자전거 대여 예측
  • 컴퓨팅 형식: Azure Container Instances
  • 인증 사용: 선택됨

 

# 081

배포가 시작될 때까지 대기합니다. 이 작업에는 몇 초 정도 걸릴 수 있습니다. 그런 다음, 모델 요약 섹션에서 predict-rentals 서비스에 대한 배포 상태 를 확인합니다. 이 상태는 실행 중 이어야 합니다. 이 상태가 성공 으로 변경될 때까지 기다립니다. 주기적으로 ↻ 새로 고침 을 선택해야 할 수도 있습니다.

 

 

 

# 082

predict-rentals 서비스에 대한 배포 상태 성공으로 바뀌면, predict-rentals 링크를 클릭합니다.

 

# 083
# 084

 

자동으로 엔드포인트의 > predict-rentals 세부 정보로 이동합니다.

 

 

# 085

 

사용 탭을 선택하고, 다음 정보를 확인합니다. 클라이언트 애플리케이션에서 배포된 서비스를 연결하려면 아래의 정보가 필요합니다.

  • 서비스에 대한 REST 엔드포인트
  • 서비스에 대한 기본 키

 

이 값 옆에 있는 ⧉ 링크를 사용하여 이를 클립보드에 복사할 수 있습니다.

 

# 086

Rest 엔드포인트기본 키를 메모장에 복사해둡니다. 

 

 

7.2.  배포된 서비스 테스트

이제 서비스를 배포했으므로 간단한 코드를 사용하여 테스트할 수 있습니다.

 

# 087

 

브라우저에서 predict-rentals 서비스 페이지의 사용 페이지가 열린 상태에서 새 브라우저 탭을 열고 Azure Machine Learning Studio의 두 번째 인스턴스를 엽니다. 그런 다음, 새 탭에서 Notebooks 페이지(작성자 아래)를 봅니다.

 

# 088

 

'빈 Notebook으로 시작'을 클릭합니다.

 

# 089

다음 설정으로 새 파일을 만듭니다.

  • 파일 위치: Users/사용자 이름
  • 파일 이름: Test-Bikes.ipynb
  • 파일 형식: Notebook(*.ipynb)
  • 이미 있는 경우 덮어쓰기: 선택됨
# 090
 
 
새 Notebook이 만들어지면 이전에 만든 컴퓨팅 인스턴스가 컴퓨팅 상자에서 선택되었는지, 그리고 상태가 실행 중 인지 확인합니다.
 
 
# 091
 
 
Notebook에서 만들어진 사각형 셀에 아래의 코드를 붙여넣어 위와 같이 작성해줍니다.

 

endpoint = 'YOUR_ENDPOINT' #Replace with your endpoint
key = 'YOUR_KEY' #Replace with your key

import json
import requests

#An array of features based on five-day weather forecast
x = [[1,1,2022,1,0,6,0,2,0.344167,0.363625,0.805833,0.160446],
    [2,1,2022,1,0,0,0,2,0.363478,0.353739,0.696087,0.248539],
    [3,1,2022,1,0,1,1,1,0.196364,0.189405,0.437273,0.248309],
    [4,1,2022,1,0,2,1,1,0.2,0.212122,0.590435,0.160296],
    [5,1,2022,1,0,3,1,1,0.226957,0.22927,0.436957,0.1869]]

#Convert the array to JSON format
input_json = json.dumps({"data": x})

#Set the content type and authentication for the request
headers = {"Content-Type":"application/json",
        "Authorization":"Bearer " + key}

#Send the request
response = requests.post(endpoint, input_json, headers=headers)

#If we got a valid response, display the predictions
if response.status_code == 200:
    y = json.loads(response.json())
    print("Predictions:")
    for i in range(len(x)):
        print (" Day: {}. Predicted rentals: {}".format(i+1, max(0, round(y["result"][i]))))
else:
    print(response)
 
 
 
 
# 092

이전에 메모장에 저장해두었던 REST 엔드포인트를 복사하여 YOUR_ENDPOINT를 대체합니다.

기본 키 또한 마찬가지로 복사하여 YOUR_KEY를 대체합니다.

 

 

# 093

 

# 094

 

 

# 095

 

Notebook을 저장한 다음 셀 옆에 있는  단추를 사용하여 코드를 실행합니다. 하루에 예상되는 자전거 대여 수에 대한 예측을 얻을 수 있습니다.

 

# 096

 

5일 기간에 포함된 각 날의 예상 대여 수가 반환되는지 확인합니다. 잘 나오고 있습니다.

 

 


8.  리소스 그룹 삭제

Azure Machine Learning 탐색을 완료한 경우 Azure Machine Learning 작업 영역을 포함하는 리소스 그룹을 삭제할 수 있습니다.

 

 

# 097

 

https://portal.azure.com/#home 로 들어가서 리소스 그룹을 클릭합니다.

 

Microsoft Azure

 

portal.azure.com

 

# 098

 

리소스 그룹 이름을 클릭합니다. 

 

 

# 099

리소스 그룹 삭제를 클릭합니다. 

 

# 100

 

 

삭제하고자 하는 리소스 그룹 이름을 입력한 다음, 삭제를 선택합니다.

 

 

만든 웹 서비스는 Azure Container Instance 에 호스트됩니다. 추가 실험 의사가 없는 경우 불필요한 Azure 사용이 발생하지 않도록 엔드포인트를 삭제해야 합니다. 또한 다시 필요할 때까지 학습 클러스터 및 컴퓨팅 인스턴스 리소스도 중지해야 합니다.

1. Azure Machine Learning Studio의 엔드포인트 탭에서 predict-rentals 엔드포인트를 선택합니다. 그런 다음, 삭제(🗑)를 선택하고 엔드포인트를 삭제할 것인지 확인합니다.

2. 컴퓨팅 페이지의 컴퓨팅 인스턴스 탭에서 컴퓨팅 인스턴스를 선택한 다음 중지 를 선택합니다.

 


지금까지 머신러닝에 대해 알아보고, Azure Machine Learning의 자동화된 기계 학습 기능(AutoML)을 활용하여 예측 모델을 학습시키고 배포하는 방법을 알아보았습니다. 긴 핸즈온 여정에 함께해주셔서 감사합니다 :)