Batch uç noktalarını kullanarak işlem hatlarını yayınlama

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

İşlem hattı bileşenlerini bir toplu iş uç noktası altında dağıtarak Bunları Azure Machine Learning'de kullanıma hazır hale getirmenin kullanışlı bir yolunu sağlayabilirsiniz. Bu makalede, basit bir işlem hattı içeren bir toplu dağıtım oluşturmayı öğreneceksiniz. Öğrenecekleriniz:

  • İşlem hattı bileşeni oluştur ve kaydet
  • Toplu işlem uç noktası oluşturma ve işlem hattı bileşeni dağıtma
  • Dağıtımı test et

Bu örnek hakkında

Bu örnekte, "hello world!" yazdıran basit bir komut işinden oluşan bir işlem hattı bileşeni dağıtacaksınız. Bu bileşen giriş veya çıkış gerektirmez ve en basit işlem hattı dağıtım senaryosudur.

Bu makaledeki örnek, azureml-examples deposunda yer alan kod örneklerini temel alır. YAML ve diğer dosyaları kopyalamak veya yapıştırmak zorunda kalmadan komutları yerel olarak çalıştırmak için aşağıdaki komutları kullanarak depoyu kopyalayın ve kodlama dilinizin klasörüne gidin:

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

Bu örnekteki dosyalar şunlardır:

cd endpoints/batch/deploy-pipelines/hello-batch

Jupyter not defterlerini takip edin

Kopyalanan depoda sdk-deploy-and-test.ipynb not defterini açarak bu örneğin Python SDK sürümünü takip edebilirsiniz.

