Batch uç noktalarıyla işlem hatlarını dağıtma

Ş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şturma ve kaydetme
  • Toplu iş uç noktası oluşturma ve işlem hattı bileşeni dağıtma
  • Dağıtımı test etme

Bu örnek hakkında

Bu örnekte, "hello world!" yazdıran basit bir komut işinden oluşan bir işlem hattı bileşeni dağıtacağı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/yapıştırmak zorunda kalmadan komutları yerel olarak çalıştırmak için önce depoyu kopyalayın ve ardından dizinleri klasöre değiştirin:

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 defterlerinde birlikte izleyin

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

Önkoşullar

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

  • Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Azure Machine Learning'in ücretsiz veya ücretli sürümünü deneyin.

  • Azure Machine Learning çalışma alanı. Yoksa, azure machine learning çalışma alanlarını yönetme makalesindeki adımları kullanarak bir tane oluşturun.

  • Çalışma alanında aşağıdaki izinlere sahip olduğunuzdan emin olun:

    • Toplu iş uç noktalarını ve dağıtımlarını oluşturma veya yönetme: İzin veren Microsoft.MachineLearningServices/workspaces/batchEndpoints/*bir Sahip, Katkıda Bulunan veya Özel rol kullanın.

    • Çalışma alanı kaynak grubunda ARM dağıtımları oluşturma: Çalışma alanının dağıtıldığı kaynak grubunda izin veren Microsoft.Resources/deployments/write bir Sahip, Katkıda Bulunan veya Özel rol kullanın.

  • Azure Machine Learning ile çalışmak için aşağıdaki yazılımı yüklemeniz gerekir:

    Azure CLI ve mlAzure Machine Learning uzantısı.

    az extension add -n ml
    

    Not

    Batch Uç Noktaları için işlem hattı bileşeni dağıtımları, Azure CLI uzantısının ml 2.7 sürümünde kullanıma sunulmuştur. Son sürümünü almak için kullanın az extension update --name ml .

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

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

Abonelik kimliğiniz, çalışma alanınız, konumunuz ve kaynak grubunuzun değerlerini aşağıdaki kodda geçirin:

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.0/labels/latest
      command: >-
        python hello.py

Bileşeni kaydedin:

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

Toplu iş uç noktası oluşturma

  1. Uç nokta için bir ad belirtin. Çağrı URI'sini oluşturmak için ad kullanıldığından, bir toplu iş uç noktasının adının her bölgede benzersiz olması gerekir. Benzersizliği sağlamak için, aşağıdaki kodda belirtilen ada sondaki 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ğıtma

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

  1. İşlem kümesi oluşturma. 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 üzerinde çalışacağız. İşlemin çalışma alanında mevcut olduğunu doğrulayalım veya başka bir şekilde oluşturalım.

    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 --set-default artık varsayılan olduğunu belirtmek için bayrağının kullanıldığına dikkat edin.

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

Dağıtımı test etme

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. Ancak, işlem hattı bileşeni biraz gerektiriyorsa, çağrı zamanında belirtilebilir. Giriş ve çıkışları belirtme hakkında bilgi edinmek için toplu iş uç noktaları için iş ve giriş verileri oluşturma bölümüne bakın veya ön işleme (önizleme) ile toplu puanlama gerçekleştirmek için işlem hattı dağıtma öğreticisine bakı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 iş uç noktasını ve temel dağıtımını 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