Upravit

Sdílet prostřednictvím


Mnoho modelů strojového učení ve velkém měřítku s využitím služby Azure Machine Learning

Azure Data Factory
Azure Data Lake
Azure Databricks
Azure Machine Learning
Azure Synapse Analytics

Tento článek popisuje architekturu pro mnoho modelů, které používají Machine Learning a výpočetní clustery. Poskytuje skvělou všestrannost pro situace, které vyžadují komplexní nastavení.

Doprovodný článek, mnoho modelů strojového učení ve velkém měřítku v Azure pomocí Sparku, používá Apache Spark v Azure Databricks nebo Azure Synapse Analytics.

Architektura

Diagram architektury pro mnoho modelů strojového učení ve velkém měřítku v Azure se službou Azure Machine Learning

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

Workflow

  1. příjem dat :

    • Azure Data Factory načítá data ze zdrojové databáze a zkopíruje je do Azure Data Lake Storage.
    • Data se pak uloží do úložiště dat Machine Learning jako tabulková datová sada.
  2. kanál Model-Training:

    1. příprava dat :
      • Trénovací kanál načítá data z úložiště dat a podle potřeby je dále transformuje.
      • Data se seskupují do datových sad pro trénování modelů.
    2. Trénování modelů:
      • Kanál trénuje modely pro všechny datové sady vytvořené během přípravy dat.
      • Používá třídu ParallelRunStep k paralelnímu trénování více modelů.
      • Po trénování kanál zaregistruje modely ve službě Machine Learning spolu s jejich testovacími metrikami.
  3. kanál Model-Promotion:

    1. Vyhodnotit modely:
      • Kanál povýšení vyhodnocuje natrénované modely před jejich přesunutím do produkčního prostředí.
      • Kanál DevOps používá obchodní logiku k určení, jestli model splňuje kritéria nasazení (například kontrola přesnosti testovacích dat překračuje 80%).
    2. registrace modelů :
      • Kanál povýšení zaregistruje opravňující modely do produkčního pracovního prostoru Machine Learning.
  4. kanál Batch-Scoring modelu :

    1. příprava dat :
      • Kanál dávkového bodování načítá data z úložiště dat a podle potřeby každý soubor dále transformuje.
      • Data se seskupují do datových sad pro bodování.
    2. Modely skóre :
      • Kanál používá ParallelRunStep třídu k hodnocení více datových sad paralelně.
      • Identifikuje vhodný model pro každou datovou sadu ve službě Machine Learning vyhledáváním značek modelu.
      • Model se stáhne a použije se k určení skóre datové sady.
      • Třída DataTransferStep slouží k zápisu výsledků zpět do Azure Data Lake.
      • Předpovědi se pak předávají z Azure Data Lake do Synapse SQL pro obsluhu.
  5. bodování Real-Time:

    • Spravovaný koncový bod Online se používá k poskytování skóre v reálném čase.
    • Vzhledem k velkému počtu modelů se načítají na vyžádání místo před načtením.
  6. Výsledky:

    1. Předpovědi: Kanál dávkového bodování ukládá předpovědi do Synapse SQL.
    2. Metriky: Power BI se připojí k předpovědím modelu, aby se načetly a agregují výsledky prezentace.

