Aracılığıyla paylaş


Çalıştırma geçmişini başlatma, izleme ve izleme

ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v1

Python v1 ve Machine Learning CLI için Azure Machine Learning SDK'sı, eğitim ve deneme için çalıştırmalarınızı izlemek, düzenlemek ve izlemek için çeşitli yöntemler sağlar. ML çalıştırma geçmişiniz, açıklanabilir ve yinelenebilir bir ML geliştirme sürecinin önemli bir parçasıdır.

İpucu

Studio kullanma hakkında bilgi için bkz . Studio ile çalıştırmaları izleme, izleme ve analiz etme.

Azure Machine Learning SDK v2 kullanıyorsanız aşağıdaki makalelere bakın:

Bu makalede aşağıdaki görevlerin nasıl gerçekleştir olduğu gösterilmektedir:

  • Çalıştırma performansını izleyin.
  • Çalıştırmaları etiketleyin ve bulun.
  • Çalıştırma geçmişiniz üzerinde arama çalıştırın.
  • Çalıştırmaları iptal edin veya başarısız olun.
  • Alt çalıştırmalar oluşturun.
  • Çalıştırma durumunu e-posta bildirimiyle izleyin.

İpucu

Azure Machine Learning hizmetini ve ilişkili Azure hizmetlerini izleme hakkında bilgi arıyorsanız bkz . Azure Machine Learning'i izleme. Web hizmetleri olarak dağıtılan izleme modelleri hakkında bilgi arıyorsanız bkz . Model verilerini toplama ve Application Insights ile izleme.

Önkoşullar

Aşağıdaki öğelere ihtiyacınız olacaktır:

  • 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ü bugün deneyin.

  • Azure Machine Learning çalışma alanı.

  • Python için Azure Machine Learning SDK'sı (sürüm 1.0.21 veya üzeri). SDK'nın en son sürümünü yüklemek veya güncelleştirmek için bkz . SDK'yı yükleme veya güncelleştirme.

    Azure Machine Learning SDK'sı sürümünüzü denetlemek için aşağıdaki kodu kullanın:

    print(azureml.core.VERSION)
    
  • Azure Machine Learning için Azure CLI ve CLI uzantısı.

    Önemli

    Bu makaledeki Azure CLI komutlarından bazıları Azure Machine Learning için uzantısını veya v1'i kullanır azure-cli-ml. v1 uzantısı desteği 30 Eylül 2025'te sona erecektir. Bu tarihe kadar v1 uzantısını yükleyebilecek ve kullanabileceksiniz.

    30 Eylül 2025'e kadar , veya v2 uzantısına geçmenizi mlöneririz. v2 uzantısı hakkında daha fazla bilgi için bkz . Azure ML CLI uzantısı ve Python SDK v2.

Çalıştırma performansını izleme

  • Çalıştırmayı ve günlüğe kaydetme işlemini başlatma

    ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

    1. Azureml.core paketinden Workspace, Experiment, Run ve ScriptRunConfig sınıflarını içeri aktararak denemenizi ayarlayın.

      import azureml.core
      from azureml.core import Workspace, Experiment, Run
      from azureml.core import ScriptRunConfig
      
      ws = Workspace.from_config()
      exp = Experiment(workspace=ws, name="explore-runs")
      
    2. yöntemiyle start_logging() çalıştırmayı ve günlüğe kaydetme işlemini başlatın.

      notebook_run = exp.start_logging()
      notebook_run.log(name="message", value="Hello from run!")
      
  • Çalıştırmanın durumunu izleme

    ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

    • yöntemiyle get_status() bir çalıştırmanın durumunu alın.

      print(notebook_run.get_status())
      
    • Çalıştırma kimliğini, yürütme süresini ve çalıştırmayla ilgili diğer ayrıntıları almak için yöntemini kullanın get_details() .

      print(notebook_run.get_details())
      
    • Çalıştırmanız başarıyla tamamlandığında, tamamlandı olarak işaretlemek için yöntemini kullanın complete() .

      notebook_run.complete()
      print(notebook_run.get_status())
      
    • Python'ın with...as tasarım desenini kullanırsanız, çalıştırma kapsamı dışında olduğunda çalıştırma otomatik olarak tamamlandı olarak işaretlenir. Çalıştırmayı el ile tamamlandı olarak işaretlemeniz gerekmez.

      with exp.start_logging() as notebook_run:
          notebook_run.log(name="message", value="Hello from run!")
          print(notebook_run.get_status())
      
      print(notebook_run.get_status())
      

Çalıştırmaları etiketleme ve bulma

