CLI ile Azure Machine Learning ortamlarını yönetme (v2)

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

Azure Machine Learning ortamları, işleriniz veya dağıtımlarınız için yürütme ortamlarını tanımlar ve kodunuz için bağımlılıkları kapsüller. Azure ML, eğitim veya puanlama kodunuzun belirtilen işlem hedefinde çalıştığı Docker kapsayıcısını oluşturmak için ortam belirtimini kullanır. Conda belirtiminden, Docker görüntüsünden veya Docker derleme bağlamından bir ortam tanımlayabilirsiniz.

Bu makalede, CLI (v2) kullanarak Azure ML ortamları oluşturmayı ve yönetmeyi öğrenin.

Önkoşullar

Örnekleri kopyalama deposu

Eğitim örneklerini çalıştırmak için önce örnek deposunu kopyalayın ve dizinine cli geçin:

git clone --depth 1 https://github.com/Azure/azureml-examples
cd azureml-examples/cli

Depoya yalnızca en son işlemeyi kopyalayarak --depth 1 işlemi tamamlama süresini kısalttığını unutmayın.

Seçilen ortamlar

Azure ML'de iki tür ortam vardır: seçilmiş ve özel ortamlar. Seçilen ortamlar, popüler ML çerçeveleri ve araçları içeren önceden tanımlanmış ortamlardır. Özel ortamlar kullanıcı tanımlıdır ve aracılığıyla az ml environment createoluşturulabilir.

Seçilen ortamlar Azure ML tarafından sağlanır ve varsayılan olarak çalışma alanınızda kullanılabilir. Azure ML, bu ortamları en son çerçeve sürümü sürümleriyle düzenli olarak güncelleştirir ve hata düzeltmeleri ile güvenlik düzeltmeleri için bunları korur. Bunlar önbelleğe alınmış Docker görüntüleriyle desteklenir ve bu da iş hazırlama maliyetini ve model dağıtım süresini azaltır.

Veya söz dizimini kullanarak azureml:<curated-environment-name>:<version>azureml:<curated-environment-name>@latest belirli bir ortama başvurarak bu seçilmiş ortamları eğitim veya dağıtım için kullanıma hazır olarak kullanabilirsiniz. Ayrıca, bu seçilmiş ortamları destekleyen Dockerfile'ları değiştirerek bunları kendi özel ortamlarınız için başvuru olarak da kullanabilirsiniz.

Azure ML studio kullanıcı arabiriminde veya aracılığıyla az ml environments listCLI 'yi (v2) kullanarak kullanılabilir seçilmiş ortamlar kümesini görebilirsiniz.

Ortam oluşturma

Conda belirtiminden, Docker görüntüsünden veya Docker derleme bağlamından bir ortam tanımlayabilirsiniz. Ortamı YAML belirtim dosyası kullanarak yapılandırın ve aşağıdaki CLI komutunu kullanarak ortamı oluşturun:

az ml environment create --file my_environment.yml

Azure ML ortamları için YAML başvuru belgeleri için bkz. CLI (v2) ortamı YAML şeması.

Docker görüntüsünden ortam oluşturma

Docker görüntüsünden bir ortam tanımlamak için, Docker Hub veya Azure Container Registry gibi bir kayıt defterinde barındırılan görüntünün görüntü URI'sini sağlayın.

Aşağıdaki örnek, Docker görüntüsünden tanımlanan bir ortam için YAML belirtim dosyasıdır. Docker Hub üzerindeki resmi PyTorch deposundan bir görüntü YAML dosyasındaki image özelliği aracılığıyla belirtilir.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-example
image: pytorch/pytorch:latest
description: Environment created from a Docker image.

Ortamı oluşturmak için:

az ml environment create --file assets/environment/docker-image.yml

İpucu

Azure ML, yaygın sistem bağımlılıklarına sahip bir dizi CPU ve GPU Ubuntu Linux tabanlı temel görüntü bulundurmaktadır. Örneğin GPU görüntüleri Miniconda, OpenMPI, CUDA, cuDNN ve NCCL içerir. Bu görüntüleri ortamlarınız için kullanabilir veya kendi özel görüntülerinizi oluştururken başvuru olarak ilgili Dockerfile'larını kullanabilirsiniz.

