Azure Pipelines를 사용 하 여 데이터 준비, 기계 학습 모델 학습, 배포 및 모니터링

Azure Pipelines

파이프라인을 사용 하 여 기계 학습 수명 주기를 자동화할 수 있습니다. 자동화할 수 있는 작업 중 일부는 다음과 같습니다.

  • 데이터 준비 (추출, 변환, 로드 작업)
  • 주문형 확장 및 확장을 사용 하 여 기계 학습 모델 학습
  • 공용 또는 개인 웹 서비스로 기계 학습 모델 배포
  • 배포 된 기계 학습 모델 모니터링 (예: 성능 또는 데이터 드리프트 분석)

이 문서에서는 machine learning 모델을 빌드하고 웹 서비스로 배포 하는 Azure 파이프라인을 만드는 방법을 설명 합니다.

필수 구성 요소

이 항목을 읽기 전에 Azure Machine Learning 서비스가 작동 하는 방식을이해 해야 합니다.

Azure Machine Learning 빠른 시작: 포털 의 단계에 따라 작업 영역을 만듭니다.

코드 가져오기

GitHub에서이 리포지토리 포크:

https://github.com/MicrosoftDocs/pipelines-azureml

이 샘플에는 디렉터리 파이프라인/diabetes-train-and-deploy 파일이 포함 되어 있습니다.

Azure Pipelines에 로그인

Azure Pipelines에 로그인 합니다. 로그인 하면 브라우저가로 이동 하 여 https://dev.azure.com/my-organization-name Azure DevOps 대시보드를 표시 합니다.

선택한 조직 내에서 프로젝트 를 만듭니다. 조직에 프로젝트가 없으면 시작 화면에 프로젝트 만들기 가 표시 됩니다. 그렇지 않은 경우 대시보드의 오른쪽 위 모퉁이에 있는 프로젝트 만들기 단추를 선택 합니다.

파이프라인 만들기

다음 방법 중 하나를 사용 하 여 새 파이프라인을 만들 수 있습니다.

  1. Azure DevOps 조직에 로그인하고, 프로젝트로 이동합니다.

  2. 파이프라인 으로 이동한 다음 새 파이프라인 을 선택 합니다.

  3. 먼저 소스 코드의 위치로 GitHub 를 선택하여 마법사의 단계를 진행합니다.

  4. 로그인할 GitHub로 리디렉션될 수 있습니다. 그렇다면 GitHub 자격 증명을 입력합니다.

  5. 리포지토리 목록이 표시 되 면 리포지토리를 선택 합니다.

  6. Azure Pipelines 앱을 설치하도록 GitHub로 리디렉션될 수 있습니다. 그렇다면 승인 & 설치 를 선택 합니다.

새 파이프라인이 표시 되는 경우:

  1. myresourcegroup을 Azure Machine Learning 서비스 작업 영역을 포함 하는 Azure 리소스 그룹의 이름으로 바꿉니다.

  2. myworkspace을 Azure Machine Learning 서비스 작업 영역의 이름으로 바꿉니다.

  3. 준비가 되 면 저장 및 실행 을 선택 합니다.

  4. 리포지토리의 diabetes-train-and-deploy 파일에 대 한 변경 내용을 커밋하 라는 메시지가 표시 됩니다. 메시지에 만족 하는 경우 저장 후 다시 실행 을 선택 합니다.

    작동 중인 파이프라인을 시청 하려면 빌드 작업을 선택 합니다.

이제 모델을 학습할 준비가 된 YAML 파이프라인이 리포지토리에 있습니다.

Azure Machine Learning service automation

Azure Machine Learning 서비스에서 자동화를 사용 하는 두 가지 기본 방법은 다음과 같습니다.

  • MACHINE LEARNING CLI 는 Azure CLI에 대 한 확장입니다. Azure Machine Learning 서비스를 사용 하기 위한 명령을 제공 합니다.
  • AZURE MACHINE LEARNING SDK 는 Azure Machine Learning 서비스에 대 한 프로그래밍 방식의 액세스를 제공 하는 Python 패키지입니다.
    • Python SDK에는 기계 학습 모델 개발의 시간이 많이 걸리는 반복적인 작업을 자동화 하는 데 도움이 되는 자동화 된 machine learning 이 포함 되어 있습니다.

이 문서의 예제에서는 Machine Learning CLI를 사용 합니다.

계획

모델 학습 및 배포를 자동화 하기 위해 Azure Pipelines를 사용 하기 전에 모델에 필요한 파일과 "바람직한" 학습 된 모델을 나타내는 항목을 이해 해야 합니다.

기계 학습 파일

