Toplu dağıtımlar için düşük öncelikli VM'leri kullanma

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

Azure batch dağıtımları, toplu çıkarım iş yüklerinin maliyetini azaltmak için düşük öncelikli sanal makineleri (VM' ler) destekler. Düşük öncelikli VM'ler, düşük maliyet için büyük miktarda işlem gücünün kullanılmasını sağlar. Düşük öncelikli sanal makineler, Azure'daki fazla kapasiteden yararlanıyor. Havuzlarınızda düşük öncelikli VM'ler belirttiğinizde Azure, kullanılabilir olduğunda bu fazlalığı kullanabilir.

İpucu

Düşük öncelikli VM'leri kullanmanın dezavantajı, bu sanal makinelerin kullanılabilir olmaması veya kullanılabilir kapasiteye bağlı olarak herhangi bir zamanda ön plana çıkarılmalarıdır. Bu nedenle bu yaklaşım, işin tamamlanma süresinin esnek olduğu ve işin birçok sanal makineye dağıtıldığı toplu iş yükleri ve zaman uyumsuz işleme iş yükleri için en uygundur.

Düşük öncelikli sanal makineler, ayrılmış sanal makinelere kıyasla daha düşük bir fiyata sunulur. Fiyatlandırma ayrıntıları için bkz . Azure Machine Learning fiyatlandırması.

Toplu dağıtım düşük öncelikli VM'lerle nasıl çalışır?

Azure Machine Learning Toplu Dağıtımları, düşük öncelikli VM'lerin kullanılmasını ve kullanılmasını kolaylaştıran çeşitli özellikler sağlar:

  • Toplu dağıtım işleri, düşük öncelikli VM'lerle oluşturulan Azure Machine Learning işlem kümelerinde çalıştırarak düşük öncelikli VM'leri tüketir. Bir dağıtım düşük öncelikli VM'ler kümesiyle ilişkilendirildikten sonra, bu tür dağıtım tarafından üretilen tüm işler düşük öncelikli VM'leri kullanır. İş başına yapılandırma mümkün değildir.
  • Toplu dağıtım işleri, gönderilebilecek görev sayısına göre kullanılabilir işlem kümesindeki hedef VM sayısını otomatik olarak arar. VM'ler önceden damgalanmış veya kullanılamıyorsa, toplu dağıtım işleri başarısız görevleri kümeye kuyruğa alarak kayıp kapasiteyi değiştirmeyi dener.
  • Düşük öncelikli VM'lerin ayrılmış VM'ler için olandan farklı ayrı bir vCPU kotası vardır. Bölge başına düşük öncelikli çekirdekler, aboneliğinize bağlı olarak varsayılan olarak 100 ile 3.000 arası bir sınıra sahiptir. Abonelik başına düşük öncelikli çekirdek sayısı artırılabilir ve sanal makine aileleri genelinde tek bir değerdir. Bkz. Azure Machine Learning işlem kotaları.

Dikkat edilmesi gerekenler ve kullanım örnekleri

Birçok toplu iş yükü, düşük öncelikli VM'ler için uygundur. Düşük öncelikli VM'lerin kullanılması, VM'lerin serbest bırakılması gerçekleştiğinde yürütme gecikmelerine neden olabilir. İşlerin bitmek zorunda olduğu süre konusunda esnekliğiniz varsa kapasitedeki olası düşüşleri tolere edebilirsiniz.

Toplu iş uç noktaları altında modelleri dağıttığınızda, yeniden zamanlama minibatch düzeyinde gerçekleştirilebilir. Bu yaklaşım, serbest bırakma özelliğinin yalnızca şu anda işlenmekte olan ve etkilenen düğümde tamamlanmamış olan minibatları etkilemesi avantajına sahiptir. Tamamlanan tüm ilerleme korunur.

Sınırlamalar

  • Bir dağıtım düşük öncelikli VM'ler kümesiyle ilişkilendirildikten sonra, bu tür dağıtım tarafından üretilen tüm işler düşük öncelikli VM'leri kullanır. İş başına yapılandırma mümkün değildir.
  • Yeniden zamanlama, ilerlemeden bağımsız olarak mini toplu iş düzeyinde yapılır. Denetim noktası oluşturma özelliği sağlanmadı.

Uyarı

Tüm kümenin önceden damgalandığı veya tek düğümlü bir kümede çalıştığı durumlarda, çalıştırılacak kapasite olmadığından iş iptal edilir. Bu durumda yeniden gönderme gereklidir.

Düşük öncelikli VM'ler kullanan toplu dağıtımlar oluşturma

Toplu dağıtım işleri, düşük öncelikli VM'lerle oluşturulan Azure Machine Learning işlem kümelerinde çalıştırarak düşük öncelikli VM'leri tüketir.

Not

Bir dağıtım düşük öncelikli VM'ler kümesiyle ilişkilendirildikten sonra, bu tür dağıtım tarafından üretilen tüm işler düşük öncelikli VM'leri kullanır. İş başına yapılandırma mümkün değildir.

Aşağıda gösterildiği gibi düşük öncelikli bir Azure Machine Learning işlem kümesi oluşturabilirsiniz:

Aşağıdakine benzer bir işlem tanımı YAML oluşturun low-pri-cluster.yml:

$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json 
name: low-pri-cluster
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
tier: low_priority

Aşağıdaki komutu kullanarak işlem oluşturun:

az ml compute create -f low-pri-cluster.yml

Yeni işlem oluşturduktan sonra, yeni kümeyi kullanmak için dağıtımınızı oluşturabilir veya güncelleştirebilirsiniz:

Yeni işlem kümesi altında bir dağıtım oluşturmak veya güncelleştirmek için bir YAML yapılandırma dosyası oluşturun endpoint.yml:

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier@latest
compute: azureml:low-pri-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300

Ardından, aşağıdaki komutla dağıtımı oluşturun:

az ml batch-endpoint create -f endpoint.yml

Düğüm ayırmayı görüntüleme ve izleme

Düşük öncelikli VM'lerin düşük öncelikli VM'leri izlemesi için Azure portalında yeni ölçümler sağlanır. Bu ölçümler şunlardır:

  • Önceden damgalanmış düğümler
  • Önceden damgalanmış çekirdekler

Bu ölçümleri Azure portalında görüntülemek için:

  1. Azure portalında Azure Machine Learning çalışma alanınıza gidin.
  2. İzleme bölümünden Ölçümler'i seçin.
  3. Ölçüm listesinden istediğiniz ölçümleri seçin.

Düşük öncelikli VM'ler için ilgili ölçümleri gösteren kaynak izleme bölmesindeki ölçümler bölümünün ekran görüntüsü.