R 작업을 실행하여 모델 학습

적용 대상:Azure CLI ml 확장 v2(현재)

이 문서에서는 프로덕션에서 실행하도록 조정한 R 스크립트를 가져와서 Azure Machine Learning CLI V2를 사용하여 R 작업으로 실행하도록 설정하는 방법을 설명합니다.

참고 항목

이 문서의 제목은 모델 학습 을 참조하지만 적응 문서에 나열된 요구 사항을 충족하는 한 실제로 모든 종류의 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 스튜디오에서 찾을 수 있습니다.

  1. 로그인하고 작업 영역을 엽니다.
  2. 오른쪽 위 Azure Machine Learning 스튜디오 도구 모음에서 작업 영역 이름을 선택합니다.
  3. 표시되는 섹션에서 값을 복사할 수 있습니다.

스크린샷: CLI 명령에서 사용할 값을 찾습니다.

터미널 창에서 다음 명령을 실행합니다.

  1. 디렉터리를 r-job-azureml로 변경합니다.

    cd r-job-azureml
    
  2. Azure에 로그인합니다. Azure Machine Learning 컴퓨팅 인스턴스에서 이 작업을 수행하는 경우 다음을 사용합니다.

    az login --identity
    

    컴퓨팅 인스턴스에 없는 경우에는 --identity를 생략하고 프롬프트에 따라 인증할 브라우저 창을 엽니다.

  3. 최신 버전의 CLI 및 ml 확장이 있는지 확인합니다.

    az upgrade
    
  4. Azure 구독이 여러 개 있는 경우 활성 구독을 작업 영역에 사용 중인 구독으로 설정합니다. (단일 구독에만 액세스할 수 있는 경우 이 단계를 건너뛸 수 있습니다.) <SUBSCRIPTION-NAME>을 구독 이름으로 바꿉니다. 또한 대괄호 <>를 제거합니다.

    az account set --subscription "<SUBSCRIPTION-NAME>"
    
  5. 이제 CLI를 사용하여 작업을 제출합니다. 작업 영역의 컴퓨팅 인스턴스에서 이 작업을 수행하는 경우 다음 코드와 같이 작업 영역 이름 및 리소스 그룹에 환경 변수를 사용할 수 있습니다. 컴퓨팅 인스턴스가 없는 경우 이러한 값을 작업 영역 이름 및 리소스 그룹으로 바꿉니다.

    az ml job create -f job.yml  --workspace-name $CI_WORKSPACE --resource-group $CI_RESOURCE_GROUP
    

작업을 제출한 후에는 스튜디오에서 상태 결과를 검사 수 있습니다.

  1. Azure Machine Learning Studio에 로그인합니다.
  2. 아직 열려 있지 않은 경우 작업 영역을 선택합니다.
  3. 왼쪽 탐색 영역에서 작업을 선택합니다.
  4. 모델을 학습시키는 데 사용한 실험 이름을 선택합니다.
  5. 작업의 표시 이름을 선택하여 작업에 사용되는 메트릭, 이미지, 자식 작업, 출력, 로그 및 코드를 포함하여 작업의 세부 정보 및 아티팩트 를 봅니다.

모델 등록

마지막으로, 학습 작업이 완료되면 모델을 배포하려는 경우 모델을 등록합니다. 작업 세부 정보를 보여 주는 페이지에서 스튜디오에서 시작합니다.

  1. 작업이 완료되면 출력 + 로그를 선택하여 작업의 출력을 봅니다.

  2. models 폴더를 열어 crate.binMLmodel이 있는지 확인합니다. 그렇지 않은 경우 로그를 확인하여 오류가 있었는지 확인합니다.

  3. 위쪽의 도구 모음에서 + 모델 등록을 선택합니다.

    출력 섹션이 열려 있는 스튜디오의 작업 섹션을 보여 주는 스크린샷.

  4. MLflow 모델 형식이 검색되더라도 사용하지 마세요. 모델 형식을 기본 MLflow에서 지정되지 않은 형식으로 변경합니다. MLflow두면 오류가 발생합니다.

  5. 작업 출력의 경우 모델이 포함된 폴더인 models를 선택합니다.

  6. 다음을 선택합니다.

  7. 모델에 사용할 이름을 입력합니다. 원하는 경우 설명, 버전태그를 추가합니다 .

  8. 다음을 선택합니다.

  9. 정보를 검토합니다.

  10. 등록을 선택합니다.

페이지 상단에 모델이 등록되었다는 확인 메시지가 표시됩니다. 확인 내용은 다음과 유사합니다.

성공적인 등록의 예를 보여 주는 스크린샷.

등록된 모델 세부 정보를 보려면 이 모델로 이동하려면 여기를 클릭하세요.를 선택합니다.

다음 단계

이제 등록된 모델이 있으므로 R 모델을 온라인(실시간) 엔드포인트에 배포하는 방법을 알아봅니다.