대부분의 경우 데이터 과학 팀은 기계 학습 모델을 학습 하는 데 필요한 파일 및 리소스를 제공 합니다. 예제 프로젝트에서 데이터 과학자는 다음 파일을 제공 합니다.

  • 학습 스크립트 ( train.py ): 학습 스크립트에는 학습 중인 모델에 해당 하는 논리가 포함 되어 있습니다.
  • 점수 매기기 파일 ( score.py ): 모델이 웹 서비스로 배포 된 경우 점수 매기기 파일은 클라이언트에서 데이터를 받아서 모델에 대해 점수를 계산 합니다. 그런 다음 출력이 클라이언트로 반환 됩니다.
  • .Runconfig settings ( sklearn.runconfig ): 학습에 사용 되는 계산 대상에서 학습 스크립트를 실행 하는 방법을 정의 합니다.
  • 교육 환경 ( myenv.yml ): 학습 스크립트를 실행 하는 데 필요한 패키지를 정의 합니다.
  • 배포 환경 ( deploymentConfig.yml ): 배포 환경에 필요한 리소스 및 계산을 정의 합니다.
  • 배포 환경 ( inferenceConfig.yml ): 배포 환경에서 모델을 실행 하 고 점수를 매기는 데 필요한 패키지를 정의 합니다.

이러한 파일 중 일부는 모델을 개발할 때 직접 사용 됩니다. 예를 들어 train.pyscore.py 파일입니다. 그러나 데이터 과학자는 실행 구성 및 환경 설정을 프로그래밍 방식으로 만들 수 있습니다. 그렇다면 .runconfig runconfiguration. save ()를 사용 하 여 및 학습 환경 파일을 만들 수 있습니다. 또는 다음 명령을 실행 하 여 작업 영역에 이미 있는 모든 계산 대상에 대해 기본 실행 구성 파일을 만들 수 있습니다.

az ml folder attach --experiment-name myexp -w myws -g mygroup

이 명령으로 만든 파일은 디렉터리에 저장 됩니다 .azureml .

최상의 모델 결정

예제 파이프라인은 성능 검사를 수행 하지 않고 학습 된 모델을 배포 합니다. 프로덕션 시나리오에서는 "최상" 모델을 확인할 수 있도록 메트릭을 기록 하는 것이 좋습니다.

예를 들어 이미 배포 되어 있고 정확도가 90 인 모델이 있을 수 있습니다. 리포지토리에 대 한 새 체크 인을 기반으로 새 모델을 학습 하 고, 정확성이 80 이므로 배포 하지 않으려는 경우 다른 모델에 직접 순위를 지정할 수 있으므로 이와 같은 메트릭을 사용 하 여 자동화 논리를 작성할 수 있습니다. 다른 경우에는 "최상" 모델을 나타내는 데 사용 되는 여러 메트릭이 있을 수 있습니다. 이 경우 최적의 모델을 선택 하려면 사람이 판단 해야 합니다.

시나리오에 대 한 "최상" 모양에 따라 사용자가 메트릭을 검사 하 여 모델을 배포할지 여부를 결정 해야 하는 릴리스 파이프라인 을 만들어야 할 수 있습니다.

학습 중에 메트릭을 기록 하려면 Run 클래스를 사용 합니다.

Azure CLI 배포 작업

Azure CLI 배포 태스크 는 Azure CLI 명령을 실행 하는 데 사용 됩니다. 이 예제에서는 Azure Machine Learning CLI 확장을 설치한 다음 개별 CLI 명령을 사용 하 여 모델을 학습 하 고 배포 합니다.

Azure 서비스 연결

Azure CLI 배포 작업 을 수행 하려면 Azure 서비스 연결이 필요 합니다. Azure 서비스 연결은 Azure Pipelines에서 Azure로 연결 하는 데 필요한 자격 증명을 저장 합니다.

예제에서 사용 하는 연결의 이름은입니다. azmldemows

서비스 연결을 만들려면 Azure 서비스 연결 만들기를 참조 하세요.

Machine Learning CLI

다음 Azure Machine Learning 서비스 CLI 명령은이 문서의 예제에서 사용 됩니다.

명령 목적
az ml folder attach 프로젝트의 파일을 Azure Machine Learning 서비스 작업 영역에 연결 합니다.
az ml computetarget create 모델 학습에 사용 되는 계산 대상을 만듭니다.
az ml 실험 목록 작업 영역에 대 한 실험을 나열 합니다.
az ml run submit-스크립트 학습을 위해 모델을 제출 합니다.
az ml model 레지스터 작업 영역에 학습 된 모델을 등록 합니다.
az ml model deploy 모델을 웹 서비스로 배포 합니다.
az ml service list 배포 된 서비스를 나열 합니다.
az ml service delete 배포 된 서비스를 삭제 합니다.
az ml 파이프라인 목록 Azure Machine Learning 파이프라인을 나열 합니다.
az ml computetarget delete 계산 대상을 삭제 합니다.

이러한 명령에 대 한 자세한 내용은 CLI 확장 참조를 참조 하세요.

다음 단계

Machine Learning 확장을 사용 하 여 기계 학습을 파이프라인에 추가로 통합 하는 방법에 대해 알아봅니다.

Azure Machine Learning 서비스에서 Azure Pipelines를 사용 하는 방법에 대 한 자세한 예제는 다음 리포지토리를 참조 하세요.