Upravit

Sdílet prostřednictvím


Orchestrace MLOps pomocí Azure Databricks

Azure Databricks

Nápady na řešení

Tento článek popisuje myšlenku řešení. Váš cloudový architekt může pomocí těchto pokynů vizualizovat hlavní komponenty pro typickou implementaci této architektury. Tento článek slouží jako výchozí bod k návrhu dobře navrženého řešení, které odpovídá konkrétním požadavkům vaší úlohy.

Tento článek obsahuje architekturu a proces operací strojového učení (MLOps), který používá Azure Databricks. Datoví vědci a technici můžou tento standardizovaný proces použít k přesunu modelů a kanálů strojového učení z vývoje do produkčního prostředí.

Toto řešení může využívat plnou automatizaci, průběžné monitorování a robustní spolupráci, a proto cílí na úroveň 4 vyspělosti MLOps. Tato architektura používá kód pro zvýšení úrovně, který generuje přístup modelu , nikoli přístup k povýšení modelů . Zvýšení úrovně kódu, který generuje přístup k modelu , se zaměřuje na psaní a správu kódu, který generuje modely strojového učení. Doporučení v tomto článku zahrnují možnosti pro automatizované nebo ruční procesy.

Architektura

Diagram znázorňující řešení pro použití Azure Databricks pro MLOps

Tento diagram znázorňuje 12 kroků tohoto pracovního postupu. Část produkčních dat lakehouse obsahuje metriky datové tabulky, tabulky funkcí a modelu tabulky lakehouse. Část správy zdrojového kódu obsahuje vývojové, přípravné a vydané prostředí. Správa zdrojového kódu zahrnuje Azure DevOps a GitHub. V hlavním vývojovém prostředí čte krok 1 průzkumnou analýzu dat data z tabulky dat. Krok 2 trénování modelu čte data z tabulky dat a tabulky funkcí. Krok 3 potvrdí kód do vývojového prostředí ve správě zdrojového kódu. Krok 4 sloučí požadavek do přípravného prostředí. Přípravné prostředí správy zdrojového kódu aktivuje krok 5 jednotek a testů CI v hlavním přípravném prostředí, které čte data z tabulky funkcí a tabulky dat. Kód změní sloučení do přípravného prostředí správy zdrojového kódu. Krok 6 vytvoří větev vydané verze v prostředí verze. Šipka, která odkazuje z prostředí vydané verze do hlavního produkčního prostředí, říká Nasazení úloh Databricks pro strojové učení. V hlavním provozním prostředí čte aktualizace tabulky funkcí krok 7 data z tabulky dat a odesílá data do tabulky funkcí. Krok 8 trénování modelu čte data z detekce odchylek a opětovného trénování modelu. Krok 8 také nasdílí model do katalogu Unity. Krok 9 pro vyhodnocení a zvýšení úrovně modelu načte model z katalogu Unity pro vyhodnocení. Pak odešle model do přípravného a následného produkčního prostředí v katalogu Unity. Krok 10 nasazení modelu načte model pro odvozování a čtení dat z tabulky funkcí. Krok 11 monitorování čte data z tabulky funkcí a čte metriky modelu tabulky Lakehouse. Krok 11 také zapíše data do tabulky lakehouse a do služby Azure Monitor. Krok 12 přetrénování ukazuje na krok 8 a šipka uvádí opětovné trénování modelu triggeru.

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

Workflow

Následující pracovní postup odpovídá předchozímu diagramu. Správa a uspořádání kódu a dat pomocí správy zdrojového kódu a součástí úložiště

Správa zdrojového kódu: Úložiště kódu tohoto projektu uspořádá poznámkové bloky, moduly a kanály. Můžete vytvořit vývojové větve pro testování aktualizací a nových modelů. Vyvíjejte kód v poznámkových blocích podporovaných Gitem nebo integrovaných vývojových prostředích (IDE), která se integrují se složkami Gitu, abyste je mohli synchronizovat s pracovními prostory Azure Databricks. Správa zdrojového kódu podporuje kanály strojového učení z vývojového prostředí, testování v přípravném prostředí a nasazení v produkčním prostředí.

