Aktivace aplikací, procesů nebo pracovních postupů CI/CD na základě událostí služby Azure Machine Learning

V tomto článku se dozvíte, jak nastavit aplikace, procesy nebo pracovní postupy CI/CD založené na událostech azure machine Učení. Například e-maily s oznámením o selhání nebo spuštění kanálu ML, když se pomocí služby Azure Event Grid zjistí určité podmínky.

Azure Machine Učení spravuje celý životní cyklus procesu strojového učení, včetně trénování modelu, nasazení modelu a monitorování. Event Grid můžete použít k reakci na události azure Machine Učení, jako je například dokončení trénovacích běhů, registrace a nasazení modelů a detekce odchylek dat pomocí moderních bezserverových architektur. Pak se můžete přihlásit k odběru a využívat události, jako je změna stavu spuštění, dokončení spuštění, registrace modelu, nasazení modelu a detekce odchylek dat v rámci pracovního prostoru.

Kdy použít Event Grid pro akce řízené událostmi:

  • Odeslání e-mailů při selhání spuštění a dokončení spuštění
  • Použití funkce Azure po registraci modelu
  • Streamování událostí ze služby Azure Machine Učení do různých koncových bodů
  • Aktivace kanálu ML při zjištění posunu

Důležité

Položky označené (Preview) v tomto článku jsou aktuálně ve verzi Public Preview. Verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Požadavky

Pokud chcete používat Event Grid, potřebujete přístup přispěvatele nebo vlastníka k pracovnímu prostoru Azure Machine Učení, pro který vytváříte události.

Model událostí a typy

Azure Event Grid čte události ze zdrojů, jako jsou azure Machine Učení a další služby Azure. Tyto události se pak posílají do obslužných rutin událostí, jako jsou Azure Event Hubs, Azure Functions, Logic Apps a další. Následující diagram znázorňuje, jak Event Grid spojuje zdroje a obslužné rutiny, ale není úplný seznam podporovaných integrací.

Funkční model Azure Event Gridu

Další informace o zdrojích událostí a obslužných rutinách událostí najdete v tématu Co je Event Grid?

Typy událostí pro službu Azure Machine Learning

Azure Machine Learning nabízí události v různých fázích životního cyklu strojového učení:

Typ události Popis
Microsoft.MachineLearningServices.RunCompleted Vyvolá se při dokončení spuštění experimentu strojového učení.
Microsoft.MachineLearningServices.ModelRegistered (Preview) Vyvolá se při registraci modelu strojového učení v pracovním prostoru.
Microsoft.MachineLearningServices.ModelDeployed (Preview) Vyvolá se při dokončení nasazení služby odvozování s jedním nebo více modely.
Microsoft.MachineLearningServices.DatasetDriftDetected (Preview) Vyvolá se při dokončení úlohy detekce posunu dat pro dvě datové sady.
Microsoft.MachineLearningServices.RunStatusChanged Vyvolá se při změně stavu spuštění

Filtrování a přihlášení k odběru událostí

Tyto události se publikují prostřednictvím služby Azure Event Grid. Z webu Azure Portal, PowerShellu nebo Azure CLI se můžete snadno přihlásit k odběru událostí zadáním jednoho nebo více typů událostí a filtrováním podmínek.

Při nastavování událostí můžete použít filtry, které se aktivují jenom u konkrétních dat událostí. V následujícím příkladu můžete pro události změny stavu spuštění filtrovat podle typů spuštění. Událost se aktivuje pouze při splnění kritérií. Další informace o datech událostí, která můžete filtrovat, najdete v schématu služby Azure Machine Učení Event Grid.

Předplatná pro události azure Machine Učení jsou chráněná řízením přístupu na základě role v Azure (Azure RBAC). Odběry událostí můžou vytvářet, aktualizovat a odstraňovat jenom přispěvatelé nebo vlastník pracovního prostoru. Filtry lze použít u odběrů událostí buď během vytváření odběru událostí, nebo později.

  1. Přejděte na web Azure Portal, vyberte nové předplatné nebo existující předplatné.

  2. V levé navigační oblasti vyberte položku Události a pak vyberte + Odběr události.

  3. Vyberte kartu filtry a posuňte se dolů k rozšířeným filtrům. Jako klíč a hodnota zadejte typy vlastností, podle které chcete filtrovat. Tady uvidíte triggery událostí, když je typ spuštění kanálu nebo spuštění kroku kanálu.

    filtrování událostí

  • Filtrovat podle typu události: Odběr události může zadat jeden nebo více typů událostí azure machine Učení.

  • Filtrování podle předmětu události: Azure Event Grid podporuje filtry předmětu podle začátku a končí na shodách, aby se události s odpovídajícím předmětem doručily odběrateli. Různé události strojového učení mají jiný formát předmětu.

    Typ události Formát předmětu Ukázkový předmět
    Microsoft.MachineLearningServices.RunCompleted experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
    Microsoft.MachineLearningServices.ModelRegistered (Preview) models/{modelName}:{modelVersion} models/sklearn_regression_model:3
    Microsoft.MachineLearningServices.ModelDeployed (Preview) endpoints/{serviceId} endpoints/my_sklearn_aks
    Microsoft.MachineLearningServices.DatasetDriftDetected (Preview) 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
  • Pokročilé filtrování: Azure Event Grid také podporuje rozšířené filtrování na základě publikovaného schématu událostí. Podrobnosti o schématu událostí služby Azure Machine Učení najdete ve schématu událostí Azure Event Gridu pro Učení Azure Machine. Pokud Microsoft.MachineLearningServices.ModelRegistered chcete filtrovat hodnotu značky modelu, v případě události:

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

    Další informace o tom, jak použít filtry, najdete v tématu Filtrování událostí pro Event Grid.

Využití událostí Učení počítače

Aplikace, které zpracovávají události strojového Učení, by měly dodržovat několik doporučených postupů:

  • Vzhledem k tomu, že ke směrování událostí do stejné obslužné rutiny události je možné nakonfigurovat několik odběrů, je důležité nepředpokládá, že události pocházejí z určitého zdroje, ale pokud chcete zkontrolovat téma zprávy, abyste měli jistotu, že pochází z pracovního prostoru strojového učení, který očekáváte.
  • Podobně zkontrolujte, jestli je eventType jeden, který jste připraveni zpracovat, a nepředpokládáte, že všechny události, které obdržíte, budou typy, které očekáváte.
  • Vzhledem k tomu, že zprávy můžou dorazit mimo pořadí a po nějaké prodlevě, použijte pole etag, abyste pochopili, jestli jsou vaše informace o objektech stále aktuální. Pole sequenceru také použijte k pochopení pořadí událostí u libovolného konkrétního objektu.
  • Ignorujte pole, kterým nerozumíte. Tento postup vám pomůže udržet odolnost proti novým funkcím, které by mohly být přidány v budoucnu.
  • Operace azure machine Učení selhaly nebo zrušily, neaktivují událost. Pokud například nasazení modelu selže, Microsoft.Machine Učení Services.ModelDeployed se neaktivuje. Při návrhu aplikací zvažte takový režim selhání. Kdykoli můžete použít sadu Azure Machine Učení SDK, rozhraní příkazového řádku nebo portálu ke kontrole stavu operace a vysvětlení podrobných důvodů selhání.

Azure Event Grid umožňuje zákazníkům vytvářet oddělené obslužné rutiny zpráv, které můžou aktivovat události služby Azure Machine Učení. Mezi velmi vhodné příklady obslužných rutin zpráv patří:

  • Azure Functions
  • Azure Logic Apps
  • Azure Event Hubs
  • Kanál služby Azure Data Factory
  • Obecné webhooky, které můžou být hostované na platformě Azure nebo jinde

Nastavení na webu Azure Portal

  1. Otevřete Azure Portal a přejděte do pracovního prostoru Azure Machine Učení.

  2. Na levém panelu vyberte Události a pak vyberte Odběry událostí.

    Snímek obrazovky s výběrem odběru událostí

  3. Vyberte typ události, kterou chcete použít.

    Snímek obrazovky s formulářem Vytvořit odběr události

  4. Vyberte koncový bod, do které chcete událost publikovat. Na následujícím snímku obrazovky je vybraným koncovým bodem centrum událostí:

    Snímek obrazovky znázorňující podokno Vytvořit odběr událostí s otevřeným výběrem centra událostí

Jakmile výběr potvrdíte, vyberte Vytvořit. Po konfiguraci se tyto události nasdílí do vašeho koncového bodu.

Nastavení pomocí rozhraní příkazového řádku

Můžete buď nainstalovat nejnovější Azure CLI, nebo použít Azure Cloud Shell, který je součástí vašeho předplatného Azure.

K instalaci rozšíření Event Grid použijte následující příkaz z rozhraní příkazového řádku:

az extension add --name eventgrid

Následující příklad ukazuje, jak vybrat předplatné Azure a vytvořit nové předplatné události pro azure machine Učení:

# 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"

Příklady

Příklad: Odesílání e-mailových upozornění

