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

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml 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 Machine Learning, 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 ortam tanımlayabilirsiniz.

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

Önkoşullar

İpucu

Tam özellikli bir geliştirme ortamı için, Azure Machine Learning kaynaklarını yönetmek ve makine öğrenmesi modellerini eğitmek için Visual Studio Code ve Azure Machine Learning uzantısını kullanın.

Örnekler deposunu klonlayın

Eğitim örneklerini çalıştırmak için önce örnek deposunu kopyalayın. CLI örnekleri için, cli dizinine gidin. SDK örnekleri için sdk/python/assets/environment dizinine geçin.

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

--depth 1 parametresi yalnızca depoya en son işlemeyi kopyalayarak işlemi tamamlama süresini kısaltır.

Çalışma alanına bağlanma

İpucu

Ortamlarla çalışmak için kullanmak istediğiniz yöntemi seçmek için aşağıdaki sekmeleri kullanın. Sekme seçildiğinde, bu makaledeki tüm sekmeler otomatik olarak aynı sekmeye geçer. İstediğiniz zaman başka bir sekme seçebilirsiniz.

Azure CLI'yı kullanırken tanımlayıcı parametrelerine (abonelik, kaynak grubu ve çalışma alanı adı) ihtiyacınız vardır. Her komut için bu parametreleri belirtebilirsiniz ancak tüm komutlar için kullanılan varsayılanları da ayarlayabilirsiniz. Varsayılan değerleri ayarlamak için aşağıdaki komutları kullanın. , <subscription ID>ve <Azure Machine Learning workspace name> değerlerini yapılandırmanızın değerleriyle değiştirin<resource group>:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>

Seçilen ortamlar

Azure Machine Learning'de iki tür ortam vardır: seçilmiş ve özel ortamlar. Seçilmiş ortamlar, popüler ML çerçevelerini ve araçlarını 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 Machine Learning tarafından sağlanır ve varsayılan olarak kullanılabilir. Azure Machine Learning bu ortamları düzenli olarak en son çerçeve sürümü sürümleriyle güncelleştirir ve hata düzeltmeleri ile güvenlik yamaları 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.

Bu özenle seçilmiş ortamları, belirli veya en son sürümüne başvurarak eğitim veya dağıtım amacıyla hazır bir şekilde kullanabilirsiniz. Aşağıdaki söz dizimini kullanın: azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> veya azureml://registries/azureml/environment/<curated-environment-name>/labels/latest. 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 Machine Learning stüdyosu kullanıcı arabiriminde veya aracılığıyla az ml environment listCLI 'yi (v2) kullanarak kullanılabilir seçilmiş ortamlar kümesini görebilirsiniz.

İpucu

CLI veya SDK'da seçilmiş ortamlarla çalışırken, ortam adı ile AzureML- başlar ve ardından seçilen ortamın adı gelir. Azure Machine Learning Stüdyosu'nu kullandığınızda, bu ön eki içermezler. Bu farkın nedeni, stüdyo kullanıcı arabiriminin ayrı sekmelerde seçilmiş ve özel ortamlar görüntülemesi ve bu nedenle ön ekin gerekli olmadığıdır. CLI ve SDK'da bu ayrım yoktur, bu nedenle önek, seçilmiş ve özel ortamlar arasında ayrım yapmak için kullanılır.

Özel ortam oluşturma

Docker görüntüsünden, Docker derleme bağlamından ve Docker görüntüsüyle conda belirtiminden ortam tanımlayabilirsiniz.

Uyarı

Görüntü derleme işlemi, çalışma alanıyla ilişkili Azure Container Registry'ye erişmek için bir Microsoft Entra belirteci kullanır. Belirteç ömrü yapılandırılamaz ve 60-90 dakika arasında değişir. Görüntü derlemeniz bundan uzun sürüyorsa süresi dolan belirteç nedeniyle derleme başarısız olabilir. Belirteç ömrü hakkında daha fazla bilgi için bkz. Erişim belirteçleri.

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ın YAML belirtim dosyasıdır. Docker Hub'daki 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 Machine Learning, 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 ve bunlara karşılık gelen Dockerfile seti için AzureML-Containers deposuna bakın.

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 kullanılacak dizini seçin. Bu dizin bir Dockerfile (1 MB'tan büyük olmayan) 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ın 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ü içindeki Dockerfile'ın göreli yolu alanında build.dockerfile_path belirtilir. YAML dosyasında build.dockerfile_path belirtilmezse, Azure Machine Learning, derleme bağlamının kökünde adlı bir Dockerfile Dockerfile arar.

Bu örnekte, derleme bağlamı, Dockerfile adlı bir Dockerfile ve Python paketlerini yüklemek için Dockerfile içinde referans verilen bir requirements.txt dosyasını 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 Machine Learning, 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 El ile ortam oluşturma bölümüne bakın.

Bu ortam için temel bir Docker görüntüsü de belirtmeniz gerekir. Azure Machine Learning, sağlanan Docker görüntüsünün üzerine 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 da çalışma zamanı hatalarına neden olur. Varsayılan olarak, Azure Machine Learning belirttiğiniz bağımlılıklarla bir Conda ortamı oluşturur ve temel görüntüye yüklediğiniz Python kitaplıklarını kullanmak yerine işi bu ortamda çalıştırır.

Aşağıdaki örnek, conda belirtiminden tanımlanan bir ortamın YAML belirtim dosyasıdır. Burada Azure Machine Learning 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/openmpi4.1.0-ubuntu20.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.yaml

Azure Machine Learning, ortam bir işte 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.

Ortamları yönet

SDK ve CLI (v2), Azure Machine Learning ortam varlıklarınızın yaşam döngüsünü yönetmenize de olanak tanır.

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 show --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

Ortamlar için yalnızca description ve tags güncellenebilir. 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şiv

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

Bir sürüm belirtmezseniz, bu adın altındaki ortamın tüm sürümleri arşivlenir. 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.

Bir ortamın tüm sürümlerini arşivleyin:

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

Önemli

Ortamın sürümünü arşivleme, kapsayıcı kayıt defterindeki önbelleğe alınmış görüntüyü silmez. Belirli bir ortamla ilişkili önbelleğe alınmış görüntüyü silmek isterseniz, ortamın ilişkili deposunda az acr repository delete komutunu kullanabilirsiniz.

Restore

Arşivlenmiş bir ortamın geri yüklenmesi, liste sorgularında (az ml environment list ) yeniden görünür olmasını sağlar. Bir ortam kapsayıcısının tamamı arşivlenmişse, kapsayıcıyı geri yükleyebilirsiniz ve bu da bu adın altındaki tüm sürümleri geri yükler. Yalnızca belirli bir sürüm arşivlenmişse, bu sürümü tek tek geri yükleyebilirsiniz.

Ortamın tüm sürümlerini geri yükleme:

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

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 özelleştirilmiş bir ortam kullanmak üzere, işin YAML yapılandırması dosyasındaki environment alanını belirtin. Mevcut kayıtlı Azure Machine Learning ortamına environment: azureml:<environment-name>:<environment-version> veya environment: azureml:<environment-name>@latest aracılığıyla (bir ortamın en son sürümüne başvurmak için) başvurabilir veya bir ortam belirtimini satır içi tanımlayabilirsiniz. Bir ortamı satır içinde tanımlıyorsanız, name ve version alanlarını belirtmeyin, çünkü bu ortamlar "kaydetsiz" ortamlar olarak kabul edilir ve ortam varlığı kayıt defterinizde izlenmez.

Bir 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. Bu nedenle, ortam tanımı değişmediği sürece tam kurulum süresi yalnızca bir kez uygulanır.


İşlerde ortamları kullanma hakkında daha fazla bilgi için Modelleri eğitme bölümüne bakın.

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 . Çevrimiçi uç nokta kullanarak makine öğrenmesi modelini dağıtma ve puanlandırma.

Sonraki adımlar