Produkční data Lakehouse: Jako datový vědec máte přístup jen pro čtení k produkčním datům ve vývojovém prostředí. Vývojové prostředí může mít zrcadlená data a upravená důvěrná data. Máte také přístup ke čtení a zápisu v vývojovém prostředí úložiště pro vývoj a experimentování. Doporučujeme použít architekturu lakehouse pro data, ve kterých ukládáte data ve formátu Delta Lake ve službě Azure Data Lake Storage. Lakehouse poskytuje robustní, škálovatelné a flexibilní řešení pro správu dat. K definování řízení přístupu použijte předávání přihlašovacích údajů Microsoft Entra ID nebo řízení přístupu k tabulce.

Následující prostředí tvoří hlavní pracovní postup.

Vývoj

Ve vývojovém prostředí vyvíjíte kanály strojového učení.

  1. Provádět průzkumnou analýzu dat (EDA): Prozkoumejte data v interaktivním iterativním procesu. Tuto práci nemusíte nasazovat do přípravného nebo produkčního prostředí. Použijte nástroje, jako je Databricks SQL, příkaz dbutils.data.summarize a Databricks AutoML.

  2. Vývoj trénování modelů a dalších kanálů strojového učení: Vývoj modulárního kódu kanálů strojového učení a orchestrace kódu prostřednictvím poznámkových bloků Databricks nebo projektu MLflow V této architektuře kanál trénování modelu čte data z úložiště funkcí a dalších tabulek lakehouse. Kanál trénuje a ladí parametry a metriky modelu protokolů na server pro sledování MLflow. Rozhraní API úložiště funkcí protokoluje konečný model. Mezi tyto protokoly patří model, jeho vstupy a trénovací kód.

  3. Potvrzení kódu: Pokud chcete zvýšit úroveň pracovního postupu strojového učení směrem k produkčnímu prostředí, potvrďte kód pro featurizaci, trénování a další kanály do správy zdrojového kódu. V základu kódu umístěte kód strojového učení a provozní kód do různých složek, aby členové týmu mohli vyvíjet kód současně. Kód strojového učení je kód, který souvisí s modelem a daty. Provozní kód je kód, který souvisí s úlohami a infrastrukturou Databricks.

Tento základní cyklus aktivit, které provedete při psaní a testování kódu, se označují jako vnitřní proces. K provedení procesu innerloopu pro fázi vývoje použijte Visual Studio Code v kombinaci s rozhraním příkazového řádku vývojového kontejneru a rozhraním příkazového řádku Databricks. Kód můžete napsat a místně provést testování jednotek. Kanály modelu byste také měli odesílat, monitorovat a analyzovat z místního vývojového prostředí.

Příprava

V přípravném prostředí se testy infrastruktury kontinuální integrace (CI) mění v kanálech strojového učení v prostředí, které napodobuje produkční prostředí.

  1. Sloučení požadavku: Když odešlete žádost o sloučení nebo žádost o přijetí změn do přípravné (hlavní) větve projektu ve správě zdrojového kódu, spustí nástroj kontinuální integrace a průběžné doručování (CI/CD), jako je Azure DevOps , testy.

  2. Spouštění testů jednotek a testů CI: Testy jednotek se spouštějí v infrastruktuře CI a integrační testy se spouštějí v kompletních pracovních postupech v Azure Databricks. Pokud testy projdou, kód se sloučí.

  3. Vytvořte větev verze: Pokud chcete nasadit aktualizované kanály strojového učení do produkčního prostředí, můžete vytvořit novou verzi. Kanál nasazení v nástroji CI/CD znovu nasadí aktualizované kanály jako nové pracovní postupy.

Výroba