Temel görüntüler kümesi ve ilgili Dockerfile'ları için bkz. AzureML-Containers deposu.

Docker derleme bağlamından ortam oluşturma

Önceden oluşturulmuş bir görüntüden ortam tanımlamak yerine Docker derleme bağlamından da bir ortam tanımlayabilirsiniz. Bunu yapmak için, derleme bağlamı olarak görev yapacak dizini belirtin. Bu dizin bir Dockerfile dosyası ve görüntüyü oluşturmak için gereken diğer dosyaları içermelidir.

Aşağıdaki örnek, derleme bağlamından tanımlanan bir ortam için YAML belirtim dosyasıdır. Derleme bağlam klasörünün yerel yolu alanında build.path belirtilir ve bu derleme bağlamı klasörünün içindeki Dockerfile'ın göreli yolu alanında build.dockerfile_path belirtilir. build.dockerfile_path YAML dosyasında atlanırsa, Azure ML derleme bağlamının kökünde adlı Dockerfile bir Dockerfile arar.

Bu örnekte, derleme bağlamı adlı Dockerfile bir Dockerfile ve Python paketlerini yüklemek için Dockerfile içinde başvuruda bulunılan bir requirements.txt dosya içerir.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-context-example
build:
  path: docker-contexts/python-and-pip

Ortamı oluşturmak için:

az ml environment create --file assets/environment/docker-context.yml

Azure ML, ortam oluşturulduğunda görüntüyü derleme bağlamından oluşturmaya başlar. Derlemenin durumunu izleyebilir ve derleme günlüklerini stüdyo kullanıcı arabiriminde görüntüleyebilirsiniz.

Conda belirtiminden ortam oluşturma

Conda ortamı için bağımlılıkları içeren standart bir conda YAML yapılandırma dosyası kullanarak bir ortam tanımlayabilirsiniz. Bu standart biçim hakkında bilgi için bkz. El ile ortam oluşturma .

Bu ortam için temel bir Docker görüntüsü de belirtmeniz gerekir. Azure ML, sağlanan Docker görüntüsünün üzerinde conda ortamını oluşturur. Docker görüntünüze bazı Python bağımlılıkları yüklerseniz, bu paketler yürütme ortamında mevcut olmaz ve bu nedenle çalışma zamanı hatalarına neden olur. Varsayılan olarak, Azure ML belirttiğiniz bağımlılıklarla bir Conda ortamı oluşturur ve temel görüntüde yüklediğiniz Python kitaplıklarını kullanmak yerine işi bu ortamda yürütür.

Aşağıdaki örnek, conda belirtiminden tanımlanan bir ortam için YAML belirtim dosyasıdır. Burada Azure ML ortamı YAML dosyasından conda dosyasının göreli yolu özelliği aracılığıyla conda_file belirtilir. Alternatif olarak conda belirtimini conda_file ayrı bir dosyada tanımlamak yerine özelliğini kullanarak satır içi olarak tanımlayabilirsiniz.

$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-plus-conda-example
image: mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04
conda_file: conda-yamls/pydata.yml
description: Environment created from a Docker image plus Conda environment.

Ortamı oluşturmak için:

az ml environment create --file assets/environment/docker-image-plus-conda.yml

Azure ML, ortam bir iş veya dağıtımda kullanıldığında bu ortam belirtiminden son Docker görüntüsünü oluşturur. Ayrıca, stüdyo kullanıcı arabiriminde ortamın bir derlemesini el ile tetikleyebilirsiniz.

Ortam yönetme

CLI (v2), Azure ML ortam varlıklarınızın yaşam döngüsünü yönetmek için altında az ml environment bir dizi komut sağlar.

Liste

Çalışma alanınızdaki tüm ortamları listeleyin:

az ml environment list

