Upravit

Sdílet prostřednictvím


Použití přístupu M-models ke škálování modelů strojového učení

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í Azure Machine Learning a výpočetní clustery. Poskytuje všestrannost pro situace, které vyžadují komplexní nastavení.

Architektura

diagram, který znázorňuje architekturu mnoha modelů

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

Dataflow

Následující tok dat odpovídá předchozímu diagramu:

  1. příjem dat :

    1. Azure Data Factory načte data ze zdrojové databáze a zkopíruje je do Azure Data Lake Storage.

    2. Data se pak uloží do úložiště dat Machine Learning jako tabulková datová sada.

  2. Kanál trénování modelu:

    1. Příprava dat:

      1. Trénovací kanál načte data z úložiště dat a podle potřeby je transformuje.

      2. Data se seskupují do datových sad pro trénování modelů.

    2. Trénování modelů:

      1. Kanál trénuje modely pro všechny datové sady vytvořené během přípravy dat.

      2. Používá třídu ParallelRunStep k paralelnímu trénování více modelů.

      3. Po vytrénování modelů kanál zaregistruje modely a jejich testovací metriky ve službě Machine Learning.

  3. Kanál povýšení modelu:

    1. Vyhodnotit modely:

      1. Kanál povýšení vyhodnocuje vytrénované modely předtím, než je přesune do produkčního prostředí.

      2. Kanál DevOps použije obchodní logiku k určení, jestli model splňuje kritéria nasazení. Může například ověřit, že přesnost testovacích dat překračuje 80%.

    2. registrace modelů :

      1. Kanál povýšení zaregistruje opravňující modely do produkčního pracovního prostoru Machine Learning.
  4. Model kanálu dávkového bodování:

    1. Příprava dat:

      1. Kanál dávkového bodování načte data z úložiště dat a podle potřeby transformuje každý soubor.

      2. Data se seskupují do datových sad pro bodování.

    2. modely skóre :

      1. Kanál používá ParallelRunStep třídu k hodnocení více datových sad paralelně.

      2. Identifikuje vhodný model pro každou datovou sadu ve službě Machine Learning vyhledáváním značek modelu.

      3. Model se stáhne a použije se k určení skóre datové sady.

      4. Třída DataTransferStep zapisuje výsledky zpět do Azure Data Lake.

      5. Predikce se předávají z Azure Data Lake do Synapse SQL pro obsluhu.

      6. Spravovaný online koncový bod poskytuje bodování v reálném čase.

      7. Vzhledem k velkému počtu modelů se načítají na vyžádání místo před načtením.

  5. Výsledky:

    • Předpovědi: Kanál dávkového bodování ukládá předpovědi do Synapse SQL.

    • metriky : Microsoft 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 služba Azure Data Factory ingestuje podniková data a metadata třetích stran do Služby Data Lake Storage.

  • 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 kanály kontinuální integrace a průběžného doručování (CI/CD), sledování práce, správu zdrojového kódu, kanály sestavení, 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í.

  • azure SQL Database je plně spravovaná relační cloudová databáze. V této architektuře se služba 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 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 je možné Stream Analytics použít ke zpracování dat v reálném čase.

  • 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í. Tento přístup umožňuje efektivní dotazování a načítání předpovědí pro generování sestav nebo analýzu. Synapse SQL se 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.

  • 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 služba Data Lake Storage slouží jako primární vrstva úložiště pro nezpracované a transformované datové sady a pro ukládání výsledků z hodnoticích kanálů.

  • 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ář nízkého kódu, automatizované strojové učení a hostované prostředí poznámkového bloku Jupyter, které podporuje různá integrovaná vývojová prostředí. V této architektuře se Machine Learning používá ke správě životního cyklu modelů, včetně trénování, hodnocení a nasazení. Orchestruje také kanály pro úlohy, jako je trénování, povýšení a vyhodnocování.

    • spravované online koncové body jsou funkcí strojového učení, která se používá k vyhodnocování v reálném čase. V této architektuře pomáhá spravovaný online koncový bod poskytovat škálovatelný a bezpečný způsob, jak poskytovat předpovědi téměř v reálném čase načtením modelů strojového učení na vyžádání.

    • ParallelRunStep třídy je součástí kanálů Machine Learning, které se používají k efektivnímu spouštění paralelních úloh. Umožňuje škálovatelné zpracování dávkových úloh, jako je trénování nebo vyhodnocování mnoha modelů současně. V této architektuře se třída 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í.

  • Power BI je kolekce softwarových služeb, aplikací a konektorů, které společně spolupracují a převést nesouvisející zdroje dat 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

  • Pro zdrojová data můžete použít libovolnou databázi.

  • 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 nasadit kontejnerizované modely a poskytuje větší kontrolu nad nasazením. Tyto funkce umožňují 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 mít model pro každou instanci lepší výsledky v mnoha problémech 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 Machine Learning může kanál kompletní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 je například úkolem předpovědět prodeje pro každou položku v každém obchodě, každá datová sada odpovídá jedinečné kombinaci úložiště položek.

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

  • Maloobchod: Řetězec obchodu s potravinami musí pro každý obchod a položku vytvořit samostatný model prognózy výnosů, a to celkem přes 1 000 modelů pro každou prodejnu.

  • 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šízových licencí musí předpovědět poptávku po jednotlivých franšízách.

Důležité informace

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

  • Datových oddílů: Rozdělení dat na oddíly je nezbytné pro implementaci modelu mnoha modelů. Pokud chcete jeden model pro každé úložiště, každá datová sada obsahuje všechna data pro jedno úložiště, takže existuje tolik datových sad, kolik existuje. Pokud chcete modelovat produkty podle obchodu, existuje 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 dobře škálují pro tyto úlohy, zatímco Knihovna pandas Pythonu ne, protože běží 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. Dělají to výpočtem značek, které charakterizují datovou sadu, a pak pomocí značek najděte odpovídající model. Značky identifikují klíč oddílu dat a verzi modelu a můžou také poskytovat další informace.

  • Zvolit správnou architekturu:

    • Spark je vhodný v případech, kdy má trénovací kanál složité požadavky na transformaci dat a seskupování. 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.

    • Pokud jsou trénovací a bodovací algoritmy strojového učení jednoduché, možná budete moct rozdělit data do oddílů pomocí knihoven, jako je scikit-learn. V tomto scénáři možná nebudete potřebovat Spark, abyste se vyhnuli možným složitostem, ke kterým dojde při instalaci Azure Synapse Analytics nebo Azure Databricks.

    • Pokud už jsou vaše trénovací datové sady vytvořené, například když jsou uložené v samostatných souborech nebo jsou uspořádané do samostatných řádků nebo sloupců, nepotřebujete Spark pro složité transformace dat.

    • Řešení Machine Learning a výpočetních clusterů poskytuje všestrannost pro situace, které vyžadují komplexní nastavení. Můžete například použít vlastní kontejner Dockeru, 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 jsou příklady aplikací, které by mohly vyžadovat tuto všestrannost.

  • samostatných úložišť modelů: Pokud chcete chránit nasazené modely, zvažte jejich uložení do vlastního úložiště, ke kterému nemají kanály trénování a testování přístup.

  • ParallelRunStep třída: Třída Python ParallelRunStep je výkonnou možností pro spouštění mnoha modelů trénování a odvozování. Data se dají rozdělit různými způsoby a pak paralelně použít skript strojového učení na prvky oddílu. Stejně jako jiné formy trénování machine learningu můžete zadat vlastní trénovací prostředí, které má přístup k balíčkům PyPI (Python Package Index) nebo pokročilejšímu vlastnímu 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 od začátku, můžou modely zčertět 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ů

Optimalizace nákladů se zaměřuje na způsoby, jak snížit zbytečné výdaje a zlepšit efektivitu provozu. 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 spuštění tohoto scénáře v Azure, použijte cenovou kalkulačku . Měli byste předpokládat, že:

  • Obslužné modely jsou natrénované každý den, aby byly aktuální.

  • K zpracování datové sady, která obsahuje 40 milionů řádků s 10 tisíci jedinečnými kombinacemi produktů obchodu, potřebujete asi 30 minut. Datová sada se trénuje v Azure Databricks pomocí clusteru zřízeného s 12 virtuálními počítači, které používají Ls16_v2 instance. 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 vhodný typ virtuálního počítače a velikosti clusteru.

  • Cluster AKS se podle potřeby automaticky škáluje, což vede k průměru dvou aktivních uzlů každý měsíc.

Pokud chcete zjistit, jak se ceny pro váš případ použití liší, změňte proměnné v cenové kalkulačce 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é

Microsoft udržuje tento článek. Tento článek napsali následující přispěvatelé.

Hlavní autor:

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

Další kroky