Komponenty

  • azure Data Factory je cloudová služba pro integraci dat, která umožňuje vytvářet pracovní postupy řízené daty pro orchestraci a automatizaci přesunu a transformace dat. V této architektuře se Azure Data Factory používá k ingestování podnikových dat a metadat třetích stran do Azure Data Lake Storage.

  • azure Stream Analytics je služba pro analýzu a komplexní zpracování událostí v reálném čase navržená k analýze a zpracování velkých objemů dat rychlého streamování. V této architektuře by se služba Azure Stream Analytics mohla použít ke zpracování dat v reálném čase, i když se explicitně nezobrazuje v pracovním postupu.

  • Azure Machine Learning je služba strojového učení na podnikové úrovni, která umožňuje rychle vytvářet a nasazovat modely. Poskytuje uživatelům na všech úrovních dovedností nástroje, jako je návrhář s nízkým kódem, automatizované strojové učení (AutoML) a hostované prostředí poznámkového bloku Jupyter, které podporuje různé prostředí IDEs. V této architektuře se Azure Machine Learning používá ke správě životního cyklu modelů strojového učení, včetně trénování, vyhodnocení, nasazení a orchestrace kanálů, jako je trénování, povýšení a vyhodnocování.

    spravovaného online koncového bodu je funkce služby Azure Machine Learning, která se používá k vyhodnocování v reálném čase. V této architektuře poskytuje škálovatelný a bezpečný způsob, jak poskytovat předpovědi téměř v reálném čase načítáním modelů strojového učení na vyžádání.

  • ParallelRunStep je součástí kanálů Služby Azure Machine Learning, které se používají k efektivnímu spouštění paralelních úloh. Umožňuje škálovatelné spouštění dávkových procesů, jako je trénování nebo vyhodnocování mnoha modelů současně. V této architektuře se ParallelRunStep používá v kanálech trénování modelu i dávkového bodování k paralelnímu trénování nebo hodnocení více datových sad nebo modelů, což výrazně snižuje běh těchto operací.

  • Azure Data Lake Storage je široce škálovatelná a zabezpečená služba úložiště pro vysoce výkonné analytické úlohy. V této architektuře azure Data Lake Storage slouží jako primární vrstva úložiště pro nezpracované a transformované datové sady a také pro ukládání výsledků z hodnoticích kanálů.

  • Azure Synapse Analytics je analytická služba, která sjednocuje integraci dat, skladování podnikových dat a analýzu velkých objemů dat. Používá se v této architektuře k ukládání výsledků dávkového vyhodnocování, což umožňuje efektivní dotazování a načítání předpovědí pro generování sestav nebo analýzu. Synapse SQL se konkrétně používá k poskytování predikcí podřízeným aplikacím a povolení vizualizačních nástrojů, jako je Power BI, přístup k agregovaným výsledkům.

  • Azure SQL Database je plně spravovaná relační databáze jako služba. V této architektuře se Azure SQL Database používá k ukládání strukturovaných dat, která se můžou dotazovat nebo analyzovat jako součást datového kanálu.

  • Azure DevOps je sada vývojářských služeb, které poskytují komplexní správu životního cyklu aplikací a infrastruktury. Obsahuje nástroje pro sledování práce, správu zdrojového kódu, sestavení a CI/CD, správu balíčků a testovací řešení. V této architektuře se Azure DevOps používá ke správě kanálů CI/CD pro automatizaci povýšení, testování a nasazení modelů do produkčních prostředí.

  • Microsoft Power BI je kolekce softwarových služeb, aplikací a konektorů, které spolupracují na tom, aby nesouvisející zdroje dat přeměnily na koherentní, vizuálně imerzivní a interaktivní přehledy. V této architektuře se Power BI připojí k Synapse SQL za účelem načtení a prezentace předpovědí a agregovaných metrik prostřednictvím interaktivních řídicích panelů.

Alternativy

  • Zdrojová data můžou pocházet z jakékoli databáze.
  • Službu Azure Kubernetes Service (AKS) můžete použít k odvozování v reálném čase místo spravovaných online koncových bodů. AKS umožňuje nasazovat kontejnerizované modely a poskytuje větší kontrolu nad nasazením, což umožňuje dynamické načítání modelů pro zpracování příchozích požadavků bez vyčerpání prostředků.

Podrobnosti scénáře

Mnoho problémů se strojovým učením je pro řešení jednoho modelu strojového učení příliš složité. Ať už se jedná o predikci prodeje pro každou položku každého obchodu, nebo modelování údržby stovek ropy, může model pro každou instanci zlepšit výsledky mnoha problémů se strojovým učením. Tento vzor mnoha modelů je společný v nejrůznějších odvětvích a má mnoho případů použití z reálného světa. S využitím služby Azure Machine Learning může kanál komplexního počtu modelů zahrnovat trénování modelů, nasazení dávkového odvozování a nasazení v reálném čase.

Řešení mnoha modelů vyžaduje při trénování a vyhodnocování jinou datovou sadu pro každý model. Pokud má například úkol předpovědět prodeje pro každou položku každého obchodu, bude každá datová sada určená pro jedinečnou kombinaci úložiště položek.