Ke konfiguraci e-mailů pro všechny události použijte Azure Logic Apps . Přizpůsobte si podmínky a určete příjemce, aby se umožnila spolupráce a povědomí napříč týmy, které spolupracují.

  1. Na webu Azure Portal přejděte do pracovního prostoru azure machine Učení a na levém panelu vyberte kartu události. Tady vyberte Aplikace logiky.

    Snímek obrazovky znázorňující výběr Logic Apps

  2. Přihlaste se k uživatelskému rozhraní aplikace logiky a jako typ tématu vyberte službu Machine Učení.

    Snímek obrazovky s dialogovým oknem Při výskytu události prostředku s vybraným typem prostředku strojového učení

  3. Vyberte událost, pro kterou chcete být upozorněni. Například následující snímek obrazovky RunCompleted.

    Snímek obrazovky znázorňující službu machine Učení jako typ prostředku

  4. V dalším kroku přidejte krok pro zpracování této události a vyhledejte e-mail. K příjmu událostí můžete použít několik různých poštovních účtů. Můžete také nakonfigurovat podmínky, kdy odeslat e-mailové upozornění.

    Snímek obrazovky zobrazuje dialogové okno Zvolit akci s e-mailem zadaným na vyhledávacím řádku.

  5. Vyberte Odeslat e-mail a vyplňte parametry. V předmětu můžete zahrnout typ události a téma , které vám pomůžou filtrovat události. Můžete také zahrnout odkaz na stránku pracovního prostoru pro spuštění v textu zprávy.

    Pokud chcete tuto akci uložit, vyberte Uložit jako v levém rohu stránky.

    Snímek obrazovky s dialogovým oknem Odeslat e-mail s tématem a typem události přidaným do řádku předmětu ze seznamu vpravo

Příklad: Opětovné trénování triggerů posunu dat

Důležité

Tento příklad spoléhá na funkci (posun dat), která je k dispozici pouze při použití sady Azure Machine Učení SDK verze 1 nebo rozšíření Azure CLI v1 pro azure machine Učení. Další informace najdete v tématu Co je Azure Machine Učení CLI a SDK v2.

Modely se v průběhu času zastaralou a nezůstanou užitečné v kontextu, ve kterém běží. Jedním ze způsobů, jak zjistit, jestli je čas model znovu natrénovat, zjišťuje posun dat.

Tento příklad ukazuje, jak pomocí Event Gridu s aplikací logiky Azure aktivovat opětovné trénování. Příklad aktivuje kanál Azure Data Factory, když dojde k posunu dat mezi trénováním modelu a obsluhou datových sad.

Než začnete, proveďte následující akce:

V tomto příkladu se jednoduchý kanál Data Factory používá ke kopírování souborů do úložiště objektů blob a spuštění publikovaného kanálu Učení počítače. Další informace o tomto scénáři najdete v tématu nastavení počítače Učení kroku ve službě Azure Data Factory.

Snímek obrazovky znázorňující trénovací kanál ve službě Azure Data Factory

  1. Začněte vytvořením aplikace logiky. Přejděte na web Azure Portal, vyhledejte Logic Apps a vyberte Vytvořit.

    search-logic-app

  2. Vyplňte požadované informace. Pokud chcete prostředí zjednodušit, použijte stejné předplatné a skupinu prostředků jako váš kanál Azure Data Factory a pracovní prostor azure machine Učení.

    Snímek obrazovky s podoknem Vytvoření aplikace logiky

  3. Jakmile vytvoříte aplikaci logiky, vyberte Při výskytu události prostředku Event Gridu.

    Snímek obrazovky znázorňující Návrháře pro Logic Apps s běžnými možnostmi triggeru, včetně události Při výskytu události prostředku Event Gridu

  4. Přihlaste se a vyplňte podrobnosti události. Nastavte název prostředku na název pracovního prostoru. Nastavte typ události na DatasetDriftDetected.

    Snímek obrazovky znázorňující položku typu události posunu dat

  5. Přidejte nový krok a vyhledejte Azure Data Factory. Vyberte Vytvořit spuštění kanálu.

    Snímek obrazovky znázorňující podokno Zvolit akci s vybranou možností Vytvořit spuštění kanálu

  6. Přihlaste se a zadejte publikovaný kanál služby Azure Data Factory, který se má spustit.

    Snímek obrazovky znázorňující podokno Vytvořit spuštění kanálu s různými hodnotami

  7. Aplikaci logiky uložte a vytvořte pomocí tlačítka Uložit v levém horním rohu stránky. Pokud chcete zobrazit aplikaci, přejděte na webu Azure Portal do svého pracovního prostoru a vyberte Události.

    Snímek obrazovky znázorňující události se zvýrazněnou aplikací logiky

Kanál datové továrny se teď aktivuje, když dojde k posunu. Zobrazení podrobností o spuštění posunu dat a kanálu strojového učení v studio Azure Machine Learning

Snímek obrazovky znázorňující koncové body kanálu

Další kroky

Přečtěte si další informace o Event Gridu a poskytněte službě Azure Machine Učení události vyzkoušet: