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

Ş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

Bu makaledeki adımları takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

  • Azure Machine Learning çalışma alanı. Yoksa, oluşturmak için Hızlı Başlangıç: Çalışma alanı kaynakları oluşturma makalesindeki adımları kullanın.

  • Azure CLI ve ml uzantısı veya Azure Machine Learning Python SDK v2:

    • Azure CLI ve uzantısını yüklemek için bkz . CLI'yı (v2) yükleme, ayarlama ve kullanma.

      Önemli

      Bu makaledeki CLI örneklerinde Bash (veya uyumlu) kabuğu kullandığınız varsayılır. Örneğin, bir Linux sisteminden veya Linux için Windows Alt Sistemi.

    • Python SDK v2'yi yüklemek için aşağıdaki komutu kullanın:

      pip install azure-ai-ml azure-identity
      

      SDK'nın mevcut yüklemesini en son sürüme güncelleştirmek için aşağıdaki komutu kullanın:

      pip install --upgrade azure-ai-ml azure-identity
      

      Daha fazla bilgi için bkz . Azure Machine Learning için Python SDK v2'yi yükleme.

İ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.

Örnek deposunu kopyalama

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

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

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

Çalışma alanına Bağlan

İpucu

Ortamlarla çalışmak için kullanmak istediğiniz yöntemi seçmek için aşağıdaki sekmeleri kullanın. Bir 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. , <Azure Machine Learning workspace name>ve <resource group> değerlerini yapılandırmanızın değerleriyle değiştirin<subscription ID>:

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 seçilmiş ortamları, ortamın belirli bir sürümüne veya en son sürümüne başvurarak eğitim veya dağıtım için hazır 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 kullanırken, bu ön eke sahip değildir. 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.

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 buna karşılık gelen Dockerfiles kümesi 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 hizmet veren dizini belirtin. 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 belirtilmezse build.dockerfile_path , Azure Machine Learning 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 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 bkz . El ile ortam oluşturma.

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

Yalnızca description ortamlar 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ş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

Eğitim için ortamları kullanma

Eğitim işi için özel bir ortam kullanmak için iş YAML yapılandırmasının alanını belirtinenvironment. Mevcut kayıtlı Azure Machine Learning 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 belirtimini satır içinde tanımlayabilirsiniz. Bir ortamı satır içinde tanımlıyorsanız ve version alanlarını belirtmeyin name çünkü bu ortamlar "kaydı kaldırılmış" 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 bkz . Modelleri eğitma.

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