Dávkové vyhodnocování modelů Python v Azure

Azure Container Registry
Azure Event Hubs
Azure Machine Learning
Azure SQL Database
Azure Stream Analytics

Tento průvodce architekturou ukazuje, jak vytvořit škálovatelné řešení pro modely dávkového vyhodnocování azure machine Učení. Řešení lze použít jako šablonu a generalizovat různé problémy.

Architektura

Diagram architektury znázorňující dávkové bodování modelů Pythonu v Azure

Stáhněte si soubor aplikace Visio s touto architekturou.

Workflow

Tento průvodce architekturou platí pro streamovaná i statická data za předpokladu, že proces příjmu dat je přizpůsobený datovému typu. Následující kroky a komponenty popisují příjem těchto dvou typů dat.

Streamovaná data:

  1. Streamovaná data pocházejí ze senzorů IoT, kde se v častých intervalech streamují nové události.
  2. Příchozí streamované události se zařadí do fronty pomocí služby Azure Event Hubs a pak se předzpracují pomocí Azure Stream Analytics.
    • Azure Event Hubs. Tato služba příjmu zpráv může ingestovat miliony zpráv událostí za sekundu. V této architektuře senzory odesílají datový proud do centra událostí.
    • Azure Stream Analytics. Modul pro zpracování událostí. Úloha Stream Analytics čte datové proudy z centra událostí a provádí zpracování datových proudů.

Statická data:

  1. Statické datové sady se dají ukládat jako soubory ve službě Azure Data Lake Storage nebo v tabulkové podobě ve službě Azure Synapse nebo Azure SQL Database.
  2. Azure Data Factory se dá použít k agregaci nebo předběžnému zpracování uložené datové sady.

Zbývající architektura po příjmu dat je stejná pro streamovaná i statická data a skládá se z následujících kroků a součástí:

  1. Ingestovaná, agregovaná nebo předem zpracovaná data se dají ukládat jako dokumenty ve službě Azure Data Lake Storage nebo v tabulkové podobě ve službě Azure Synapse nebo Azure SQL Database. Tato data pak budou spotřebována službou Azure Machine Učení.
  2. Azure Machine Učení slouží k trénování, nasazování a správě modelů strojového učení ve velkém měřítku. V kontextu dávkového vyhodnocování azure machine Učení vytvoří cluster virtuálních počítačů s možností automatického škálování, kde se úlohy spouští paralelně jako skripty Pythonu.
  3. Modely se nasazují jako koncové body spravované dávky, které se pak používají k dávkovému odvozování velkých objemů dat v určitém časovém období. Dávkové koncové body přijímají ukazatele na data a spouštějí úlohy asynchronně, aby se data zpracovávala ve výpočetních clusterech paralelně.
  4. Výsledky odvozování se dají ukládat jako dokumenty ve službě Azure Data Lake Storage nebo v tabulkové podobě ve službě Azure Synapse nebo Azure SQL Database.
  5. Vizualizujte: Výsledky uloženého modelu je možné využívat prostřednictvím uživatelských rozhraní, jako jsou řídicí panely Power BI nebo prostřednictvím vlastních webových aplikací.

Komponenty

Důležité informace

Tyto aspekty implementují pilíře dobře architektuře Azure, což je sada hlavních principů, které je možné použít ke zlepšení kvality úlohy. Další informace naleznete v tématu Microsoft Azure Well-Architected Framework.

Výkon

U standardních modelů Pythonu se obecně uznává, že procesory jsou dostatečné pro zpracování úloh. Tato architektura používá procesory. U úloh hlubokého učení ale grafické procesory (GPU) obvykle výrazně přesáhly procesory. K získání srovnatelného výkonu obvykle potřebujete velikost clusteru procesorů.

Paralelizace napříč virtuálními počítači a jádry

Při spouštění hodnoticích procesů mnoha modelů v dávkovém režimu je potřeba úlohy paralelizovat napříč virtuálními počítači. Možné jsou dva přístupy:

  • Vytvořte větší cluster pomocí nízkonákladových virtuálních počítačů.
  • Vytvořte menší cluster s využitím vysoce výkonných virtuálních počítačů s více jádry dostupnými na jednotlivých virtuálních počítačích.

Obecně platí, že bodování standardních modelů Pythonu není tak náročné jako bodování modelů hlubokého učení a malý cluster by měl být schopný efektivně zpracovávat velký počet ve frontě modelů. S rostoucí velikostí datových sad můžete zvýšit počet uzlů clusteru.

Pro usnadnění tohoto scénáře se jedna úloha bodování odešle v rámci jednoho kroku kanálu Učení azure machine. Může ale být efektivnější určit skóre více datových bloků v rámci stejného kroku kanálu. V takových případech napište vlastní kód, který se má číst v několika datových sadách, a během provádění jednoho kroku spusťte bodovací skript.

Správa

  • Monitorování úloh Je důležité sledovat průběh spuštěných úloh. Monitorování v clusteru aktivních uzlů ale může být náročné. Ke kontrole stavu uzlů v clusteru použijte Azure Portal ke správě pracovního prostoru Učení počítače. Pokud je uzel neaktivní nebo úloha selhala, protokoly chyb se ukládají do úložiště objektů blob a jsou také přístupné v části Pipelines . V případě rozsáhlejšího monitorování připojte protokoly k Přehledy aplikace nebo spusťte samostatné procesy, které se budou dotazovat na stav clusteru a jeho úloh.
  • Protokolování. Počítač Učení protokoluje všechny soubory stdout/stderr do přidruženého účtu Azure Storage. K snadnému zobrazení souborů protokolu použijte nástroj pro navigaci v úložišti, například Průzkumník služby Azure Storage.

Optimalizace nákladů

Optimalizace nákladů se zabývá způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. Další informace najdete v tématu Přehled pilíře optimalizace nákladů.

Nejnákladnější komponenty používané v tomto průvodci architekturou jsou výpočetní prostředky. Velikost výpočetního clusteru se škáluje nahoru a dolů v závislosti na úlohách ve frontě. Prostřednictvím sady Python SDK můžete prostřednictvím kódu programu povolit automatické škálování úpravou konfigurace zřizování výpočetních prostředků. Nebo pomocí Azure CLI nastavte parametry automatického škálování clusteru.

Pro práci, která nevyžaduje okamžité zpracování, nakonfigurujte vzorec automatického škálování tak, aby výchozí stav (minimum) byl cluster s nulovými uzly. S touto konfigurací cluster začíná s nulovými uzly a vertikálně navyšuje kapacitu pouze v případě, že detekuje úlohy ve frontě. Pokud se proces dávkového vyhodnocování stane jen několikrát denně nebo méně, toto nastavení umožňuje významné úspory nákladů.

Automatické škálování nemusí být vhodné pro dávkové úlohy, ke kterým dochází příliš blízko sebe. Vzhledem k tomu, že doba, kterou cluster potřebuje ke zprovoznění a zprovoznění, se účtují náklady, pokud dávkové úlohy začínají jenom pár minut po skončení předchozí úlohy, může být cenově výhodnější udržet cluster spuštěný mezi úlohami. Tato strategie závisí na tom, jestli jsou procesy vyhodnocování naplánované tak, aby běžely s vysokou frekvencí (například každou hodinu), nebo méně často (například jednou za měsíc).

Přispěvatelé

Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.

Hlavní autoři:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky

Dokumentace k produktu:

Moduly Microsoft Learn: