Azure Machine Learning olayları temelinde uygulamaları, işlemleri veya CI/CD iş akışlarını tetikleme

Bu makalede, Azure Machine Learning olaylarını temel alan olay temelli uygulamaları, işlemleri veya CI/CD iş akışlarını ayarlamayı öğreneceksiniz. Örneğin, Azure Event Grid kullanılarak belirli koşullar algılandığında hata bildirimi e-postaları veya ML işlem hattı çalıştırılır.

Azure Machine Learning model eğitimi, model dağıtımı ve izleme dahil olmak üzere makine öğrenmesi sürecinin tüm yaşam döngüsünü yönetir. Event Grid'i, modern sunucusuz mimarileri kullanarak eğitim çalıştırmalarının tamamlanması, modellerin kaydı ve dağıtımı ve veri kayması algılaması gibi Azure Machine Learning olaylarına tepki vermek için kullanabilirsiniz. Daha sonra çalışma alanı içinde çalışma durumu değişti, çalıştırma tamamlama, model kaydı, model dağıtımı ve veri kayması algılama gibi olaylara abone olabilir ve bunları kullanabilirsiniz.

Olay temelli eylemler için Event Grid ne zaman kullanılır:

  • Çalışma hatası ve çalıştırma tamamlanma durumunda e-posta gönderme
  • Model kaydedildikten sonra Azure işlevi kullanma
  • Azure Machine Learning'den çeşitli uç noktalara olayları akışla aktarma
  • Kayma algılandığında ML işlem hattını tetikleme

Önemli

Bu makalede işaretlenen (önizleme) öğeler şu anda genel önizleme aşamasındadır. Önizleme sürümü bir hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için önerilmez. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir. Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Önkoşullar

Event Grid'i kullanmak için, olayları oluşturduğunuz Azure Machine Learning çalışma alanına katkıda bulunan veya sahip erişimine sahip olmanız gerekir.

Olay modeli & türleri

Azure Event Grid, Azure Machine Learning ve diğer Azure hizmetleri gibi kaynaklardan olayları okur. Bu olaylar daha sonra Azure Event Hubs, Azure İşlevleri, Logic Apps ve diğerleri gibi olay işleyicilerine gönderilir. Aşağıdaki diyagramda Event Grid'in kaynakları ve işleyicileri nasıl bağlayabilmesi gösterilmektedir ancak desteklenen tümleştirmelerin kapsamlı bir listesi değildir.

Azure Event Grid işlevsel modeli

Olay kaynakları ve olay işleyicileri hakkında daha fazla bilgi için bkz. Event Grid nedir?

Azure Machine Learning için olay türleri

Azure Machine Learning, makine öğrenmesi yaşam döngüsünün çeşitli noktalarında olaylar sağlar:

Olay türü Açıklama
Microsoft.MachineLearningServices.RunCompleted Makine öğrenmesi deneme çalıştırması tamamlandığında tetiklenir
Microsoft.MachineLearningServices.ModelRegistered (Önizleme) Çalışma alanında bir makine öğrenmesi modeli kaydedildiğinde tetiklenir
Microsoft.MachineLearningServices.ModelDeployed (Önizleme) Bir veya birden fazla modelle çıkarım hizmeti dağıtımı tamamlandığında tetiklenir
Microsoft.MachineLearningServices.DatasetDriftDetected (Önizleme) İki veri kümesi için veri kayması algılama işi tamamlandığında tetiklenir
Microsoft.MachineLearningServices.RunStatusChanged Çalıştırma durumu değiştirildiğinde tetikleniyor

Olaylara filtre uygulama ve olaylara abone olma

Bu olaylar Azure Event Grid aracılığıyla yayımlanır. Azure portalı, PowerShell veya Azure CLI'dan bir veya daha fazla olay türü belirterek ve koşulları filtreleyerek olaylara kolayca abone olabilirsiniz.

Olaylarınızı ayarlarken, yalnızca belirli olay verilerinde tetikleme yapmak için filtreler uygulayabilirsiniz. Aşağıdaki örnekte, çalıştırma durumu değiştirilmiş olaylar için çalıştırma türlerine göre filtreleyebilirsiniz. Olay yalnızca ölçütler karşılandığında tetiklenir. Filtreleyebileceğiniz olay verileri hakkında daha fazla bilgi için bkz . Azure Machine Learning Event Grid şeması.

