Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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. V důsledku toho 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
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. Pokud chcete definovat řízení přístupu, použijte řízení přístupu k tabulce.
Hlavní pracovní postup se skládá z následujících prostředí.
Vývoj
Ve vývojovém prostředí vyvíjíte kanály strojového učení.
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.
Vývoj trénování modelů a dalších kanálů strojového učení Vyvíjejte modulární kód kanálů strojového učení a orchestrujete kód 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.
Potvrďte kód. 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 pro správu 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í cyklu innerloop pro fázi vývoje použijte Visual Studio Code (VS Code) v kombinaci s rozhraním příkazového řádku vývojového kontejneru (CLI) 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í.
Sloučit žádost o změnu Když odešlete žádost o sloučení nebo žádost o přijetí změn do testovací (nebo hlavní) větve projektu ve správě zdrojového kódu, takový nástroj kontinuální integrace a průběžného doručování (CI/CD), jako je Azure DevOps, spustí testy.
Spusťte jednotkové testy a CI testy. Testy jednotek se spouštějí v infrastruktuře CI a testy integrace se spouštějí v kompletních pracovních postupech v Azure Databricks. Pokud testy projdou, kód se sloučí.
Vytvořte větev pro vydání. 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.
Aktualizace tabulky funkcí: Tento kanál čte data, výpočetní funkce a zápisy do tabulek. Toto potrubí můžete nastavit tak, aby běželo nepřetržitě v režimu streamování, běželo podle plánu nebo běželo na základě spouště.
Trénování modelu: V produkčním prostředí můžete nastavit pipeline trénování modelu nebo jeho opětovné trénování tak, aby se spouštělo na základě spuštění nebo podle plánu, a natrénovat čerstvý model na nejnovějších produkčních datech. Modely se automaticky zaregistrují do katalogu Unity.
Vyhodnocení a povýšení modelu: Když je zaregistrovaná nová verze modelu, spustí se kanál CD, který spustí testy, aby se zajistilo, že model funguje dobře 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í.
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ří následující možnosti:
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.
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 deklarativních kanálů Lakeflow 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.
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 nastavit tak, aby se spouštěly 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ů. Tato architektura používá lakehouse k získání možností správy a výkonu dat, které obvykle najdete v datových skladech, ale s nízkonákladovými flexibilními úložišti objektů, které datová jezera poskytují.
Jako open-source datový formát pro lakehouse doporučujeme Delta Lake. V této architektuře Delta Lake ukládá všechna data strojového učení 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í. V této architektuře MLflow sleduje experimenty, spravuje verze modelů a usnadňuje nasazení modelu na různé platformy odvozování. MLflow má následující komponenty:
Funkce sledování v MLflow je systém pro protokolování a správu experimentů strojového učení. V této architektuře zaznamenává a uspořádá parametry, metriky a artefakty modelu pro každé spuštění experimentu. Tato funkce umožňuje porovnat výsledky, reprodukovat experimenty a vývoj modelů auditu.
Automatické protokolování Databricks je funkce automatizace, která rozšiřuje automatické protokolování MLflow a sleduje experimenty strojového učení zachytáváním parametrů modelu, metrik, souborů a informací rodokmenu. V této architektuře autologování Databricks zajišťuje konzistentní sledování experimentů a reprodukovatelnost díky automatickému zaznamenávání těchto podrobností.
Model MLflow je standardizovaný formát balení. V této architektuře modely MLflow podporují úložiště modelů a nasazení napříč různými platformami pro obsluhu a odvozování.
Unity Catalog je řešení zásad správného řízení dat, které poskytuje centralizované řízení přístupu, auditování, rodokmen a možnosti zjišťování dat v pracovních prostorech Azure Databricks. V této architektuře řídí přístup, udržuje rodokmen a struktury modelů a dat napříč pracovními prostory.
Mosaic AI Model Serving je služba, která hostuje modely MLflow jako koncové body REST. V této architektuře umožňuje nasazené modely strojového učení obsluhovat předpovědi prostřednictvím rozhraní API.
Azure Databricks je spravovaná platforma pro analýzy a strojové učení. V této architektuře se Azure Databricks integruje s podnikovým zabezpečením, poskytuje vysokou dostupnost a spojuje MLflow a další komponenty strojového učení pro kompletní MLOps.
Databricks Runtime pro Machine Learning je předem nakonfigurované prostředí, které automatizuje vytvář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í. V této architektuře poskytuje clustery připravené k použití s oblíbenými knihovnami a nástroji strojového učení.
Úložiště funkcí je centralizované úložiště funkcí. V této architektuře úložiště funkcí podporuje zjišťování a sdílení funkcí a pomáhá zabránit nerovnoměrné distribuci dat mezi trénováním modelu a odvozováním.
Databricks SQL je bezserverový datový sklad, který se integruje s různými nástroji, abyste mohli vytvářet dotazy a řídicí panely v upřednostňovaných prostředích bez nutnosti úprav na novou platformu. V této architektuře vám Databricks SQL umožňuje dotazovat se na data a vytvářet řídicí panely pro analýzu a předkládání sestav.
Složky Gitu jsou integrované adresáře pracovních prostorů. V této architektuře složky Git připojují pracovní prostory Azure Databricks k vašemu poskytovateli Gitu. Tato integrace zlepšuje spolupráci na noteboocích a kódu a integraci do integrovaného vývojového prostředí (IDE).
Pracovní postupy a úlohy poskytují způsob, jak spustit neinteraktivní kód v clusteru Azure Databricks. V této architektuře poskytují pracovní postupy a úlohy 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.
Microsoft Fabric můžete použít jako alternativní službu pro možnosti strojového učení. Fabric poskytuje integrované úlohy pro datové inženýrství (lakehouses s využitím Apache Spark), datové sklady a OneLake pro sjednocené úložiště.
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: Second Edition. 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šit 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 provést následující akce:
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.
Zaměřte se na infrastrukturu strojového učení na data. 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 každý krok automatizovat. Azure Databricks umožňuje uživatelské rozhraní (UI) a ruční procesy a také rozhraní API pro automatizaci.
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. Tato architektura používá následující běžné techniky strojového učení a umělé inteligence:
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 malá data na jednom počítači i velkých datech pomocí prostředků akcelerovaných distribuovaným výpočetním prostředím a grafickým procesorem (GPU). V každé fázi architektury můžete zvolit výpočetní prostředky a knihovny, které se přizpůsobí velikosti dat a dimenzím problému 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
Další informace najdete v tématu Zákazníci Databricks.
Vyladění základního modelu v pracovních postupech MLOps
Vzhledem k tomu, že více organizací používá velké jazykové modely pro specializované úlohy, musí do procesu MLOps přidat základní vyladění modelu. Azure Databricks můžete použít k vyladění základních modelů s vašimi daty. Tato funkce podporuje vlastní aplikace a vyspělý proces MLOps. V kontextu architektury MLOps v tomto článku je vyladění v souladu s několika osvědčenými postupy:
Modulární kanály a kódy: Úkoly jemného ladění je možné zapouzdřovat jako modulární komponenty v rámci trénovacího kanálu. Tato struktura umožňuje izolované vyhodnocení a zjednodušuje refaktoring.
Sledování experimentu (vyladění spuštění): Integrace MLflow protokoluje každé jemné ladění spuštění s konkrétními parametry, jako je počet epoch a rychlost učení, a s metrikami, jako je ztráta a křížová entropie. Tento proces zlepšuje reprodukovatelnost, auditovatelnost a schopnost měřit vylepšení.
Registr modelů a nasazení: Jemně vyladěné modely se automaticky zaregistrují v katalogu Unity. Tato automatizace podporuje nasazení a správu.
Automatizace a CI/CD: Úlohy jemného ladění je možné zahájit prostřednictvím pracovních postupů Databricks nebo kanálů CI/CD. Tento proces podporuje cykly průběžného učení a aktualizace modelu.
Tento přístup umožňuje týmům udržovat vysokou vyspělost MLOps při používání flexibility a výkonu základních modelů. Další informace viz Doladění základního modelu.
Přispěvatelé
Microsoft udržuje tento článek. Tento článek napsali následující přispěvatelé.
Hlavní autoři:
- Brandon Cowen | Vedoucí architekt cloudových řešení
- Prabal Deb | Hlavní softwarový inženýr
Další přispěvatelé:
- Rodrigo Rodríguez | Vedoucí architekt cloudových řešení, AI a Quantum
Pokud chcete zobrazit nepublikované profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
- AI a strojové učení v Databricks
- Stránka produktu a zdroje informací o strojovém učení Databricks
- Trénování modelů AI a strojového učení v Azure Databricks