Azure Machine Learning'de, önemli bilgiler için çalıştırmalarınızı düzenlemenize ve sorgulamanıza yardımcı olması için özellikleri ve etiketleri kullanabilirsiniz.

  • Özellik ve etiket ekleme

    ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

    Çalıştırmalarınıza aranabilir meta veriler eklemek için yöntemini kullanın add_properties() . Örneğin, aşağıdaki kod çalıştırmaya "author" özelliğini ekler:

    local_run.add_properties({"author":"azureml-user"})
    print(local_run.get_properties())
    

    Özellikler sabittir, bu nedenle denetim amacıyla kalıcı bir kayıt oluşturur. Yukarıdaki kodda özellik değeri olarak "author" zaten eklediğimiz "azureml-user" için aşağıdaki kod örneği hatayla sonuçlanır:

    try:
        local_run.add_properties({"author":"different-user"})
    except Exception as e:
        print(e)
    

    Özelliklerden farklı olarak etiketler değiştirilebilir. Denemenizin tüketicilerine aranabilir ve anlamlı bilgiler eklemek için yöntemini kullanın tag() .

    local_run.tag("quality", "great run")
    print(local_run.get_tags())
    
    local_run.tag("quality", "fantastic run")
    print(local_run.get_tags())
    

    Basit dize etiketleri de ekleyebilirsiniz. Bu etiketler etiket sözlüğünde anahtar olarak göründüğünde değeri vardır None.

    local_run.tag("worth another look")
    print(local_run.get_tags())
    
  • Sorgu özellikleri ve etiketleri

    Belirli özellikler ve etiketlerle eşleşen çalıştırmaların listesini döndürmek için deneme içindeki çalıştırmaları sorgulayabilirsiniz.

    ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

    list(exp.get_runs(properties={"author":"azureml-user"},tags={"quality":"fantastic run"}))
    list(exp.get_runs(properties={"author":"azureml-user"},tags="worth another look"))
    

Çalıştırmaları iptal etme veya başarısız etme

Bir hata fark ederseniz veya çalıştırmanızın bitmek çok uzun sürüyorsa, çalıştırmayı iptal edebilirsiniz.

ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

SDK kullanarak bir çalıştırmayı iptal etmek için yöntemini kullanın cancel() :

src = ScriptRunConfig(source_directory='.', script='hello_with_delay.py')
local_run = exp.submit(src)
print(local_run.get_status())

local_run.cancel()
print(local_run.get_status())

Çalıştırmanız tamamlandıysa ancak bir hata içeriyorsa (örneğin, yanlış eğitim betiği kullanıldıysa), yöntemini kullanarak fail() başarısız olarak işaretleyebilirsiniz.

local_run = exp.submit(src)
local_run.fail()
print(local_run.get_status())

Alt çalıştırmalar oluşturma

ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

Farklı hiper parametre ayarlama yinelemeleri gibi ilgili çalıştırmaları gruplandırmak için alt çalıştırmalar oluşturun.

Not

Alt çalıştırmalar yalnızca SDK kullanılarak oluşturulabilir.

Bu kod örneği, yöntemini kullanarak child_run() gönderilen bir çalıştırmanın içinden beş alt çalıştırmadan oluşan bir toplu iş oluşturmak için betiği kullanırhello_with_children.py:

!more hello_with_children.py
src = ScriptRunConfig(source_directory='.', script='hello_with_children.py')

local_run = exp.submit(src)
local_run.wait_for_completion(show_output=True)
print(local_run.get_status())

with exp.start_logging() as parent_run:
    for c,count in enumerate(range(5)):
        with parent_run.child_run() as child:
            child.log(name="Hello from child run", value=c)

Not

Kapsam dışına çıktıklarında alt çalıştırmalar otomatik olarak tamamlandı olarak işaretlenir.

Birçok alt çalıştırmayı verimli bir şekilde oluşturmak için yöntemini kullanın create_children() . Her oluşturma işlemi bir ağ çağrısıyla sonuçlandığından, toplu çalıştırma oluşturmak bunları tek tek oluşturmaktan daha verimlidir.

Alt çalıştırmaları gönderme

Alt çalıştırmalar bir üst çalıştırmadan da gönderilebilir. Bu, üst ve alt çalıştırmaların hiyerarşilerini oluşturmanıza olanak tanır. Üst öğesiz alt çalıştırma oluşturamazsınız: Üst çalıştırma alt çalıştırmaları başlatmak dışında hiçbir şey yapmasa bile, hiyerarşinin oluşturulması yine de gereklidir. Tüm çalıştırmaların durumları bağımsızdır: Bir veya daha fazla alt çalıştırma iptal edilmiş veya başarısız olsa bile üst öğe başarılı durumda olabilir "Completed" .

Çocuğunuzun çalıştırmalarının üst çalıştırmadan farklı bir çalıştırma yapılandırması kullanmasını isteyebilirsiniz. Örneğin, çocuklarınız için GPU tabanlı yapılandırmaları kullanırken üst öğe için daha az güçlü, CPU tabanlı bir yapılandırma kullanabilirsiniz. Bir diğer yaygın istek de her alt öğeye farklı bağımsız değişkenler ve veriler geçirmektir. Alt çalıştırmayı özelleştirmek için alt çalıştırma için bir ScriptRunConfig nesne oluşturun.

Önemli