Azure Machine Learning olaylarının abonelikleri, Azure rol tabanlı erişim denetimi (Azure RBAC) tarafından korunur. Yalnızca çalışma alanının katkıda bulunanı veya sahibi olay abonelikleri oluşturabilir, güncelleştirebilir ve silebilir. Filtreler, olay aboneliği oluşturulurken veya daha sonra olay aboneliklerine uygulanabilir.

  1. Azure portalına gidin, yeni bir abonelik veya mevcut bir abonelik seçin.

  2. Sol gezinti alanından Olaylar girişini seçin ve ardından + Olay aboneliği'ni seçin.

  3. Filtreler sekmesini seçin ve ekranı aşağı kaydırarak Gelişmiş filtreler'e gelin. Anahtar ve Değer için filtrelemek istediğiniz özellik türlerini belirtin. Burada, çalıştırma türü bir işlem hattı çalıştırması veya işlem hattı adımı çalıştırması olduğunda olay tetikleyicilerini görebilirsiniz.

    olayları filtreleme

  • Olay türüne göre filtreleme: Olay aboneliği bir veya daha fazla Azure Machine Learning olay türü belirtebilir.

  • Olay konusuna göre filtrele: Azure Event Grid, eşleşmelerle başlayan ve biten konu filtrelerini destekler, böylece eşleşen konuya sahip olaylar aboneye teslim edilir. Farklı makine öğrenmesi olaylarının konu biçimi farklıdır.

    Olay türü Konu biçimi Örnek konu
    Microsoft.MachineLearningServices.RunCompleted experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
    Microsoft.MachineLearningServices.ModelRegistered (Önizleme) models/{modelName}:{modelVersion} models/sklearn_regression_model:3
    Microsoft.MachineLearningServices.ModelDeployed (Önizleme) endpoints/{serviceId} endpoints/my_sklearn_aks
    Microsoft.MachineLearningServices.DatasetDriftDetected (Önizleme) datadrift/{data.DataDriftId}/run/{data.RunId} datadrift/4e694bf5-712e-4e40-b06a-d2a2755212d4/run/my_driftrun1_1550564444_fbbcdc0f
    Microsoft.MachineLearningServices.RunStatusChanged experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
  • Gelişmiş filtreleme: Azure Event Grid, yayımlanan olay şemasına göre gelişmiş filtrelemeyi de destekler. Azure Machine Learning olay şeması ayrıntıları, Azure Machine Learning için Azure Event Grid olay şemasında bulunabilir. Olay için Microsoft.MachineLearningServices.ModelRegistered modelin etiket değerini filtrelemek için:

    --advanced-filter data.ModelTags.key1 StringIn ('value1')
    

    Filtreleri uygulama hakkında daha fazla bilgi edinmek için bkz . Event Grid için olayları filtreleme.

Machine Learning olaylarını kullanma

Machine Learning olaylarını işleyen uygulamalar önerilen birkaç uygulamayı izlemelidir:

  • Olayları aynı olay işleyicisine yönlendirecek şekilde birden çok abonelik yapılandırılabildiği için, olayların belirli bir kaynaktan geldiğini varsaymak değil, beklediğiniz makine öğrenmesi çalışma alanından geldiğinden emin olmak için iletinin konusunu denetlemek önemlidir.
  • Benzer şekilde eventType değerinin işlemeye hazır olduğunuzdan ve aldığınız tüm olayların beklediğiniz türlerde olacağını varsaymayın.
  • İletiler sıralı olarak ve biraz gecikmeden sonra ulaşaabildiği için, nesneler hakkındaki bilgilerinizin hala güncel olup olmadığını anlamak için etag alanlarını kullanın. Ayrıca, belirli bir nesnedeki olayların sırasını anlamak için sıralayıcı alanlarını kullanın.
  • Anlamadığınız alanları yoksayın. Bu uygulama, gelecekte eklenebilecek yeni özelliklere karşı dayanıklı kalmanıza yardımcı olacaktır.
  • Başarısız olan veya iptal edilen Azure Machine Learning işlemleri bir olayı tetiklemez. Örneğin, bir model dağıtımı başarısız olursa Microsoft.MachineLearningServices.ModelDeployed tetiklenmez. Uygulamalarınızı tasarlarken bu tür hata modunu göz önünde bulundurun. Bir işlemin durumunu denetlemek ve ayrıntılı hata nedenlerini anlamak için her zaman Azure Machine Learning SDK'sını, CLI'yı veya portalı kullanabilirsiniz.