Technici strojového učení spravují produkční prostředí, kde kanály strojového učení přímo obsluhují koncové aplikace. Klíčové kanály v tabulkách funkcí produkční aktualizace, trénování a nasazování nových modelů, spouštění odvozování nebo obsluhování a monitorování výkonu modelu.

  1. Aktualizace tabulky funkcí: Tento kanál čte data, výpočetní funkce a zápisy do tabulek. Tento kanál můžete nakonfigurovat tak, aby běžel nepřetržitě v režimu streamování, spouštěl podle plánu nebo běžel na triggeru.

  2. Trénování modelů: V produkčním prostředí můžete nakonfigurovat trénování modelu nebo kanál opětovného trénování tak, aby se spouštěl na triggeru nebo podle plánu, který bude trénovat nový model na nejnovějších produkčních datech. Modely se automaticky zaregistrují do katalogu Unity.

  3. Vyhodnocení a povýšení modelu: Když je zaregistrovaná nová verze modelu, aktivuje kanál CD, který spouští testy, aby se zajistilo, že model bude dobře fungovat v produkčním prostředí. Když model projde testy, Katalog Unity sleduje jeho průběh prostřednictvím přechodů fáze modelu. Testy zahrnují kontroly dodržování předpisů, testy A/B pro porovnání nového modelu s aktuálním produkčním modelem a testy infrastruktury. Tabulky Lakehouse zaznamenávají výsledky testu a metriky. Před přechodem modelů do produkčního prostředí můžete volitelně vyžadovat ruční odhlašování.

  4. Nasazení modelu: Když model přejde do produkčního prostředí, nasadí se pro bodování nebo obsluhu. Mezi nejběžnější režimy nasazení patří:

    • Dávkové nebo streamovací bodování: Pro latence minut nebo déle jsou dávky a streamování nákladově nejefektivnějšími možnostmi. Kanál bodování čte nejnovější data z úložiště funkcí, načte nejnovější verzi produkčního modelu z katalogu Unity a provádí odvozování v úloze Databricks. Může publikovat předpovědi do tabulek lakehouse, připojení JDBC (Java Database Connectivity), ploché soubory, fronty zpráv nebo jiné podřízené systémy.

    • Online obsluha (ROZHRANÍ REST API): Pro případy použití s nízkou latencí obvykle potřebujete online obsluhu. MLflow může nasazovat modely do obsluhy modelů Mosaic AI, systémů obsluhy poskytovatelů cloudu a dalších systémů. Ve všech případech inicializuje obslužný systém nejnovější produkční model z katalogu Unity. Pro každý požadavek načte funkce z online úložiště funkcí a vytváří předpovědi.

  5. Monitorování: Průběžné nebo pravidelné pracovní postupy monitorují vstupní data a předpovědi modelu pro posun, výkon a další metriky. Pomocí architektury Delta Live Tables můžete automatizovat monitorování kanálů a ukládat metriky do tabulek lakehouse. Databricks SQL, Power BI a další nástroje mohou z těchto tabulek číst a vytvářet řídicí panely a výstrahy. Pokud chcete monitorovat metriky aplikací, protokoly a infrastrukturu, můžete také integrovat Azure Monitor s Azure Databricks.

  6. Detekce odchylek a opětovné trénování modelu: Tato architektura podporuje ruční i automatické přetrénování. Naplánujte úlohy opětovného vytrénování, aby byly modely aktuální. Po zjištění posunu překročí předkonfigurovanou prahovou hodnotu, kterou jste nastavili v kroku monitorování, kanály opětovného trénování analyzují posun a aktivují opětovné trénování. Kanály můžete nakonfigurovat tak, aby se aktivovaly automaticky, nebo můžete obdržet oznámení a pak kanály spustit ručně.

Komponenty

  • Architektura datového jezera sjednocuje prvky datových jezer a datových skladů. Pomocí jezera můžete získat možnosti správy a výkonu dat, které se obvykle nacházejí v datových skladech, ale s nízkonákladovými flexibilními úložišti objektů, které datová jezera nabízejí.

    • Delta Lake je doporučený opensourcový formát dat pro lakehouse. Azure Databricks ukládá data ve službě Data Lake Storage a poskytuje vysoce výkonný dotazovací modul.
  • MLflow je opensourcový projekt pro správu kompletního životního cyklu strojového učení. MLflow má následující komponenty:

    • Funkce sledování sleduje experimenty, takže můžete zaznamenávat a porovnávat parametry, metriky a artefakty modelu.

    • MLflow Model je formát, který můžete použít k ukládání a nasazování modelů z libovolné knihovny strojového učení do různých platforem pro obsluhu modelů a odvozování.

    • Katalog Unity poskytuje centralizované možnosti řízení přístupu, auditování, rodokmenu a zjišťování dat napříč pracovními prostory Azure Databricks.

    • Hostování modelů MLflow jakokoncovýchch

  • Azure Databricks poskytuje spravovanou službu MLflow, která má funkce podnikového zabezpečení, vysokou dostupnost a integraci s dalšími funkcemi pracovního prostoru Azure Databricks.

    • Databricks Runtime pro Machine Learning automatizuje vytvoření clusteru optimalizovaného pro strojové učení a předinstalované oblíbené knihovny strojového učení, jako jsou TensorFlow, PyTorch a XGBoost. Předinstaluje také Azure Databricks pro nástroje Machine Learning, jako jsou AutoML a klienti úložiště funkcí.

    • Úložiště funkcí je centralizované úložiště funkcí. Úložiště funkcí slouží ke zjišťování a sdílení funkcí a k zabránění nerovnoměrné distribuci dat mezi trénováním modelu a odvozováním.

    • Databricks SQL se integruje s různými nástroji, abyste mohli vytvářet dotazy a řídicí panely ve svých oblíbených prostředích bez nutnosti upravovat novou platformu.

    • Složky Gitu poskytují integraci s vaším poskytovatelem Gitu v pracovním prostoru Azure Databricks, což zlepšuje integraci poznámkového bloku nebo kódu a integrace integrovaného vývojového prostředí (IDE).

    • Pracovní postupy a úlohy poskytují způsob, jak spustit neinteraktivní kód v clusteru Azure Databricks. Pro strojové učení úlohy poskytují automatizaci pro přípravu dat, featurizaci, trénování, odvozování a monitorování.

