사용자 지정 환경 만들기 및 사용

완료됨

스크립트를 실행하는 데 필요한 모든 패키지, 라이브러리 및 종속성을 나열하기 위해 Azure Machine Learning에서 사용자 고유의 환경을 만들어야 하는 경우 사용자 지정 환경을 만들 수 있습니다.

Docker 이미지, Docker 빌드 컨텍스트 및 Docker 이미지를 사용하여 conda 사양에서 환경을 정의할 수 있습니다.

Docker 이미지에서 사용자 지정 환경 만들기

가장 쉬운 방법은 Docker 이미지에서 환경을 만드는 것입니다. Docker 이미지는 Docker 허브 와 같은 공용 레지스트리에서 호스트되거나 Azure Container Registry에 비공개로 저장될 수 있습니다.

많은 오픈 소스 프레임워크는 Docker 허브에서 찾을 수 있는 공용 이미지에 캡슐화되어 있습니다. 예를 들어 PyTorch를 사용하여 딥 러닝 모델을 학습하는 데 필요한 모든 패키지가 포함된 공용 Docker 이미지를 찾을 수 있습니다.

Docker 이미지에서 환경을 만들려면 Python SDK를 사용할 수 있습니다.

from azure.ai.ml.entities import Environment

env_docker_image = Environment(
    image="pytorch/pytorch:latest",
    name="public-docker-image-example",
    description="Environment created from a public Docker image.",
)
ml_client.environments.create_or_update(env_docker_image)

Azure Machine Learning 기본 이미지를 사용하여 환경(큐레이팅된 환경에서 사용하는 이미지와 유사)을 만들 수도 있습니다.

from azure.ai.ml.entities import Environment

env_docker_image = Environment(
    image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04",
    name="aml-docker-image-example",
    description="Environment created from a Azure ML Docker image.",
)
ml_client.environments.create_or_update(env_docker_image)

conda 사양 파일을 사용하여 사용자 지정 환경 만들기

Docker 이미지는 특정 프레임워크로 작업할 때 필요한 모든 패키지를 포함하지만 코드를 실행하기 위해 다른 패키지를 포함해야 할 수 있습니다.

예를 들어 PyTorch를 사용하여 모델을 학습시키고 MLflow를 사용하여 모델을 추적할 수 있습니다.

환경에 다른 패키지 또는 라이브러리를 포함해야 하는 경우 환경을 만들 때 Docker 이미지에 conda 사양 파일을 추가할 수 있습니다.

conda 사양 파일은 YAML 파일로, conda 또는 pip사용하여 설치해야 하는 패키지를 나열합니다. 이러한 YAML 파일은 다음과 같을 수 있습니다.

name: basic-env-cpu
channels:
  - conda-forge
dependencies:
  - python=3.7
  - scikit-learn
  - pandas
  - numpy
  - matplotlib

conda 파일의 표준 형식에 대한 자세한 내용은 환경을 수동으로 만드는 방법에 대한 conda 설명서를 검토하세요.

기본 Docker 이미지 및 conda 사양 파일에서 환경을 만들려면 다음 코드를 사용할 수 있습니다.

from azure.ai.ml.entities import Environment

env_docker_conda = Environment(
    image="mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04",
    conda_file="./conda-env.yml",
    name="docker-image-plus-conda-example",
    description="Environment created from a Docker image plus Conda environment.",
)
ml_client.environments.create_or_update(env_docker_conda)

메모

큐레이팅된 모든 환경의 접두사는 AzureML-이므로 동일한 접두사를 사용하여 환경을 만들 수 없습니다.

환경 사용

가장 일반적으로 스크립트를 (명령) 작업으로 실행하려는 경우 환경을 사용합니다.

스크립트를 실행하는 데 사용할 환경을 지정하려면 <curated-environment-name>:<version> 또는 <curated-environment-name>@latest 구문을 사용하여 환경을 참조합니다.

예를 들어 다음 코드는 Scikit-Learn을 비롯한 큐레이팅된 환경을 사용하는 Python SDK를 사용하여 명령 작업을 구성하는 방법을 보여 줍니다.

from azure.ai.ml import command

# configure job
job = command(
    code="./src",
    command="python train.py",
    environment="docker-image-plus-conda-example:1",
    compute="aml-cluster",
    display_name="train-custom-env",
    experiment_name="train-custom-env"
)

# submit job
returned_job = ml_client.create_or_update(job)

작업을 제출하면 환경이 빌드됩니다. 환경을 처음 사용하는 경우 환경을 빌드하는 데 10-15분이 걸릴 수 있습니다. 작업 로그에서 환경 빌드의 로그를 검토할 수 있습니다.

Azure Machine Learning이 새 환경을 빌드하면 작업 영역의 사용자 지정 환경 목록에 추가됩니다. 환경 이미지는 작업 영역에 연결된 Azure Container 레지스트리에서 호스트됩니다. 다른 작업(및 다른 스크립트)에 동일한 환경을 사용할 때마다 환경이 준비되고 다시 빌드할 필요가 없습니다.