Özel ortamlar oluşturma ve kullanma
Betiklerinizi çalıştırmak için gerekli tüm paketleri, kitaplıkları ve bağımlılıkları listelemek için Azure Machine Learning'de kendi ortamınızı oluşturmanız gerektiğinde, özel ortamlar oluşturabilirsiniz.
Docker görüntüsünden, Docker derleme bağlamından ve Docker görüntüsüyle conda belirtiminden ortam tanımlayabilirsiniz.
Docker görüntüsünden özel ortam oluşturma
En kolay yaklaşım, docker görüntüsünden ortam oluşturmaktır. Docker görüntüleri Docker Hub gibi bir genel kayıt defterinde barındırılabilir veya azure container kayıt defterinde özel olarak depolanabilir.
Birçok açık kaynak çerçeve, Docker Hub'da bulunabilecek genel görüntülerde kapsüllenir. Örneğin, PyTorch ile derin öğrenme modelini eğitmek için gerekli tüm paketleri içeren genel bir Docker görüntüsü bulabilirsiniz.
Docker görüntüsünden ortam oluşturmak için Python SDK'sını kullanabilirsiniz:
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)
Ortam oluşturmak için Azure Machine Learning temel görüntülerini de kullanabilirsiniz (seçilen ortamlar tarafından kullanılan görüntülere benzer):
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 belirtim dosyasıyla özel ortam oluşturma
Docker görüntüleri belirli bir çerçeveyle çalışırken gerekli tüm paketleri içerse de kodunuzu çalıştırmak için başka paketler eklemeniz gerekebilir.
Örneğin, PyTorch ile bir modeli eğitmek ve modeli MLflow ile izlemek isteyebilirsiniz.
Ortamınıza başka paketler veya kitaplıklar eklemeniz gerektiğinde, ortamı oluştururken Docker görüntüsüne conda belirtimi dosyası ekleyebilirsiniz.
Conda belirtim dosyası, conda veya pipkullanılarak yüklenmesi gereken paketleri listeleyen bir YAML dosyasıdır. Böyle bir YAML dosyası şöyle görünebilir:
name: basic-env-cpu
channels:
- conda-forge
dependencies:
- python=3.7
- scikit-learn
- pandas
- numpy
- matplotlib
Bahşiş
Conda dosyalarının standart biçimi hakkında bilgi için el ile ortam oluşturma conda belgelerini gözden geçirin.
Temel docker görüntüsünden ve conda belirtimi dosyasından ortam oluşturmak için aşağıdaki kodu kullanabilirsiniz:
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)
Not
Tüm seçilmiş ortamlara AzureML- ön eki eklendiği için, aynı ön eke sahip bir ortam oluşturamazsınız.
Bir ortam kullan.
Bir betiği bir (komut) işi olarak çalıştırmak istediğinizde en yaygın olarak ortamları kullanırsınız.
Betiğinizi çalıştırmak için hangi ortamı kullanmak istediğinizi belirtmek için, <curated-environment-name>:<version> veya <curated-environment-name>@latest söz dizimini kullanarak bir ortama başvurursunuz.
Örneğin aşağıdaki kod, Scikit-Learn de dahil olmak üzere seçilmiş bir ortam kullanan Python SDK'sı ile bir komut işinin nasıl yapılandırıldığı gösterilmektedir:
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)
İşi gönderdiğinizde ortam oluşturulur. Bir ortamı ilk kez kullandığınızda, ortamın oluşturulması 10-15 dakika sürebilir. Ortam oluşturmasının günlüklerini işin günlüklerinde gözden geçirebilirsiniz.
Azure Machine Learning yeni bir ortam derlediğinde, çalışma alanında özel ortamlar listesine eklenir. Ortamın görüntüsü, çalışma alanıyla ilişkili Azure Container registry'de barındırılır. Aynı ortamı başka bir iş (ve başka bir betik) için her kullandığınızda, ortam kullanıma hazırdır ve yeniden oluşturulması gerekmez.