Azure Event Grid, müşterilerin Azure Machine Learning olayları tarafından tetiklenebilen ayrılmış ileti işleyicileri oluşturmasına olanak tanır. İleti işleyicilerinin bazı önemli örnekleri şunlardır:

  • Azure İşlevleri
  • Azure Logic Apps
  • Azure Event Hubs
  • Azure Data Factory İşlem Hattı
  • Azure platformunda veya başka bir yerde barındırılan genel web kancaları

Azure portalında ayarlama

  1. Azure portalını açın ve Azure Machine Learning çalışma alanınıza gidin.

  2. Sol çubuktan Olaylar'ı ve ardından Olay Abonelikleri'ni seçin.

    Olay Aboneliği seçimini gösteren ekran görüntüsü.

  3. Kullanılacak olay türünü seçin.

    Olay Aboneliği Oluştur formunun ekran görüntüsü.

  4. Olayın yayımlanması için uç noktayı seçin. Aşağıdaki ekran görüntüsünde Olay hub'ı seçili uç noktadır:

    Olay Hub'ı Seç'in açık olduğu Olay Aboneliği Oluştur bölmesini gösteren ekran görüntüsü.

Seçiminizi onayladıktan sonra Oluştur'u seçin. Yapılandırmadan sonra bu olaylar uç noktanıza gönderilecektir.

CLI ile ayarlama

En son Azure CLI'yı yükleyebilir veya Azure aboneliğinizin bir parçası olarak sağlanan Azure Cloud Shell'i kullanabilirsiniz.

Event Grid uzantısını yüklemek için CLI'dan aşağıdaki komutu kullanın:

az extension add --name eventgrid

Aşağıdaki örnekte Azure aboneliği seçme ve Azure Machine Learning için yeni bir olay aboneliği oluşturma adımları gösterilmektedir:

# Select the Azure subscription that contains the workspace
az account set --subscription "<name or ID of the subscription>"

# Subscribe to the machine learning workspace. This example uses EventHub as a destination. 
az eventgrid event-subscription create --name {eventGridFilterName} \
  --source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName} \
  --endpoint-type eventhub \
  --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.EventHub/namespaces/n1/eventhubs/EH1 \
  --included-event-types Microsoft.MachineLearningServices.ModelRegistered \
  --subject-begins-with "models/mymodelname"

Örnekler

Örnek: E-posta uyarıları gönderme

Tüm etkinlikleriniz için e-postaları yapılandırmak için Azure Logic Apps'i kullanın. Birlikte çalışan ekipler arasında işbirliği ve farkındalık sağlamak için koşulları özelleştirin ve alıcıları belirtin.

  1. Azure portalında Azure Machine Learning çalışma alanınıza gidin ve sol çubuktan olaylar sekmesini seçin. Buradan Mantıksal uygulamalar'ı seçin.

    Logic Apps seçimini gösteren ekran görüntüsü.

  2. Logic App kullanıcı arabiriminde oturum açın ve konu türü olarak Machine Learning hizmetini seçin.

    Kaynak türü olarak makine öğrenmesinin seçili olduğu Bir kaynak olayı gerçekleştiğinde iletişim kutusunu gösteren ekran görüntüsü.

  3. Hangi olay için bildirim alınacağı seçin. Örneğin, aşağıdaki RunCompleted ekran görüntüsü.

    Kaynak türü olarak Machine Learning hizmetini gösteren ekran görüntüsü.

  4. Ardından, bu olayı kullanmak ve e-posta aramak için bir adım ekleyin. Olayları almak için kullanabileceğiniz birkaç farklı posta hesabı vardır. Ayrıca, e-posta uyarısı gönderme zamanlarına ilişkin koşulları da yapılandırabilirsiniz.

    Arama satırına e-posta girilmiş eylem seçin iletişim kutusunu gösteren ekran görüntüsü.

  5. E-posta gönder'i seçin ve parametreleri doldurun. Konu başlığına olayları filtrelemeye yardımcı olmak için Olay Türü ve Konu Başlığı'nı ekleyebilirsiniz. ayrıca, ileti gövdesindeki çalıştırmalar için çalışma alanı sayfasına bir bağlantı ekleyebilirsiniz.

    Bu eylemi kaydetmek için sayfanın sol köşesindeki Farklı Kaydet'i seçin.

    Konu ve Olay Türü'nü listeden sağdaki konu satırına eklenmiş olarak e-posta gönder iletişim kutusunu gösteren ekran görüntüsü.

