R 작업을 실행하여 모델 학습
적용 대상: Azure CLI ml 확장 v2(현재)
이 문서에서는 프로덕션에서 실행하도록 조정한 R 스크립트를 가져와서 Azure Machine Learning CLI V2를 사용하여 R 작업으로 실행하도록 설정하는 방법을 설명합니다.
참고 항목
이 문서의 제목은 모델 학습 을 참조하지만 적응 문서에 나열된 요구 사항을 충족하는 한 실제로 모든 종류의 R 스크립트를 실행할 수 있습니다.
필수 조건
- Azure Machine Learning 작업 영역
- 학습 작업에서 사용하는 등록된 데이터 자산입니다.
- Azure CLI 및 ml 확장이 설치되었습니다. 또는 CLI가 미리 설치된 작업 영역에서 컴퓨팅 인스턴스를 사용합니다.
- 학습 작업을 실행할 컴퓨팅 클러스터 또는 컴퓨팅 인스턴스입니다.
- 작업을 실행하는 데 사용할 컴퓨팅 클러스터의 R 환경입니다.
이 구조를 사용하여 폴더 만들기
프로젝트에 대해 다음 폴더 구조 만들기:
📁 r-job-azureml
├─ src
│ ├─ azureml_utils.R
│ ├─ r-source.R
├─ job.yml
Important
모든 소스 코드는 src
디렉터리로 이동합니다.
- r-source.R 파일은 프로덕션 환경에서 실행되도록 조정한 R 스크립트입니다. 이 스크립트에서 모델을 만들고 기록하는 단계를 수행해야 합니다.
- azureml_utils. R 파일이 필요합니다. 파일 내용에는 이 소스 코드를 사용합니다.
작업 YAML 준비
Azure Machine Learning CLI v2에는 다양한 작업에 대해 서로 다른 YAML 스키마가 있습니다. 작업 YAML 스키마를 사용하여 이 프로젝트의 일부인 job.yml 파일에 작업을 제출합니다.
YAML에 넣을 특정 정보를 수집해야 합니다.
- 데이터 입력으로 사용하는 등록된 데이터 자산의 이름(버전 사용):
azureml:<REGISTERED-DATA-ASSET>:<VERSION>
- 만든 환경의 이름(버전 사용):
azureml:<R-ENVIRONMENT-NAME>:<VERSION>
- 컴퓨팅 클러스터 리소스의 이름:
azureml:<COMPUTE-CLUSTER-NAME>
팁
버전(데이터 자산, 환경)이 필요한 Azure Machine Learning 아티팩트의 경우 특정 버전을 설정할 필요가 없는 경우 azureml:<AZUREML-ASSET>@latest
바로 가기 URI를 사용하여 해당 아티팩트의 최신 버전을 가져올 수 있습니다.
작업을 제출하는 샘플 YAML 스키마
다음을 포함하도록 job.yml 파일을 편집합니다. 표시된 <IN-BRACKETS-AND-CAPS>
값을 바꾸고 대괄호를 제거해야 합니다.
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
# the Rscript command goes in the command key below. Here you also specify
# which parameters are passed into the R script and can reference the input
# keys and values further below
# Modify any value shown below <IN-BRACKETS-AND-CAPS> (remove the brackets)
command: >
Rscript <NAME-OF-R-SCRIPT>.R
--data_file ${{inputs.datafile}}
--other_input_parameter ${{inputs.other}}
code: src # this is the code directory
inputs:
datafile: # this is a registered data asset
type: uri_file
path: azureml:<REGISTERED-DATA-ASSET>@latest
other: 1 # this is a sample parameter, which is the number 1 (as text)
environment: azureml:<R-ENVIRONMENT-NAME>@latest
compute: azureml:<COMPUTE-CLUSTER-OR-INSTANCE-NAME>
experiment_name: <NAME-OF-EXPERIMENT>
description: <DESCRIPTION>
작업 제출
이 섹션의 다음 명령에서 다음을 알아야 할 수 있습니다.
- Azure Machine Learning 작업 영역 이름입니다.
- 작업 영역이 배포되는 리소스 그룹의 이름입니다.
- 작업 영역이 있는 구독입니다.
이러한 값은 Azure Machine Learning 스튜디오에서 찾을 수 있습니다.
- 로그인하고 작업 영역을 엽니다.
- 오른쪽 위 Azure Machine Learning 스튜디오 도구 모음에서 작업 영역 이름을 선택합니다.
- 표시되는 섹션에서 값을 복사할 수 있습니다.
터미널 창에서 다음 명령을 실행합니다.
디렉터리를
r-job-azureml
로 변경합니다.cd r-job-azureml
Azure에 로그인합니다. Azure Machine Learning 컴퓨팅 인스턴스에서 이 작업을 수행하는 경우 다음을 사용합니다.
az login --identity
컴퓨팅 인스턴스에 없는 경우에는
--identity
를 생략하고 프롬프트에 따라 인증할 브라우저 창을 엽니다.최신 버전의 CLI 및
ml
확장이 있는지 확인합니다.az upgrade
Azure 구독이 여러 개 있는 경우 활성 구독을 작업 영역에 사용 중인 구독으로 설정합니다. (단일 구독에만 액세스할 수 있는 경우 이 단계를 건너뛸 수 있습니다.)
<SUBSCRIPTION-NAME>
을 구독 이름으로 바꿉니다. 또한 대괄호<>
를 제거합니다.az account set --subscription "<SUBSCRIPTION-NAME>"
이제 CLI를 사용하여 작업을 제출합니다. 작업 영역의 컴퓨팅 인스턴스에서 이 작업을 수행하는 경우 다음 코드와 같이 작업 영역 이름 및 리소스 그룹에 환경 변수를 사용할 수 있습니다. 컴퓨팅 인스턴스가 없는 경우 이러한 값을 작업 영역 이름 및 리소스 그룹으로 바꿉니다.
az ml job create -f job.yml --workspace-name $CI_WORKSPACE --resource-group $CI_RESOURCE_GROUP
작업을 제출한 후에는 스튜디오에서 상태 결과를 검사 수 있습니다.
- Azure Machine Learning Studio에 로그인합니다.
- 아직 열려 있지 않은 경우 작업 영역을 선택합니다.
- 왼쪽 탐색 영역에서 작업을 선택합니다.
- 모델을 학습시키는 데 사용한 실험 이름을 선택합니다.
- 작업의 표시 이름을 선택하여 작업에 사용되는 메트릭, 이미지, 자식 작업, 출력, 로그 및 코드를 포함하여 작업의 세부 정보 및 아티팩트 를 봅니다.
모델 등록
마지막으로, 학습 작업이 완료되면 모델을 배포하려는 경우 모델을 등록합니다. 작업 세부 정보를 보여 주는 페이지에서 스튜디오에서 시작합니다.
작업이 완료되면 출력 + 로그를 선택하여 작업의 출력을 봅니다.
models 폴더를 열어 crate.bin 및 MLmodel이 있는지 확인합니다. 그렇지 않은 경우 로그를 확인하여 오류가 있었는지 확인합니다.
위쪽의 도구 모음에서 + 모델 등록을 선택합니다.
검색되더라도 MLflow 모델 형식은 사용하지 마세요. 모델 형식을 기본값 MLflow에서 지정되지 않은 형식으로 변경합니다. MLflow를 그대로 두면 오류가 발생합니다.
작업 출력의 경우 모델이 포함된 폴더인 models를 선택합니다.
다음을 선택합니다.
모델에 사용할 이름을 입력합니다. 원하는 경우 설명, 버전 및 태그를 추가합니다 .
다음을 선택합니다.
정보를 검토합니다.
등록을 선택합니다.
페이지 상단에 모델이 등록되었다는 확인 메시지가 표시됩니다. 확인 내용은 다음과 유사합니다.
등록된 모델 세부 정보를 보려면 이 모델로 이동하려면 여기를 클릭하세요.를 선택합니다.
다음 단계
이제 등록된 모델이 있으므로 R 모델을 온라인(실시간) 엔드포인트에 배포하는 방법을 알아봅니다.