Çalıştırma geçmişini başlatma, izleme ve izleme
Python için Azure Machine Learning SDK, Machine Learning CLIve Azure Machine Learning Studio, eğitim ve deneme için çalıştırmalarınızı izlemek, düzenlemek ve izlemek için çeşitli yöntemler sağlar. Çalışma ML geçmişiniz, açıklanabilir ve yinelenebilir bir geliştirme sürecinin önemli ML bir parçasıdır.
Bu makalede aşağıdaki görevlerin nasıl gerçekleştirlnleri gösterir:
- Çalıştırma performansını izleme.
- Çalıştırma görünen adı ekleyin.
- Özel bir görünüm oluşturun.
- Çalıştırma açıklaması ekleyin.
- Çalıştırmaları etiketleme ve bulma.
- Çalıştırma geçmişiniz üzerinde arama çalıştırın.
- Çalıştırmaları iptal etme veya başarısız etme.
- Alt çalıştırmalar oluşturma.
- E-posta bildirimiyle çalıştırma durumunu izleme.
İpucu
Azure Machine Learning hizmetini ve ilişkili Azure hizmetlerini izleme hakkında bilgi arıyorsanız bkz.Azure Machine Learning. Web hizmetleri olarak dağıtılan modelleri izleme hakkında bilgi arıyorsanız bkz. Model verilerini toplama ve Application Analizler.
Önkoşullar
Aşağıdaki öğelere ihtiyacınız vardır:
Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Bu sürümün ücretsiz veya ücretli sürümünü Azure Machine Learning deneyin.
Python Azure Machine Learning SDK'sı (sürüm 1.0.21 veya sonrası). 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ürümünü kontrol etmek için aşağıdaki kodu kullanın:
print(azureml.core.VERSION)Azure Machine Learning için Azure CLI ve CLI uzantısı.
Çalıştırma performansını izleme
Çalıştırmayı ve günlüğe kaydetme işlemini başlatma
azureml.core paketinden ÇalışmaAlanı, Deneme, Çalıştırmave 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")çalıştırmasını ve günlüğe kaydetme işlemini yöntemiyle
start_logging()başlatma.notebook_run = exp.start_logging() notebook_run.log(name="message", value="Hello from run!")
Çalıştırmanın durumunu izleme
yöntemiyle bir çalıştırmanın durumunu
get_status()almak.print(notebook_run.get_status())Çalıştırma kimliği, yürütme süresi ve çalıştırmayla ilgili diğer ayrıntıları almak için yöntemini
get_details()kullanın.print(notebook_run.get_details())Çalıştırmanız başarıyla tamamlandığında, tamamlandı
complete()olarak işaretlemek için yöntemini kullanın.notebook_run.complete() print(notebook_run.get_status())Python'ın tasarım desenini kullanırsanız, çalıştırma kapsam dışında olduğunda otomatik olarak tamamlandı
with...asolarak 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())
Görünen Adı Çalıştır
Çalıştırma görünen adı, çalıştırmanız için sağlanabilir isteğe bağlı ve özelleştirilebilir bir addır. Çalıştırma görünen adını düzenlemek için:
Çalıştırmalar listesine gidin.
Çalıştırma ayrıntıları sayfasında görünen adı düzenlemek için çalıştırmayı seçin.
Çalıştır görünen adını düzenlemek için Düzenle düğmesini seçin.
Özel Görünüm
Studio'da çalıştırmalarınızı görüntülemek için:
Denemeler sekmesine gidin.
Bir denemenin tüm çalıştırmalarını görüntülemek için Tüm denemeler'i veya Çalışma Alanında gönderilen tüm çalıştırmaları görüntülemek için Tüm çalıştırmalar'ı seçin.
Tüm çalıştırmalar sayfasında çalışmanızı daha iyi düzenlemek ve kapsamına eklemek için çalıştırma listesini etiketlere, denemelere, işlem hedefine ve daha birçok hedefe göre filtreleyebilirsiniz.
Karşılaştırmak, grafik eklemek veya filtre uygulamak için çalıştırmaları seçerek sayfada özelleştirmeler yapma. Bu değişiklikler özel görünüm olarak kaydedilebilir, böylece çalışmanıza kolayca geri dönebilirsiniz. Çalışma alanı izinlerine sahip kullanıcılar özel görünümü düzenleyebilir veya görüntüleyemez. Ayrıca, Görünüm paylaş'ı seçerek gelişmiş işbirliği için özel görünümü ekip üyeleriyle paylaşın.
Çalıştırma günlüklerini görüntülemek için belirli bir çalıştırmayı seçin ve Çıkışlar + günlükler sekmesinde çalıştırmanıza yönelik tanılama ve hata günlüklerini bulabilirsiniz.
Çalıştırma açıklaması
Çalıştırmaya daha fazla bağlam ve bilgi sağlamak için çalıştırma açıklaması bir çalıştırmaya eklenebilir. Ayrıca çalıştırmalar listesinden bu açıklamaları arayabilir ve çalıştırma açıklamasını çalıştırmalar listesine sütun olarak ekleyebilirsiniz.
Çalıştırmanıza ilişkin Çalıştırma Ayrıntıları sayfasına gidin ve çalıştırmanıza açıklama eklemek, düzenlemek veya silmek için düzenleme veya kalem simgesini seçin. Değişiklikleri çalıştırmalar listesinde kalıcı yapmak için değişiklikleri mevcut Özel Görünüm veya yeni bir Özel Görünüme kaydedin. Markdown biçimi, aşağıda gösterildiği gibi görüntülerin ekli ve ayrıntılı bağlamaya olanak sağlayan çalıştırma açıklamaları için de desteklenmiştir.
Çalıştırmaları etiketleme ve bulma
Bu Azure Machine Learning, önemli bilgiler için çalıştırmalarınızı düzenlemenize ve sorgulamanıza yardımcı olmak üzere özellikleri ve etiketleri kullanabilirsiniz.
Özellik ve etiket ekleme
Çalıştırmalarınıza aranabilir meta veriler eklemek için yöntemini
add_properties()kullanın. Örneğin, aşağıdaki kod"author"çalıştırmaya ö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şturabilirler. Yukarıdaki kodda özellik değeri olarak zaten eklenmiz nedeniyle aşağıdaki
"azureml-user"kod"author"örneği bir hatayla sonuç verir:try: local_run.add_properties({"author":"different-user"}) except Exception as e: print(e)Özelliklerden farklı olarak etiketler değiştirme özelliğine sahiptir. Denemenizin tüketicilerine aranabilir ve anlamlı bilgiler eklemek için yöntemini
tag()kullanın.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 ekebilirsiniz. Bu etiketler, etiket sözlüğünde anahtar olarak görüntü olduğunda değerine sahip
Noneolur.local_run.tag("worth another look") print(local_run.get_tags())Sorgu özellikleri ve etiketleri
Belirli özellikler ve etiketlerle eşan çalıştırmaların listesini dönmek için deneme içindeki çalıştırmaları sorguabilirsiniz.
Çalıştırmaları iptal etme veya başarısız etme
Bir hata fark eder veya çalıştırmanın bitme işlemi çok uzun zaman alıyorsa çalıştırmayı iptal edebilirsiniz.
SDK kullanarak bir çalıştırmayı iptal etmek için yöntemini cancel() kullanın:
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 tamam ancak hata içeriyorsa (örneğin, yanlış eğitim betiği kullanıldı), başarısız olarak işaretlemek fail() için yöntemini kullanabilirsiniz.
local_run = exp.submit(src)
local_run.fail()
print(local_run.get_status())
Alt çalıştırmalar oluşturma
Farklı hiperparametre ayarlama yinelemeleri gibi ilgili çalıştırmaları birlikte gruplama 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 gönderilen çalıştırmanın içinde beş alt hello_with_children.py çalıştırmadan toplu iş oluşturmak için betiği child_run() kullanır:
!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
Kapsamdan çıkarılırken alt çalıştırmalar otomatik olarak tamamlandı olarak işaretlenir.
Çok sayıda alt çalıştırmayı verimli bir şekilde oluşturmak için yöntemini create_children() kullanın. Her oluşturma bir ağ çağrısıyla sonuç olduğundan, toplu çalıştırmalar 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önder olabilir. Bu, üst ve alt çalıştırmaların hiyerarşilerini oluşturmanıza olanak sağlar. Üst öğesiz alt çalıştırma oluşturamazsınız: Üst çalıştırma yalnızca alt çalıştırmaları başlatsa bile hiyerarşi oluşturmak 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 "Completed" başarılı durumda olabilir.
Alt çalıştırmaların, üst çalıştırmadan farklı bir çalıştırma yapılandırması kullanmasını da istensin. Örneğin, alt öğeniz 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 durum ise her alt bağımsız değişkenin ve verinin başarılı olmasını ifade etmektir. Bir alt çalıştırmayı özelleştirmek için alt çalıştırma ScriptRunConfig için bir nesnesi oluşturun.
Önemli
Uzak işlemdeki bir üst çalıştırmadan alt çalıştırma göndermek için önce üst çalıştırma kodundaki çalışma alanında oturum açabilirsiniz. Varsayılan olarak, uzak çalıştırmada çalıştırma bağlamı nesnesinin alt çalıştırmaları göndermek için kimlik bilgileri yok. Oturum açma 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ında adlı bir
"gpu-cluster"işlem kaynağını alırws - Diğer nesnelere geçirilen farklı bağımsız değişken değerlerini
ScriptRunConfigtekrarlar - Özel işlem kaynağını ve bağımsız değişkenlerini kullanarak yeni bir alt çalıştırma oluşturur ve gönderebilirsiniz
- Tüm alt çalıştırmalar tamamlandıktan sonra 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 create_children() kullanın. Her oluşturma bir ağ çağrısıyla sonuç olduğundan, toplu çalıştırmalar oluşturmak, bunları tek tek oluşturmaktan daha verimlidir.
Alt çalıştırmanın içinde üst çalıştırma kimliğini görüntüabilirsiniz:
## In child run script
child_run = Run.get_context()
child_run.parent.id
Alt çalıştırmaları sorgulama
Belirli bir üst öğenin alt çalıştırmalarını sorgulamak için yöntemini get_children() kullanın. bağımsız recursive = True değişkeni, iç içe geçmiş bir alt ve alt ağaç sorgulamaya olanak sağlar.
print(parent_run.get_children())
Üst veya kök çalıştırmada oturum açma
Geçerli alt Run.parent çalıştırmayı başlatan çalıştırmaya erişmek için alanını kullanabilirsiniz. günlük sonuçlarını tek bir yerde Run.parent birleştirmek, kullanım için yaygın bir kullanım örneğindir. Alt çalıştırmalar zaman uyumsuz olarak yürütülür ve üst öğenin alt çalıştırmalarının tamamlandıktan sonra beklemesi dışında 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}")
E-posta bildirimiyle çalıştırma durumunu izleme
Giriş Azure portalsol gezinti çubuğunda İzleyici sekmesini seçin.
Tanılama ayarları'ı ve ardından + Tanılama ayarı ekle'yi seçin.

Tanılama Ayarında,
- Kategori ayrıntıları altında AmlRunStatusChangedEvent öğesini seçin.
- Hedef ayrıntılarında 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ı, Hizmet Çalışma Alanı'Azure Machine Learning farklı türde bir Azure Kaynağıdır. Bu listede seçenek yoksa bir Log Analytics Çalışma Alanı oluşturabilirsiniz.

Günlükler sekmesinde yeni bir uyarı kuralı ekleyin.

Günlük uyarılarını oluşturmak ve yönetmek için bkz. Azure İzleyici.
Örnek not defterleri
Aşağıdaki not defterleri bu makaledeki kavramları gösteriyor:
Günlük API'leri hakkında daha fazla bilgi edinmek için bkz. günlüğe kaydetme API'si not defteri.
Azure Machine Learning SDK 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
- Denemeleriniz için ölçümleri günlüğe nasıl günlüğe yazarak ilgili bilgi edinmek için bkz. Eğitim çalıştırmaları sırasında ölçümleri günlüğe kaydedilir.
- Kaynak ve günlükleri izleme hakkında bilgi edinmek için bkz. Azure Machine Learning'i Azure Machine Learning.