Örnek: Veri kayma tetikleyicileri yeniden eğitme

Önemli

Bu örnekte yalnızca Azure Machine Learning SDK v1 veya Azure Machine Learning için Azure CLI uzantısı v1 kullanılırken kullanılabilen bir özellik (veri kayıyor) kullanılır. Daha fazla bilgi için bkz . Azure Machine Learning CLI & SDK v2 nedir?

Modeller zaman içinde eskir ve çalıştığı bağlamda kullanışlı kalmaz. Modeli yeniden eğitme zamanının geldiğinde veri kaymadığını algılamanın bir yoludur.

Bu örnekte, yeniden eğitmeyi tetikleyen bir Azure Logic App ile Event Grid'in nasıl kullanılacağı gösterilmektedir. Örnek, modelin eğitimi ile veri kümelerini sunma arasında veri kaydığında bir Azure Data Factory işlem hattını tetikler.

Başlamadan önce aşağıdaki eylemleri gerçekleştirin:

Bu örnekte, dosyaları blob deposuna kopyalamak ve yayımlanmış bir Machine Learning işlem hattını çalıştırmak için basit bir Data Factory işlem hattı kullanılır. Bu senaryo hakkında daha fazla bilgi için bkz. Azure Data Factory'de Machine Learning adımı ayarlama.

Azure Data Factory'deki eğitim işlem hattını gösteren ekran görüntüsü.

  1. Mantıksal uygulamayı oluşturmaya başlayın. Azure portalına gidin, Logic Apps'i arayın ve oluştur'u seçin.

    search-logic-app

  2. İstenen bilgileri doldurun. Deneyimi basitleştirmek için Azure Data Factory İşlem Hattı ve Azure Machine Learning çalışma alanınızla aynı aboneliği ve kaynak grubunu kullanın.

    Mantıksal Uygulama Oluştur bölmesini gösteren ekran görüntüsü.

  3. Mantıksal uygulamayı oluşturduktan sonra Event Grid kaynak olayı oluştuğunda'yı seçin.

    Bir Event Grid kaynak olayı oluştuğunda da dahil olmak üzere yaygın bir tetikleyiciyle başlat seçenekleriyle Logic Apps Tasarım Aracı gösteren ekran görüntüsü.

  4. Oturum açın ve olayın ayrıntılarını girin. Kaynak Adı'nı çalışma alanı adı olarak ayarlayın. Olay Türünü DatasetDriftDetected olarak ayarlayın.

    Veri kaydırma olay türü öğesini gösteren ekran görüntüsü.

  5. Yeni bir adım ekleyin ve Azure Data Factory'yi arayın. İşlem hattı çalıştırması oluştur'u seçin.

    İşlem hattı çalıştırması oluştur'un seçili olduğu Eylem seçin bölmesini gösteren ekran görüntüsü.

  6. Oturum açın ve çalıştırılacak yayımlanan Azure Data Factory işlem hattını belirtin.

    Çeşitli değerlerle işlem hattı çalıştırması oluştur bölmesini gösteren ekran görüntüsü.

  7. Sayfanın sol üst kısmındaki kaydet düğmesini kullanarak mantıksal uygulamayı kaydedin ve oluşturun. Uygulamanızı görüntülemek için Azure portalında çalışma alanınıza gidin ve Olaylar'ı seçin.

    Mantıksal Uygulamanın vurgulandığı olayları gösteren ekran görüntüsü.

Artık veri fabrikası işlem hattı kayma oluştuğunda tetikleniyor. Azure Machine Learning stüdyosu'de veri kayma çalıştırmanızın ve makine öğrenmesi işlem hattınızın ayrıntılarını görüntüleyin.

İşlem hattı uç noktalarını gösteren ekran görüntüsü.

Sonraki adımlar

Event Grid hakkında daha fazla bilgi edinin ve Azure Machine Learning olaylarını deneyin: