Azure Machine Learning을 사용하여 모델 학습

적용 대상: Python SDK azure-ai-ml v2(현재)

Azure Machine Learning은 SDK를 사용하는 코드 중심 솔루션부터 자동화된 Machine Learning과 비주얼 디자이너처럼 코드를 적게 사용하는 솔루션까지 모델을 학습시키는 여러 가지 방법을 제공합니다. 다음 목록을 사용하여 적합한 학습 방법을 결정하세요.

  • Python용 Azure Machine Learning SDK: Python SDK는 각각 다른 기능을 갖춘 모델을 학습시키는 여러 가지 방법을 제공합니다.

    학습 방법 설명
    command() 모델을 학습시키는 일반적인 방법은 학습 스크립트, 환경 및 컴퓨팅 정보를 포함하는 command()를 제출하는 것입니다.
    자동화된 기계 학습 자동화된 기계 학습을 사용하면 방대한 데이터 과학 또는 프로그래밍 지식 없이도 모델을 학습시킬 수 있습니다. 데이터 과학 및 프로그래밍에 대한 배경 지식이 있는 분들에게는 알고리즘 선택 및 하이퍼 매개 변수 튜닝을 자동화하여 시간과 리소스를 절약하는 방법을 제공합니다. 자동화된 Machine Learning을 사용할 때 작업 구성 정의에 대해 걱정할 필요가 없습니다.
    기계 학습 파이프라인 파이프라인은 다른 학습 방법이 아니라 모듈식 재사용 가능 단계를 사용하여 워크플로를 정의하는 방법으로, 학습을 포함할 수 있습니다. 기계 학습 파이프라인은 자동화된 Machine Learning 및 실행 구성을 사용하여 모델을 학습시킬 수 있습니다. 파이프라인은 특별히 학습에 집중하지 않으므로, 파이프라인을 사용하는 이유는 다른 학습 방법보다 다양합니다. 일반적으로 다음과 같은 경우에 파이프라인을 사용합니다.
    * 장기 실행 학습 작업 또는 데이터 준비와 같은 무인 프로세스를 예약하려고 합니다.
    * 이기종 컴퓨팅 리소스 및 스토리지 위치에서 조정되는 여러 단계를 사용합니다.
    * 재학습 또는 일괄 처리 채점 같은 특정 시나리오에서 파이프라인을 재사용 가능 템플릿으로 사용합니다.
    * 워크플로의 데이터 원본, 입력 및 출력을 추적하고 버전을 관리합니다.
    * 특정 단계를 독립적으로 작업하는 다른 팀에서 워크플로를 구현합니다. 그런 다음, 파이프라인에서 여러 단계를 조인하여 워크플로를 구현할 수 있습니다.
  • 디자이너: Azure Machine Learning 디자이너는 개념 증명을 빌드하기 위한 또는 코딩 경험이 거의 없는 사용자를 위한 쉬운 진입점을 제공합니다. 끌어서 놓기 웹 기반 UI를 사용하여 모델을 학습시킬 수 있습니다. 디자인의 일부로 Python 코드를 사용할 수도 있고, 코드를 작성하지 않고 모델을 학습시킬 수도 있습니다.

  • Azure CLI: 기계 학습 CLI는 Azure Machine Learning을 사용하는 일반적인 작업에 대한 명령을 제공하며, 스크립팅 및 자동화 작업에 종종 사용됩니다. 예를 들어 학습 스크립트 또는 파이프라인을 만든 후에는 Azure CLI를 사용하여 일정에 따라 또는 학습에 사용되는 데이터 파일이 업데이트될 때 학습 작업을 시작할 수 있습니다. 학습 모델에는 학습 작업을 제출하는 명령을 제공합니다. 실행 구성 또는 파이프라인을 사용하여 작업을 제출할 수 있습니다.

각 학습 방법에서 다양한 유형의 컴퓨팅 리소스를 학습에 사용할 수 있습니다. 이러한 리소스를 총칭하여 컴퓨팅 대상이라고 합니다. 컴퓨팅 대상은 로컬 컴퓨터 또는 클라우드 리소스(예: Azure Machine Learning 컴퓨팅, Azure HDInsight 또는 원격 가상 머신)입니다.

Python SDK