Alternativy

Toto řešení můžete přizpůsobit vaší infrastruktuře Azure. Zvažte následující přizpůsobení:

  • Použijte více vývojových pracovních prostorů, které sdílejí společný produkční pracovní prostor.

  • Vyměňte jednu nebo více komponent architektury pro stávající infrastrukturu. K orchestraci úloh Databricks můžete například použít Azure Data Factory .

  • Integrujte se stávajícími nástroji CI/CD prostřednictvím rozhraní REST API Gitu a Azure Databricks.

  • Jako alternativní služby pro možnosti strojového učení používejte Microsoft Fabric nebo Azure Synapse Analytics .

Podrobnosti scénáře

Toto řešení poskytuje robustní proces MLOps, který používá Azure Databricks. Všechny prvky v architektuře můžete nahradit, takže podle potřeby můžete integrovat další služby Azure a partnerské služby. Tato architektura a popis jsou upraveny z elektronické knihy The Big Book of MLOps. Elektronická kniha tuto architekturu podrobněji prozkoumá.

MLOps pomáhá snížit riziko selhání v systémech strojového učení a umělé inteligence a zlepšuje efektivitu spolupráce a nástrojů. Úvod do MLOps a přehled této architektury najdete v tématu Architekt MLOps na jezeře.

Pomocí této architektury můžete:

  • Propojte své obchodní účastníky s týmy strojového učení a datových věd. Tato architektura slouží k začlenění poznámkových bloků a prostředí IDE pro vývoj. Obchodní účastníci můžou zobrazit metriky a řídicí panely v Databricks SQL, a to vše ve stejné architektuře lakehouse.

  • Vytvořte datacentrickou infrastrukturu strojového učení. Tato architektura zpracovává data strojového učení stejně jako s jinými daty. Data strojového učení zahrnují data z přípravy funkcí, trénování, odvozování a monitorování. Tato architektura opakovaně používá nástroje pro produkční kanály, řídicí panely a další obecné zpracování dat pro zpracování dat strojového učení.

  • Implementujte MLOps v modulech a kanálech. Stejně jako u jakékoli softwarové aplikace použijte modularizované kanály a kód v této architektuře k testování jednotlivých komponent a snížení nákladů na budoucí refaktoring.

  • Podle potřeby automatizujte procesy MLOps. V této architektuře můžete automatizovat kroky ke zlepšení produktivity a snížení rizika lidské chyby, ale nemusíte automatizovat každý krok. Azure Databricks umožňuje kromě rozhraní API pro automatizaci také uživatelské rozhraní a ruční procesy.

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

Tato architektura se vztahuje na všechny typy strojového učení, hluboké učení a pokročilé analýzy. Mezi běžné techniky strojového učení a umělé inteligence v této architektuře patří:

  • Klasické strojové učení, jako jsou lineární modely, stromové modely a posílení.
  • Moderní hluboké učení, jako je TensorFlow a PyTorch.
  • Vlastní analýzy, jako jsou statistiky, Bayesovské metody a analýzy grafů.

Architektura podporuje jak malá data (jeden počítač), tak i velká data (distribuovaná výpočetní prostředí a akcelerované GPU). V každé fázi architektury můžete zvolit výpočetní prostředky a knihovny, které se budou přizpůsobovat datům a dimenzím problémů vašeho scénáře.

Architektura se vztahuje na všechny typy odvětví a obchodní případy použití. Zákazníci Azure Databricks, kteří používají tuto architekturu, zahrnují malé a velké organizace v následujících odvětvích:

  • Spotřební zboží a maloobchodní služby
  • Finanční služby
  • Zdravotnictví a lékařské technologie
  • Informační technologie

Příklady najdete v tématu Zákazníci Databricks.

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