Potenciální případy použití

  • Maloobchod: Řetězec obchodu s potravinami musí vytvořit samostatný model prognózy výnosů pro každou prodejnu a položku s celkovým počtem více než 1 000 modelů na obchod.
  • Dodavatelský řetězec: Pro každou kombinaci skladu a produktu potřebuje distribuční společnost optimalizovat inventář.
  • Restaurace: Řetězec s tisíci franšíz musí předpovědět poptávku po každém.

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.

  • Oddíly dat, které data rozdělují, jsou klíčem k implementaci modelu mnoha modelů. Pokud chcete pro každé úložiště jeden model, datová sada obsahuje všechna data pro jedno úložiště a existuje tolik datových sad, kolik existuje. Pokud chcete modelovat produkty podle obchodu, bude k dispozici datová sada pro každou kombinaci produktů a obchodů. V závislosti na formátu zdrojových dat může být snadné rozdělit data do oddílů nebo může vyžadovat rozsáhlé náhodné prohazování a transformaci dat. Spark a Synapse SQL se velmi dobře škálují pro takové úlohy, zatímco Knihovna pandas Pythonu ne, protože běží jenom na jednom uzlu a procesu.
  • Správa modelů: Kanály trénování a bodování identifikují a vyvolávají správný model pro každou datovou sadu. K tomu vypočítají značky, které charakterizují datovou sadu, a pak pomocí značek vyhledá odpovídající model. Značky identifikují klíč oddílu dat a verzi modelu a můžou také poskytovat další informace.
  • Volba správné architektury:
    • Spark je vhodný v případě, že váš trénovací kanál má složité požadavky na transformaci a seskupování dat. Poskytuje flexibilní techniky rozdělení a seskupování pro seskupení dat podle kombinací charakteristik, jako je obchod s produkty nebo umístění produktu. Výsledky je možné umístit do datového rámce Sparku pro použití v dalších krocích.
    • Když jsou trénovací a bodovací algoritmy strojového učení jednoduché, možná budete moct rozdělit data do oddílů s knihovnami, jako je scikit-learn. V takových případech možná nebudete potřebovat Spark, abyste se vyhnuli možným složitostem, ke kterým může dojít při instalaci Azure Synapse nebo Azure Databricks.
    • Když už jsou trénovací datové sady vytvořené , například jsou v samostatných souborech nebo v samostatných řádcích nebo sloupcích, nepotřebujete Spark pro složité transformace dat.
    • Řešení Machine Learning a výpočetních clusterů poskytuje skvělou všestrannost pro situace, které vyžadují komplexní nastavení. Můžete například použít vlastní kontejner Dockeru nebo stáhnout soubory nebo stáhnout předem natrénované modely. Hluboké učení pro počítačové zpracování obrazu a přirozeného jazyka (NLP) jsou příklady aplikací, které by mohly vyžadovat takovou všestrannost.
  • Samostatná úložiště modelů: Pokud chcete chránit nasazené modely, zvažte jejich uložení do vlastního úložiště, do kterého se kanály trénování a testování nedotknou.
  • ParallelRunStep – třída: Třída Python ParallelRunStep je výkonná možnost spouštění mnoha modelů trénování a odvozování. Data se dají rozdělit různými způsoby a pak použít skript strojového učení na prvky oddílu paralelně. Stejně jako u jiných forem trénování ve službě Machine Learning můžete zadat vlastní trénovací prostředí s přístupem k balíčkům PyPI (Python Package Index) nebo pokročilejší vlastní prostředí Dockeru pro konfigurace, které vyžadují více než standardní PyPI. Můžete si vybrat z mnoha procesorů a grafických procesorů.
  • Online odvozování: Pokud se kanál načte a ukládá do mezipaměti všechny modely na začátku, můžou modely vyčerpat paměť kontejneru. Proto načtěte modely na vyžádání v metodě spuštění, i když může mírně zvýšit latenci.

Optimalizace nákladů

Optimalizacenákladůch Další informace najdete v kontrolním seznamu pro kontrolu návrhu pro optimalizaci nákladů.

Pokud chcete lépe porozumět nákladům na provoz tohoto scénáře v Azure, použijte cenovou kalkulačku. Dobrými počátečními předpoklady jsou:

  • Obslužné modely jsou natrénované každý den, aby byly aktuální.
  • U datové sady 40 milionů řádků s 10 tisíci kombinacemi úložiště a produktů trvá trénování v Azure Databricks pomocí clusteru zřízeného s 12 virtuálními počítači, které používají Ls16_v2 instance, přibližně 30 minut.
  • Dávkové vyhodnocování se stejnou sadou dat trvá přibližně 20 minut.
  • Machine Learning můžete použít k nasazení odvozování v reálném čase. V závislosti na svazku požadavku zvolte odpovídající typ virtuálního počítače a velikost clusteru.
  • Cluster AKS se podle potřeby automaticky škáluje, což vede k tomu, že v průměru jsou aktivní dva uzly za měsíc.

Pokud chcete zjistit, jak se ceny pro váš případ použití liší, změňte proměnné tak, aby odpovídaly očekávané velikosti dat a obsluhovaly požadavky na načtení. U větších nebo menších trénovacích dat zvětšete nebo zmenšete velikost clusteru Azure Databricks. Pokud chcete během obsluhy modelu zpracovat více souběžných uživatelů, zvyšte velikost clusteru AKS.

Přispěvatelé

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

Hlavní autor:

Další kroky