Python용 Azure Machine Learning SDK를 사용하여 Azure Machine Learning에서 기계 학습 워크플로를 빌드하고 실행할 수 있습니다. 대화형 Python 세션, Jupyter Notebook, Visual Studio Code 또는 다른 IDE에서 서비스와 상호 작용할 수 있습니다.

명령 제출

Azure Machine Learning을 사용하는 일반적인 학습 작업은 command()를 사용하여 정의할 수 있습니다. 그런 다음, 해당 명령을 학습 스크립트와 함께 사용하여 지정된 컴퓨팅 대상의 모델을 학습시킵니다.

로컬 컴퓨터에 대한 명령으로 시작한 다음, 필요에 따라 클라우드 기반 컴퓨팅 대상에 대한 명령으로 전환할 수 있습니다. 컴퓨팅 대상을 변경할 때 사용하는 명령에서 컴퓨팅 매개 변수만 변경합니다. 실행은 입력, 출력 및 로그처럼 학습 작업에 대한 정보를 기록합니다.

자동화된 Machine Learning

반복, 하이퍼 매개 변수 설정, 기능화 및 기타 설정을 정의합니다. 학습하는 동안 Azure Machine Learning은 여러 가지 알고리즘과 매개 변수를 병렬로 시도합니다. 사용자가 정의한 종료 조건에 도달하면 학습이 중지됩니다.

Python SDK 외에도 Azure Machine Learning 스튜디오를 통해 자동화된 ML을 사용할 수 있습니다.

기계 학습 파이프라인

기계 학습 파이프라인은 앞에서 언급한 학습 방법을 사용할 수 있습니다. 파이프라인은 워크플로 만들기에 초점이 더 맞춰져 있기 때문에 모델 학습보다 더 많은 기능을 포함하고 있습니다.

학습 작업을 제출할 때 발생하는 작업 이해

Azure 학습 수명 주기는 다음으로 구성됩니다.

  1. 프로젝트 폴더의 파일을 압축하고 클라우드에 업로드합니다.

    불필요한 파일이 스냅샷에 포함되지 않도록 하려면 디렉터리에 ignore 파일(.gitignore 또는 .amlignore)을 만듭니다. 이 파일에 제외할 파일 및 디렉터리를 추가합니다. 이 파일 내에서 사용하는 구문에 대한 자세한 내용은 .gitignore구문 및 패턴을 참조하세요. .amlignore 파일은 동일한 구문을 사용합니다. 두 파일이 모두 있는 경우 .amlignore 파일이 사용되고 .gitignore 파일은 사용되지 않습니다.

  2. 컴퓨팅 클러스터(또는 서버리스 컴퓨팅) 크기 조정

  3. 컴퓨팅 노드에 dockerfile 빌드 또는 다운로드

    1. 시스템에서 다음 해시가 계산됩니다.
    2. 시스템은 작업 영역 ACR(Azure Container Registry) 조회에서 이 해시를 키로 사용합니다.
    3. 찾을 수 없는 경우 전역 ACR에서 일치하는 항목을 찾습니다.
    4. 찾을 수 없는 경우 시스템은 새 이미지(캐시되고 작업 영역 ACR에 등록됨)를 빌드합니다.
  4. 압축된 프로젝트 파일을 컴퓨팅 노드의 임시 스토리지에 다운로드

  5. 프로젝트 파일 압축 풀기

  6. python <entry script> <arguments>를 실행하는 컴퓨팅 노드

  7. ./outputs에 기록된 로그, 모델 파일 및 기타 파일을 작업 영역과 연결된 스토리지 계정에 저장

  8. 컴퓨팅 스케일 다운(임시 스토리지 제거 포함)

Azure Machine Learning 디자이너

디자이너를 사용하면 웹 브라우저에서 끌어서 놓기 인터페이스를 사용하여 모델을 학습시킬 수 있습니다.

Azure CLI

기계 학습 CLI는 Azure CLI용 확장이며 Azure Machine Learning을 사용하기 위한 플랫폼 간 CLI 명령을 제공합니다. 일반적으로 CLI를 사용하여 기계 학습 모델 학습 등의 작업을 자동화할 수 있습니다.

VS Code

VS Code 확장을 사용하여 학습 작업을 실행하고 관리할 수 있습니다. 자세한 내용은 VS Code 리소스 관리 방법 가이드를 참조하세요.

다음 단계

자습서: Jupyter Notebook에서 Python SDK v2로 프로덕션 ML 파이프라인 만들기 방법을 알아봅니다.