머신 러닝은 컴퓨터가 기존 데이터를 사용하여 미래의 행동, 결과 및 추세를 예측할 수 있도록 하는 데이터 과학 기술이다. 머신 러닝을 사용하면 컴퓨터가 명시적으로 프로그래밍되지 않고 학습한다.
Azure Machine Learning 서비스는 머신 러닝 모델을 개발, 교육, 테스트, 배포, 관리 및 추적하는 데 사용할 수 있는 클라우드 기반 환경을 제공한다.
이 랩에서 다루는 것
이 실습을 마치면 다음을 수행 할 수 있게 될 것이다.
Azure Pipelines를 사용하여 머신 러닝 프로젝트를 위한 지속적 통합 및 지속적 배포 파이프라인을 빌드하는 방법
ML/AI 모델 관리 및 운영을 위한 Azure ML 서비스와 함께 빌드 및 릴리즈 파이프라인에 Azure DevOps 프로젝트를 사용할 것이다.
이 템플릿에는 엔드 투 엔드 ML/AI 프로젝트를 자동화하는 방법을 시연하는 머신 러닝 프로젝트의 코드 및 파이프라인 정의가 포함되어 있다. 빌드 파이프라인은 데이터 건전성 테스트를 위한 DevOps 작업, 서로 다른 컴퓨팅 대상에 대한 모델 교육, 모델 버전 관리, 모델 평가/모델 선택, 실시간 웹 서비스로서의 모델 구축, QA/prod로의 단계적 구축, 통합 테스트 및 기능 테스트 등을 포함한다.
2. Azure DevOps 데모 생성기를 사용하여 Azure DevOps 조직에 프로젝트를 프로비저닝한다. 이 URL은 데모 생성기에서 자동으로 Azure Machine Learning템플릿을 선택한다. 이 템플릿에는 엔드 투 엔드 ML/AI 프로젝트를 자동화하는 방법을 시연하는 머신 러닝 프로젝트의 코드 및 파이프라인 정의가 포함되어 있다.
실습 1: ML/AI 프로젝트 용 CI 파이프라인 구성
이 실습에서는 ML/AI 프로젝트에 대한 CI 파이프라인을 구성한다. 이 빌드 파이프라인에는 데이터 온전성(sanity)테스트를 위한 DevOps 태스크, 다양한 컴퓨팅 대상에 대한 모델 교육, 모델 버전 관리, 모델 평가/모델 선택 등이 포함된다.
이 파이프라인에서Use Python 3.6태스크 및Install requirements 태스크는 후속 빌드 태스크에 사용할 Python 환경을 설정하고 준비하는 데 사용한다.
3. Create or Get Workspace 태스크를 선택한다. 드롭 다운 목록에서 Azure 구독을 선택하고Authorize를 클릭하여 Azure 서비스 연결을 구성한다. 이 태스크는 Azure Machine Learning 서비스에 대한작업 영역을 만드는 데 사용되었다.
4. 파이프라인의 다른 모든 태스크를 클릭하고 동일한 구독을 선택한다. 태스크가 구독으로 업데이트되면 변경 사항을Save한다.
5. Triggers를 선택하고 CI가 활성화되어 있는지 확인한다.
6. CI 파이프라인에서 수행되는 단계는 다음과 같다.
Python 환경 준비
AML 서비스에 대한 작업 영역 가져 오기 또는 만들기
원격 DSVM / 로컬 Python Env에서 트레이닝 잡 제출
다른 모델의 성능을 비교하고 최상의 선택
작업 공간에 모델 등록
스코어링 웹 서비스를 위한 Docker 이미지 생성
릴리즈 파이프라인에 아티팩트 복사 및 게시
실습 2: ML/AI 프로젝트 용 CD 파이프라인 구성
이 실습에서는 빌드 파이프라인에서 생성 된 이미지를 Azure Container Instance 및 Azure Kubernetes Services에 배포하는 릴리즈 파이프라인을 구성한다.
1. Pipeline » Releases로 이동한다.Deploy Web service를 선택하고 파이프라인의Edit 을 클릭한다.
한다.
2. 두 개의 스테이지 QA및Prod가 포함된 릴리즈 파이프라인이 표시된다.QA스테이지를 선택하고view stage tasks를 선택하여QA스테이지의 태스크를 본다.
3. QA스테이지에서Use Python 3.6태스크 및Install requirements 태스크는 후속 태스크에 사용할 Python 환경을 설정하고 준비하는 데 사용된다.
4. Deploy Web service on ACI 태스크를 선택한다. Azure 구독 세부 정보를 선택한다. 이 태스크는 ACI (Azure Container Instance)를 만들고 파이프라인 빌드에서 만든 웹 서비스 이미지를 ACI에 배포한다.
5. Test ACI Web service태스크를 선택한다. Azure 구독 세부 정보를 업데이트한다. 이 태스크는 배포된 스코어링 이미지를 테스트하는 것이다.
6. 상단의Tasks를 클릭하여Prod 스테이지로 전환하고,prod스테이지의 두 태스크에 대한 구독 세부 정보를 업데이트하고, 저장을 클릭하여 변경 사항을 Save 한다.
(원문에는 다음이 누락 되었다. 두 개의 스테이지 모두에서 Run on agent를 선택하여 Agent pool과 Agent Specification을 다음과 같이 선택하고 Save를 클릭한다.)
실습 3: CI 및 CD를 트리거하도록 소스 코드의 구성 파일 업데이트
1. Repos로 이동한다.aml_config/폴더에서config.json파일을 연다.
2. 자신의 Azure 구독 ID를 업데이트한다. 필요한 경우 리소스 그룹 이름, AML 작업 영역 이름 및 Azure ML 서비스 작업 영역을 배포 할 위치를 변경한다. 커밋을 클릭하여 변경 사항을 커밋한다.
3. CI trigger를 활성화했으므로 빌드는 자동으로 대기열에 넣는다.Pipelines –> Pipelines으로 이동하면 빌드가 대기열에 있는 것을 볼 수 있다. 빌드를 열어 진행 상황을 확인한다. 빌드가 성공하면 릴리즈가 자동으로 대기열에 배치된다.Pipelines –> Releases로 이동하여 릴리즈가 진행 중인지 확인한다.
첫 CD 파이프라인 실행 중에 다음과 같이 동일 서비스 명이 존재한다며 에러가 발생하였다.
50-deployOnAci.py 파일 내aci_servicename을 다음과 같이 고유한 이름으로 수정 및 Commit 후 정상 처리되었다.
4. 이제 Azure Portal로 이동하여 CI-CD 파이프라인에서 프로비저닝 및 배포 된 리소스를 확인한다. AzureML_Demo_ws1를 선택한다.
다음과 같이 필요한 정보를 선택하고 스튜디오를 시작한다.
실행으로 이동하여 devops-ai-demo를 선택하고 결과를 확인한다.
참조
Azure Machine Learning 서비스에 대한 더 많은 정보가 필요한가? 그러하다면 아래에 몇 가지 참조가 있다.