Önkoşullar

  • Azure aboneliği. Azure aboneliğiniz yoksa ücretsiz hesap oluşturun.

  • Azure Machine Learning çalışma alanı. Çalışma alanı oluşturmak için bkz . Azure Machine Learning çalışma alanlarını yönetme.

  • Azure Machine Learning çalışma alanında aşağıdaki izinler:

    • Toplu iş uç noktalarını ve dağıtımlarını oluşturmak veya yönetmek için: Sahip, Katkıda Bulunan veya Microsoft.MachineLearningServices/workspaces/batchEndpoints/* izinlerine sahip özelleştirilmiş bir rol kullanın.
    • Azure Resource Manager dağıtımlarını, çalışma alanı kaynak grubunda oluşturmak için: Çalışma alanının dağıtıldığı kaynak grubunda Microsoft.Resources/deployments/write izinlerine sahip bir Sahip, Katkıda Bulunan veya özel rol kullanın.
  • Azure Machine Learning CLI veya Python için Azure Machine Learning SDK'sı:

    Azure CLI'yi ve Azure Machine Learning uzantısını ml yüklemek için aşağıdaki komutu çalıştırın:

    az extension add -n ml
    

    Toplu iş uç noktaları için işlem hattı bileşeni dağıtımları, Azure CLI için uzantının ml 2.7 veya sonraki bir sürümünü gerektirir (geçerli sürüm: 2.37.0). az extension update --name ml En son sürümü almak için komutunu kullanın.


Çalışma alanınıza bağlanma

Çalışma alanı, Azure Machine Learning için en üst düzey kaynaktır. Azure Machine Learning'i kullanırken oluşturduğunuz tüm yapıtlarla çalışmak için merkezi bir yer sağlar. Bu bölümde, dağıtım görevlerinizi gerçekleştirdiğiniz çalışma alanına bağlanacaksınız.

Aşağıdaki komutta abonelik kimliğinizi, çalışma alanı adınızı, kaynak grubu adınızı ve konumunuzu girin:

az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

İşlem hattı bileşenini oluşturma

Batch uç noktaları modelleri veya işlem hattı bileşenlerini dağıtabilir. İşlem hattı bileşenleri yeniden kullanılabilir ve bu bileşenleri bir çalışma alanından diğerine taşımak için paylaşılan kayıt defterlerini kullanarak MLOps uygulamanızı kolaylaştırabilirsiniz.

Bu örnekteki işlem hattı bileşeni, günlüklerde yalnızca "merhaba dünya" iletisini yazdıran tek bir adım içerir. Herhangi bir giriş veya çıkış gerektirmez.

Dosya, hello-component/hello.yml işlem hattı bileşeninin yapılandırmasını içerir:

hello-component/hello.yml

$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponent.schema.json
name: hello_batch
display_name: Hello Batch component
version: 1
type: pipeline
jobs:
  main_job:
    type: command
    component:
      code: src
      environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
      command: >-
        python hello.py

Bileşeni kaydedin:

az ml component create -f hello-component/hello.yml

Toplu Uç Nokta Oluştur

  1. Uç nokta için bir ad belirtin. Bir toplu iş uç noktasının adı, çağrı URI'sini oluşturmak için kullanıldığından, her bölgede benzersiz olmalıdır. Benzersizliği sağlamak için, aşağıdaki kodda belirtilen ada ardıl karakterleri ekleyin.

    ENDPOINT_NAME="hello-batch"
    
  2. Uç noktayı yapılandırın:

    Dosya uç endpoint.yml noktanın yapılandırmasını içerir.

    endpoint.yml

    $schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
    name: hello-batch
    description: A hello world endpoint for component deployments.
    auth_mode: aad_token
    
  3. Uç noktayı oluşturun:

    az ml batch-endpoint create --name $ENDPOINT_NAME  -f endpoint.yml
    
  4. Uç nokta URI'sini sorgula:

    az ml batch-endpoint show --name $ENDPOINT_NAME
    

İşlem hattı bileşenini dağıtın

İşlem hattı bileşenini dağıtmak için bir toplu dağıtım oluşturmanız gerekir. Dağıtım, gerçekte işi yapan varlığı barındırmak için gereken kaynakların bir kümesidir.

  1. İşlem kümesi oluştur. Batch uç noktaları ve dağıtımları işlem kümelerinde çalışır. Çalışma alanında zaten var olan herhangi bir Azure Machine Learning işlem kümesinde çalıştırılabilir. Bu nedenle, birden çok toplu dağıtım aynı işlem altyapısını paylaşabilir. Bu örnekte adlı batch-clusterbir Azure Machine Learning işlem kümesi kullanırsınız. Çalışma alanında hesaplama biriminin mevcut olduğunu doğrulayın veya aksi takdirde oluşturun.

    az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5
    
  2. Dağıtımı yapılandırın:

    Dosya, deployment.yml dağıtımın yapılandırmasını içerir. Ek özellikler için tam toplu iş uç noktası YAML şemasını denetleyebilirsiniz.

    deployment.yml

    $schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
    name: hello-batch-dpl
    endpoint_name: hello-pipeline-batch
    type: pipeline
    component: azureml:hello_batch@latest
    settings:
        default_compute: batch-cluster
    
  3. Dağıtımı oluşturun:

    Toplu iş uç noktası altında bir toplu dağıtım oluşturmak ve bunu varsayılan dağıtım olarak ayarlamak için aşağıdaki kodu çalıştırın.

    az ml batch-deployment create --endpoint $ENDPOINT_NAME -f deployment.yml --set-default
    

    İpucu

    Bu yeni dağıtımın artık varsayılan olduğunu belirtmek için --set-default bayrağının kullanıldığını fark edin.

  4. Dağıtımınız kullanıma hazır.

Dağıtımı test et

Dağıtım oluşturulduktan sonra iş almaya hazır olur. Varsayılan dağıtımı aşağıdaki gibi çağırabilirsiniz:

JOB_NAME=$(az ml batch-endpoint invoke -n $ENDPOINT_NAME --query name -o tsv)

İpucu

Bu örnekte işlem hattının girişleri veya çıkışları yoktur. Eğer işlem hattı bileşeni bazı gereksinimler istiyorsa, bunlar çağrı sırasında belirtilebilir. Giriş ve çıkışları belirtme hakkında bilgi edinmek için toplu iş uç noktaları için işler ve giriş verileri oluşturma bölümüne bakın veya ön işleme ile toplu puanlama gerçekleştirmek için bir işlem hattı dağıtma öğreticisine göz atın.

Gösterinin ilerleme durumunu izleyebilir ve günlüklerin akışını şu şekilde yapabilirsiniz:

az ml job stream -n $JOB_NAME

Kaynakları temizleme

İşiniz bittiğinde, ilişkili kaynakları çalışma alanından silin:

Toplu uç noktayı ve onun altında yatan dağıtımı silmek için aşağıdaki kodu çalıştırın. --yes silme işlemini onaylamak için kullanılır.

az ml batch-endpoint delete -n $ENDPOINT_NAME --yes

(İsteğe bağlı) İşlem kümenizi daha sonraki dağıtımlarla yeniden kullanmak istemiyorsanız işlemi silin.

az ml compute delete -n batch-cluster

Sonraki adımlar