Tüm ortam sürümlerini belirli bir ad altında listeleyin:

az ml environment list --name docker-image-example

Göster

Belirli bir ortamın ayrıntılarını alın:

az ml environment list --name docker-image-example --version 1

Güncelleştir

Belirli bir ortamın değiştirilebilir özelliklerini güncelleştirme:

az ml environment update --name docker-image-example --version 1 --set description="This is an updated description."

Önemli

Yalnızca ortamlar description için ve tags güncelleştirilebilir. Diğer tüm özellikler sabittir; Bu özelliklerden herhangi birini değiştirmeniz gerekiyorsa ortamın yeni bir sürümünü oluşturmanız gerekir.

Arşivle ve geri yükle

Bir ortamı arşivleme, varsayılan olarak liste sorgularından ()az ml environment list gizler. İş akışlarınızda arşivlenmiş bir ortama başvurmaya ve kullanmaya devam edebilirsiniz. Bir ortam kapsayıcısı veya belirli bir ortam sürümünü arşivleyebilirsiniz.

Ortam kapsayıcısını arşivleme, ortamın tüm sürümlerini verilen ad altında arşivler. Arşivlenmiş bir ortam kapsayıcısı altında yeni bir ortam sürümü oluşturursanız, bu yeni sürüm de otomatik olarak arşivlenmiş olarak ayarlanır.

Ortam kapsayıcısı arşivle:

az ml environment archive --name docker-image-example

Belirli bir ortam sürümünü arşivleyin:

az ml environment archive --name docker-image-example --version 1

Arşivlenmiş bir ortamı artık liste sorgularından gizlememek için geri yükleyebilirsiniz.

Tüm ortam kapsayıcısı arşivlenmişse, arşivlenmiş kapsayıcıyı geri yükleyebilirsiniz. Ortam kapsayıcısının tamamı arşivlenmişse yalnızca belirli bir ortam sürümünü geri yükleyemezsiniz. Kapsayıcının tamamını geri yüklemeniz gerekir.

Ortam kapsayıcısı geri yükleme:

az ml environment restore --name docker-image-example

Yalnızca bir ortam kapsayıcısı içindeki tek tek ortam sürümleri arşivlenmişse, bu tek tek sürümleri geri yükleyebilirsiniz.

Belirli bir ortam sürümünü geri yükleme:

az ml environment restore --name docker-image-example --version 1

Eğitim için ortamları kullanma

Eğitim işi için bir ortam kullanmak için iş YAML yapılandırmasının alanını belirtin environment . Mevcut kayıtlı Azure ML ortamına veya environment: azureml:<environment-name>@latest aracılığıyla environment: azureml:<environment-name>:<environment-version> başvurabilirsiniz (bir ortamın en son sürümüne başvurmak için) veya bir ortam belirtimi satır içinde tanımlayabilirsiniz. Bir ortamı satır içinde tanımlıyorsanız ve version alanlarını belirtmeyinname, bu ortamlar "kayıtlı olmayan" ortamlar olarak kabul edilir ve ortam varlık kayıt defterinizde izlenmez.

Eğitim işi gönderdiğinizde yeni bir ortamın oluşturulması birkaç dakika sürebilir. Süre, gerekli bağımlılıkların boyutuna bağlıdır. Ortamlar hizmet tarafından önbelleğe alınır. Ortam tanımı değişmediği sürece, tam kurulum süresini yalnızca bir kez kullanırsınız.

İşlerde ortamları kullanma hakkında daha fazla bilgi için bkz. CLI ile model eğitme (v2).

Model dağıtımları için ortamları kullanma

Ayrıca hem çevrimiçi hem de toplu puanlama için model dağıtımlarınız için ortamları kullanabilirsiniz. Bunu yapmak için dağıtım YAML yapılandırmasındaki alanı belirtin environment .

Dağıtımlarda ortamları kullanma hakkında daha fazla bilgi için bkz. Yönetilen çevrimiçi uç nokta kullanarak makine öğrenmesi modelini dağıtma ve puanlandırma.

Sonraki adımlar