AutoML(자동화된 Machine Learning)이란?
적용 대상: Python SDK azureml v1
자동화된 Machine Learning(자동화된 ML 또는 AutoML이라고도 함)은 시간 소모적이고 반복적인 기계 학습 모델 개발 작업을 자동화하는 프로세스입니다. 데이터 과학자, 분석가 및 개발자는 모델 품질을 유지하면서 확장성, 효율성 및 생산성이 높은 ML 모델을 빌드할 수 있습니다. Azure Machine Learning에서 자동화된 ML은 Microsoft Research 부문의 혁신을 기반으로 합니다.
기존의 기계 학습 모델 개발은 리소스를 많이 사용하므로 수십 개의 모델을 생성하고 비교하는 데 상당한 도메인 지식과 시간이 필요합니다. 자동화된 Machine Learning을 사용하면 프로덕션 준비 ML 모델을 매우 쉽고 효율적으로 얻는 데 걸리는 시간을 단축할 수 있습니다.
Azure Machine Learning에서 AutoML을 사용하는 방법
Azure Machine Learning은 자동화된 ML 작업을 위해 다음 두 가지 환경을 제공합니다. 각 환경에서 사용 가능한 기능(v1)을 이해하려면 다음 섹션을 참조하세요.
코드 경험이 있는 고객의 경우 Azure Machine Learning Python SDK. 자습서: 자동화된 Machine Learning을 사용하여 택시 요금 예측(v1)을 시작합니다.
코드가 제한적이거나 코드가 없는 경험 고객의 경우 https://ml.azure.com에 있는 Azure Machine Learning 스튜디오. 다음 자습서를 참조하여 시작하세요.
실험 설정
자동화된 ML 실험은 다음 설정을 사용하여 구성할 수 있습니다.
Python SDK | 스튜디오 웹 환경 | |
---|---|---|
학습/유효성 검사 세트로 데이터 분할 | ||
ML 작업 지원: 분류, 회귀 및 예측 | ||
컴퓨터 비전 작업 지원: 이미지 분류, 개체 검색 및 인스턴스 구분 | ||
기본 메트릭 기반 최적화 | ||
Azure Machine Learning 컴퓨팅을 컴퓨팅 대상으로 지원 | ||
예측 구간, 대상 지연 시간 및 롤링 기간 구성 | ||
종료 조건 설정 | ||
동시 반복 설정 | ||
열 삭제 | ||
알고리즘 차단 | ||
교차 유효성 검사 | ||
Azure Databricks 클러스터에 대한 학습 지원 | ||
엔지니어링된 기능 이름 보기 | ||
기능화 요약 | ||
휴일 기능화 | ||
로그 파일의 세부 정보 표시 수준 |
모델 설정
다음 설정은 자동화된 ML 실험의 결과로 최상의 모델에 적용할 수 있습니다.
Python SDK | 스튜디오 웹 환경 | |
---|---|---|
최상의 모델 등록, 배포, 설명 가능성 | ||
투표 앙상블 및 스택 앙상블 모델 사용 | ||
기본이 아닌 메트릭에 따라 최상의 모델 표시 | ||
ONNX 모델 호환성 사용/사용 안 함 | ||
모델 테스트 | ✓(미리 보기) |
작업 제어 설정
다음 설정을 사용하여 실험 작업 및 자식 작업을 검토하고 제어할 수 있습니다.
Python SDK | 스튜디오 웹 환경 | |
---|---|---|
작업 요약 테이블 | ||
작업 및 자식 작업 취소 | ||
가드레일 가져오기 | ||
작업 일시 중지 및 다시 시작 |
AutoML을 사용하는 경우: 분류, 회귀, 예측, 컴퓨터 비전 및 NLP
Azure Machine Learning에서 지정한 대상 메트릭을 사용하여 모델을 학습시키고 튜닝하도록 하려면 자동화된 ML을 적용합니다. 자동화된 ML은 기계 학습 모델 개발 프로세스를 보편화하고, 데이터 과학 전문 지식에 관계없이 사용자의 역량을 강화하여 모든 문제에 대해 엔드투엔드 기계 학습 파이프라인을 식별합니다.
업계 전반의 ML 전문가 및 개발자는 자동화된 ML을 사용하여 다음을 수행할 수 있습니다.
- 광범위한 프로그래밍 지식 없이 ML 솔루션 구현
- 시간 및 리소스 절약
- 데이터 과학 모범 사례 활용
- 신속한 문제 해결 제공
분류
분류는 일반적인 기계 학습 작업입니다. 분류는 모델에서 학습 데이터를 사용하여 학습하고, 이러한 학습을 새로운 데이터에 적용하는 지도 학습의 한 유형입니다. Azure Machine Learning은 특히 이러한 작업에 적합한 기능화를 제공합니다(예: 분류를 위한 심층 신경망 텍스트 피처라이저(featurizer)). 기능화(v1) 옵션에 대해 자세히 알아보세요.
분류 모델의 주요 목표는 학습 데이터로부터의 학습을 기반으로 하여 새 데이터가 분류될 범주를 예측하는 것입니다. 일반적인 분류 예로 사기 탐지, 필기 인식 및 개체 검색이 있습니다. 자동화된 ML을 사용하여 분류 모델 만들기(v1)에 대한 자세한 내용 및 예제를 참조하세요.
다음 Python Notebook: 사기 감지, 마케팅 예측및 뉴스 그룹 데이터 분류에서 분류 및 자동화된 기계 학습의 예를 참조하세요.
회귀
분류와 마찬가지로 회귀 작업도 일반적인 지도 학습 작업입니다.
범주별 예측 출력 값인 분류와는 달리 회귀 모델은 독립 예측 변수를 기반으로 하여 숫자 출력 값을 예측합니다. 회귀 분석이 목표는 한 변수가 다른 변수에 미치는 영향을 추정하여 이러한 독립 예측 변수 간의 관계를 설정하는 데 도움을 주는 것입니다. 예를 들어 가스 연비, 안전 등급 등과 같은 기능을 기반으로 하는 자동차 가격이 있습니다. 자동화된 Machine Learning을 사용한 회귀(v1)의 예제를 참조하여 자세히 알아보세요.
다음 Python Notebooks: CPU 성능 예측에서 예측을 위한 회귀 및 자동화된 Machine Learning의 예를 참조하세요.
시계열 예측
예측 빌드는 수익, 재고, 판매 또는 고객 수요에 관계없이 모든 비즈니스의 필수적인 부분입니다. 자동화된 ML을 사용하여 기술과 방법을 결합하고 추천되는 고품질 시계열 예측을 구현할 수 있습니다. 시계열 예측에 대한 자동화된 Machine Learning(v1) 방법 문서를 사용하여 자세히 알아보세요.
자동화된 시계열 실험은 다변량 회귀 분석 문제로 처리됩니다. 이전 시계열 값이 "피벗"되어 다른 예측 변수와 함께 회귀 변수의 추가 차원이 됩니다. 이 방법은 클래식 시계열 방법과 달리 학습 중에 여러 컨텍스트 변수 및 해당 변수 간의 관계를 자연스럽게 통합할 수 있는 장점이 있습니다. 자동화된 ML은 데이터 세트 및 예측 구간의 모든 항목에 대해 종종 내부적으로 분기된 단일 모델을 학습시킵니다. 따라서 모델 매개 변수를 추정하기 위해 더 많은 데이터를 사용할 수 있으며 미확인 계열에 대한 일반화가 가능합니다.
고급 예측 구성은 다음과 같습니다.
- 휴일 검색 및 기능화
- 시계열 및 DNN 학습자(Auto-ARIMA, Prophet, ForecastTCN)
- 그룹화를 통해 많은 모델 지원
- 이동 원본 교차 유효성 검사
- 구성 가능한 지연
- 롤링 기간 집계 기능
예측에 대한 회귀 및 자동화된 Machine Learning의 예제는 판매 예측, 수요 예측 및 GitHub의 일별 활성 사용자 예측 Python Notebook을 참조하세요.
컴퓨터 비전
컴퓨터 비전 작업에 대한 지원을 통해 이미지 분류 및 개체 검색 등의 시나리오에서 이미지 데이터에 대해 학습된 모델을 쉽게 생성할 수 있습니다.
이 기능을 사용하면 다음을 수행할 수 있습니다.
- Azure Machine Learning 데이터 레이블 지정과 원활하게 통합
- 레이블이 지정된 데이터를 사용하여 이미지 모델 생성
- 모델 알고리즘을 지정하고 하이퍼 매개 변수를 튜닝하여 모델 성능을 최적화합니다.
- 결과 모델을 Azure Machine Learning에서 웹 서비스로 다운로드하거나 배포합니다.
- Azure Machine Learning MLOps, ML 파이프라인(v1) 기능을 활용하여 대규모로 운용합니다.
비전 작업을 위한 AutoML 모델 작성은 Azure Machine Learning Python SDK를 통해 지원됩니다. 결과 실험 작업, 모델 및 출력은 Azure Machine Learning 스튜디오 UI에서 액세스할 수 있습니다.
컴퓨터 비전 모델을 위한 AutoML 학습을 설정하는 방법을 알아봅니다.
이미지용 자동화된 ML은 다음과 같은 컴퓨터 비전 작업을 지원합니다.
Task | 설명 |
---|---|
다중 클래스 이미지 분류 | 이미지가 클래스 집합에서 단일 레이블만으로 분류되는 작업입니다. 예를 들어 각 이미지는 '고양이' 또는 '개' 또는 '오리'의 이미지로 분류됩니다. |
다중 레이블 이미지 분류 | 이미지에 레이블 집합의 레이블 하나 이상이 있을 수 있는 작업입니다. 예를 들어 한 이미지에 '고양이' 레이블과 '개' 레이블이 모두 지정될 수 있습니다. |
개체 감지 | 이미지의 개체를 식별하고 경계 상자를 사용하여 각 개체를 찾는 작업입니다. 예를 들어 이미지 안의 모든 개와 고양이를 찾고 각 개체 주위에 경계 상자를 그립니다. |
인스턴스 구분 | 픽셀 수준에서 이미지의 개체를 식별하는 작업으로, 이미지의 각 개체 주위에 다각형을 그립니다. |
NLP: 자연어 처리
자동화된 ML에서 NLP(자연어 처리) 작업에 대한 지원을 통해 텍스트 분류 및 명명된 엔터티 인식 시나리오를 위해 텍스트 데이터에 대해 학습된 모델을 쉽게 생성할 수 있습니다. 자동화된 ML 학습된 NLP 모델 작성은 Azure Machine Learning Python SDK를 통해 지원됩니다. 결과 실험 작업, 모델 및 출력은 Azure Machine Learning 스튜디오 UI에서 액세스할 수 있습니다.
NLP 기능은 다음을 지원합니다.
- 미리 학습된 최신 BERT 모델을 사용하여 엔드투엔드 심층 신경망 NLP 학습
- Azure Machine Learning 데이터 레이블 지정과 원활한 통합
- 레이블이 지정된 데이터를 사용하여 NLP 모델 생성
- 104개 언어를 사용하는 다국어 지원
- Horovod를 사용하여 배포된 학습
NLP 모델을 위한 AutoML 학습을 설정(v1)하는 방법을 알아봅니다.
자동화된 ML 작동 방법
Azure Machine Learning은 학습 중에 다양한 알고리즘과 매개 변수를 시도하는 많은 파이프라인을 동시에 만듭니다. 이 서비스는 기능 선택 항목과 쌍을 이루는 ML 알고리즘을 반복하며, 각 반복에서 학습 점수가 있는 모델이 생성됩니다. 점수가 높을수록 모델이 데이터에 더 "적합"하다고 간주됩니다. 실험에 정의된 종료 조건에 도달하면 중지됩니다.
Azure Machine Learning을 사용하면 다음 단계를 사용하여 자동화된 ML 학습 실험을 설계하고 실행할 수 있습니다.
해결할 ML 문제 식별: 분류, 예측, 회귀 또는 Computer Vision
Python SDK 또는 스튜디오 웹 환경을 사용할지 선택: Python SDK와 스튜디오 웹 환경 간의 패리티에 대해 알아봅니다.
- 제한된 코드 환경 또는 코드리스 환경인 경우 https://ml.azure.com에서 Azure Machine Learning Studio 웹 환경을 사용해 봅니다.
- Python 개발자의 경우 Azure Machine Learning Python SDK(v1)를 확인합니다.
레이블이 지정된 학습 데이터의 원본 및 형식 지정: Numpy 배열 또는 Pandas 데이터 프레임
모델 학습을 위한 컴퓨팅 대상 구성(예: 로컬 컴퓨터, Azure Machine Learning 컴퓨팅, 원격 VM 또는 SDK v1을 사용하는 Azure Databricks)
자동화된 Machine Learning 매개 변수 구성: 여러 모델에 대한 반복 횟수, 서로 다른 모델, 하이퍼 매개 변수 설정, 고급 전처리/기능화 및 가장 적합한 모델을 결정할 때 살펴볼 메트릭을 결정하는 매개 변수입니다.
학습 작업을 제출합니다.
결과 검토
다음 다이어그램에서는 이 프로세스를 보여 줍니다.
작업 중에 수집된 메트릭을 포함한 기록된 작업 정보를 검사할 수도 있습니다. 학습 작업에서는 모델 및 데이터 전처리가 포함된 Python 직렬화 개체(.pkl
파일)가 생성됩니다.
모델 빌드가 자동화되는 동안 중요하거나 관련된 기능이 생성된 모델에 있는 상태를 알아볼 수도 있습니다.
로컬 및 원격 관리형 ML 컴퓨팅 대상에 대한 지침
자동화된 ML의 웹 인터페이스는 항상 원격 컴퓨팅 대상을 사용합니다. 그러나 Python SDK를 사용하는 경우 자동화된 ML 학습을 위해 로컬 컴퓨팅 또는 원격 컴퓨팅 대상을 선택합니다.
- 로컬 컴퓨팅: 학습이 로컬 노트북 또는 VM 컴퓨팅에서 수행됩니다.
- 원격 컴퓨팅: 학습이 Machine Learning 컴퓨팅 클러스터에서 수행됩니다.
컴퓨팅 대상 선택
컴퓨팅 대상을 선택하는 경우 고려해야 하는 요소는 다음과 같습니다.
- 로컬 컴퓨팅 선택: 작은 데이터와 짧은 학습을 사용하는 초기 검색 또는 데모(예: 자식 작업당 몇 초 또는 몇 분)에 대한 시나리오인 경우 로컬 컴퓨터에 대한 학습이 더 적합할 수 있습니다. 설치 시간이 없으며, 인프라 리소스(PC 또는 VM)를 직접 사용할 수 있습니다.
- 원격 ML 컴퓨팅 클러스터 선택: 더 긴 학습이 필요한 모델을 생성하는 프로덕션 교육처럼 대규모 데이터세트를 사용하여 교육하는 경우,
AutoML
이 클러스터 노드 간에 학습을 병렬화하므로 원격 컴퓨팅은 엔드투엔드 시간 성능을 훨씬 더 향상할 수 있습니다. 원격 컴퓨팅에서 내부 인프라의 시작 시간은 자식 작업당 약 1.5분, VM이 아직 가동되지 않은 경우 클러스터 인프라의 시간이 추가됩니다.
장단점
로컬 및 원격을 사용하도록 선택하는 경우 다음과 같은 장단점을 고려합니다.
장점 | 단점 | |
---|---|---|
로컬 컴퓨팅 대상 | ||
원격 ML 컴퓨팅 클러스터 |
기능 가용성
아래 표와 같이 원격 컴퓨팅을 사용하는 경우 더 많은 기능을 사용할 수 있습니다.
기능 | 원격 | 로컬 |
---|---|---|
데이터 스트리밍(큰 데이터 지원, 최대 100GB) | ||
DNN-BERT 기반 텍스트 기능화 및 학습 | ||
기본 제공 GPU 지원(학습 및 추론) | ||
이미지 분류 및 레이블 지정 지원 | ||
예측을 위한 Auto-ARIMA, Prophet 및 ForecastTCN 모델 | ||
동시에 여러 작업/반복 | ||
AutoML 스튜디오 웹 환경 UI에서 해석력 있는 모델 만들기 | ||
스튜디오 웹 환경 UI에서 기능 엔지니어링 사용자 지정 | ||
Azure Machine Learning 하이퍼 매개 변수 튜닝 | ||
Azure Machine Learning 파이프라인 워크플로 지원 | ||
작업 계속 | ||
예측 | ||
Notebook에서 실험 만들기 및 실행 | ||
UI에서 실험 정보와 메트릭 등록 및 시각화 | ||
데이터 가드 레일 |
학습, 유효성 검사 및 테스트 데이터
자동화된 ML을 사용하여 ML 모델을 학습시키기 위한 학습 데이터를 제공하고, 수행할 모델 유효성 검사 유형을 지정할 수 있습니다. 자동화된 ML은 학습의 일부로 모델 유효성 검사를 수행합니다. 즉, 자동화된 ML은 유효성 검사 데이터를 사용하여 적용된 알고리즘에 따라 모델 하이퍼 매개 변수를 튜닝하고 학습 데이터에 가장 적합한 조합을 찾습니다. 그러나 튜닝을 반복할 때마다 동일한 유효성 검사 데이터가 사용되면 모델이 계속 개선되어 유효성 검사 데이터에 맞추기 때문에 모델 평가 바이어스가 도입됩니다.
이러한 바이어스가 최종 권장 모델에 적용되지 않는지 확인하기 위해 자동화된 ML은 테스트 데이터를 사용하여 실험이 끝날 때 자동화된 ML이 권장하는 최종 모델을 평가할 수 있도록 지원합니다. AutoML 실험 구성의 일부로 테스트 데이터를 제공하는 경우 이 권장 모델은 기본적으로 실험이 끝날 때 테스트됩니다(미리 보기).
Important
테스트 데이터 세트를 사용한 모델 테스트를 통해 생성된 모델을 평가하는 기능은 미리 보기입니다. 이 기능은 실험적인 미리 보기 기능으로, 언제든지 변경할 수 있습니다.
SDK(v1) 또는 Azure Machine Learning 스튜디오를 통해 테스트 데이터를 사용하도록 AutoML 실험을 구성(미리 보기)하는 방법을 알아봅니다.
자체 테스트 데이터를 제공하거나 학습 데이터의 일부를 따로 설정하여 자식 작업의 모델을 포함한 기존의 자동화된 ML 모델(미리 보기)(v1)을 테스트할 수도 있습니다.
기능 엔지니어링
기능 엔지니어링은 데이터에 대한 도메인 정보를 사용하여 ML 알고리즘의 기능을 개선하는 데 도움이 되는 기능을 만드는 프로세스입니다. Azure Machine Learning에서 확장 및 표준화 기술이 기능 엔지니어링을 용이하게 하기 위해 적용됩니다. 이러한 기술 및 기능 엔지니어링을 통칭하여 기능화라고 합니다.
자동화된 Machine Learning 실험의 경우 기능화가 자동으로 적용되지만 데이터에 따라 사용자 지정할 수도 있습니다. 포함된 기능화(v1)와 AutoML이 모델의 과잉 맞춤 및 불균형 데이터를 방지하는 방법에 대해 자세히 알아봅니다.
참고 항목
자동화된 Machine Learning 기능화 단계(기능 정규화, 누락된 데이터 처리, 텍스트를 숫자로 변환 등)는 기본 모델의 일부가 됩니다. 예측에 모델을 사용하는 경우 학습 중에 적용되는 동일한 기능화 단계가 입력 데이터에 자동으로 적용됩니다.
기능화 사용자 지정
인코딩 및 변환과 같은 추가 기능 엔지니어링 기술을 사용할 수도 있습니다.
다음을 사용하여 이 설정을 사용하도록 설정합니다.
Azure Machine Learning 스튜디오: 이러한 (v1) 단계를 사용하여 추가 구성 보기 섹션에서 자동 기능화를 사용하도록 설정합니다.
Python SDK: AutoMLConfig 개체에서
"feauturization": 'auto' / 'off' / 'FeaturizationConfig'
를 지정합니다. 기능화 사용(v1)에 대해 자세히 알아봅니다.
앙상블 모델
자동화된 Machine Learning은 기본적으로 사용하도록 설정되는 앙상블 모델을 지원합니다. 앙상블 학습은 단일 모델을 사용하는 대신 여러 모델을 결합하여 기계 학습 결과와 예측 성능을 향상시킵니다. 앙상블 반복은 작업의 최종 반복으로 나타납니다. 자동화된 Machine Learning은 모델 결합을 위해 투표 및 스택 앙상블 방법을 모두 사용합니다.
- 투표: 예측된 클래스 확률(분류 작업의 경우) 또는 예측된 회귀 목표(회귀 작업의 경우)의 가중 평균을 기반으로 하여 예측합니다.
- 스택: 스택은 다른 형식의 모델을 결합하고 개별 모델의 출력을 기반으로 하여 메타 모델을 학습시킵니다. 현재 기본 메타 모델은 분류 작업의 경우 LogisticRegression이고 회귀/예측 작업의 경우 ElasticNet입니다.
정렬된 앙상블 초기화를 사용하는 Caruana 앙상블 선택 알고리즘은 앙상블 내에서 사용할 모델을 결정하는 데 사용됩니다. 높은 수준에서 이 알고리즘은 개별 점수가 가장 높은 최대 5개의 모델을 사용하여 앙상블을 초기화하고, 초기 앙상블 저하를 방지하기 위해 이러한 모델이 가장 높은 점수의 5% 임계값 내에 있는지 확인합니다. 그런 다음, 각 앙상블 반복마다 새 모델이 기존 앙상블에 추가되고 결과 점수가 계산됩니다. 새 모델에서 기존 앙상블 점수가 향상되면 새 모델을 포함하도록 앙상블이 업데이트됩니다.
자동화된 Machine Learning에서 기본 앙상블 설정을 변경하는 방법은 방법(v1) 문서를 참조하세요.
AutoML 및 ONNX
Azure Machine Learning을 사용하면 자동화된 ML을 사용하여 Python 모델을 빌드하고 ONNX 형식으로 변환할 수 있습니다. 모델이 ONNX 형식이면 다양한 플랫폼과 디바이스에서 실행할 수 있습니다. ONNX를 사용하여 ML 모델을 가속화하는 방법에 대해 자세히 알아보세요.
이 Jupyter Notebook 예제에서 ONNX 형식으로 변환하는 방법을 참조하세요. ONNX에서 지원되는 알고리즘(v1)에 대해 알아보세요.
또한 ONNX 런타임은 C#을 지원하므로 REST 엔드포인트에서 도입하는 네트워크 대기 시간 또는 다시 코딩 없이도 C# 앱에서 자동으로 빌드되는 모델을 사용할 수 있습니다. ML.NET을 사용하여 .NET 애플리케이션에서 AutoML ONNX 모델 사용 및 ONNX 런타임 C# API를 사용하여 ONNX 모델 추론에 대해 자세히 알아봅니다.
다음 단계
AutoML로 시작하고 실행할 수 있는 여러 가지 리소스가 있습니다.
자습서/방법
자습서는 AutoML 시나리오의 엔드투엔드 소개 예제입니다.
코드를 처음 사용하는 경우 가이드: AutoML 및 Python으로 회귀 모델 학습(v1)을 따르세요.
코드가 적거나 없는 환경은 가이드: Azure Machine Learning 스튜디오에서 코드 없는 AutoML을 사용하여 분류 모델 학습을 참조하세요.
AutoML을 사용한 Computer Vision 모델 학습에 대해서는 자습서: AutoML 및 Python을 사용하여 개체 검색 모델 학습(v1)을 참조하세요.
방법 문서는 자동화된 ML이 제공하는 기능에 대한 추가 세부 정보를 제공합니다. 예를 들면 다음과 같습니다.
자동 학습 실험 설정 구성
시계열 데이터로 예측 모델을 훈련(v1)하는 방법에 대해 알아보세요.
Python을 사용하여 컴퓨터 비전 모델을 학습(v1)시키는 방법을 알아봅니다.
자동화된 ML 모델에서 생성된 코드를 보는 방법을 알아봅니다.
Jupyter Notebook 샘플
자동화된 기계 학습 샘플에 대한 GitHub Notebook 리포지토리에서 자세한 코드 예제 및 사용 사례를 검토합니다.
Python SDK 참조
AutoML 클래스 참조 설명서를 사용하여 SDK 디자인 패턴 및 클래스 사양의 전문 지식을 활용합니다.
참고 항목
자동화된 Machine Learning은 다른 Microsoft 솔루션(예: ML.NET, HDInsight, Power BI 및 SQL Server)에서도 사용할 수 있습니다.