Uzak işlemde üst çalıştırmadan alt çalıştırma göndermek için önce üst çalıştırma kodundaki çalışma alanında oturum açmanız gerekir. Varsayılan olarak, bir uzak çalıştırmadaki çalıştırma bağlamı nesnesinin alt çalıştırmaları göndermek için kimlik bilgileri yoktur. Oturum açmak için bir hizmet sorumlusu veya yönetilen kimlik kimlik bilgileri kullanın. Kimlik doğrulaması hakkında daha fazla bilgi için bkz . Kimlik doğrulamasını ayarlama.

Aşağıdaki kod:

  • Çalışma alanından adlı "gpu-cluster" bir işlem kaynağı alır ws
  • Alt ScriptRunConfig nesnelere geçirilecek farklı bağımsız değişken değerlerini yineler
  • Özel işlem kaynağını ve bağımsız değişkenini kullanarak yeni bir alt çalıştırma oluşturur ve gönderir
  • Tüm alt öğe tamamlanana kadar bloklar
# parent.py
# This script controls the launching of child scripts
from azureml.core import Run, ScriptRunConfig

compute_target = ws.compute_targets["gpu-cluster"]

run = Run.get_context()

child_args = ['Apple', 'Banana', 'Orange']
for arg in child_args: 
    run.log('Status', f'Launching {arg}')
    child_config = ScriptRunConfig(source_directory=".", script='child.py', arguments=['--fruit', arg], compute_target=compute_target)
    # Starts the run asynchronously
    run.submit_child(child_config)

# Experiment will "complete" successfully at this point. 
# Instead of returning immediately, block until child runs complete

for child in run.get_children():
    child.wait_for_completion()

Aynı yapılandırmalara, bağımsız değişkenlere ve girişlere sahip birçok alt çalıştırmayı verimli bir şekilde oluşturmak için yöntemini kullanın create_children() . Her oluşturma işlemi bir ağ çağrısıyla sonuçlandığından, toplu çalıştırma oluşturmak bunları tek tek oluşturmaktan daha verimlidir.

Alt çalıştırmada üst çalıştırma kimliğini görüntüleyebilirsiniz:

## In child run script
child_run = Run.get_context()
child_run.parent.id

Alt çalıştırmaları sorgulama

Belirli bir üst öğeye ait alt çalıştırmaları sorgulamak get_children() için yöntemini kullanın. recursive = True bağımsız değişkeni, iç içe bir çocuk ve torun ağacı sorgulamanıza olanak tanır.

print(parent_run.get_children())

Üst veya kök çalıştırmada günlüğe kaydetme

Geçerli alt çalıştırmayı Run.parent başlatan çalıştırmaya erişmek için alanını kullanabilirsiniz. Günlük sonuçlarını tek bir yerde birleştirmek yaygın bir kullanım örneğidir Run.parent . Alt çalıştırmalar zaman uyumsuz olarak yürütülür ve üst öğesinin alt çalıştırmalarının tamamlanmasını bekleme yeteneğinin ötesinde sıralama veya eşitleme garantisi yoktur.

# in child (or even grandchild) run

def root_run(self : Run) -> Run :
    if self.parent is None : 
        return self
    return root_run(self.parent)

current_child_run = Run.get_context()
root_run(current_child_run).log("MyMetric", f"Data from child run {current_child_run.id}")

Çalışma durumunu e-posta bildirimiyle izleme

  1. Azure portalının sol gezinti çubuğunda İzleyici sekmesini seçin.

  2. Tanılama ayarları'nı ve ardından + Tanılama ayarı ekle'yi seçin.

    E-posta bildirimi için tanılama ayarlarının ekran görüntüsü.

  3. Tanılama Ayarı'nda,

    1. Kategori ayrıntıları altında AmlRunStatusChangedEvent öğesini seçin.
    2. Hedef ayrıntıları bölümünde Log Analytics'e Gönder çalışma alanını seçin ve Abonelik ve Log Analytics çalışma alanını belirtin.

    Not

    Azure Log Analytics Çalışma Alanı, Azure Machine Learning hizmeti Çalışma Alanı'na göre farklı bir Azure Kaynağı türüdür. Bu listede seçenek yoksa Log Analytics Çalışma Alanı oluşturabilirsiniz.

    E-posta bildirimini yapılandırma işleminin ekran görüntüsü.

  4. Günlükler sekmesinde Yeni uyarı kuralı ekleyin.

    Yeni uyarı kuralının görüntüsü.

  5. Azure İzleyici'yi kullanarak günlük uyarıları oluşturma ve yönetme hakkında bilgi edinin.

Örnek not defterleri

Aşağıdaki not defterleri bu makaledeki kavramları gösterir:

  • Günlük API'leri hakkında daha fazla bilgi edinmek için günlük API'sinin not defterine bakın.

  • Azure Machine Learning SDK'sı ile çalıştırmaları yönetme hakkında daha fazla bilgi için çalıştırmaları yönetme not defterine bakın.

Sonraki adımlar