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. Tento proces definuje standardizovaný způsob přesunu modelů strojového učení a kanálů z vývoje do produkčního prostředí s možnostmi zahrnutí automatizovaných a ručních procesů.
Architektura
Stáhněte si soubor aplikace Visio s touto architekturou.
Workflow
Toto řešení poskytuje robustní proces MLOps, který používá Azure Databricks. Všechny prvky v architektuře jsou připojitelné, takže můžete podle potřeby integrovat další služby Azure a služby třetích stran. Tato architektura a popis jsou přizpůsobeny z elektronické knihy The Big Book of MLOps
. Tato elektronická kniha zkoumá architekturu popsanou zde podrobněji.
Správa zdrojového kódu: Úložiště kódu tohoto projektu uspořádá poznámkové bloky, moduly a kanály. Datoví vědci vytvářejí vývojové větve pro testování aktualizací a nových modelů. Kód se vyvíjí v poznámkových blocích nebo v prostředích ID, které podporuje Git, s integrací Databricks Repos pro synchronizaci s vašimi pracovními prostory Azure Databricks. Správa zdrojového kódu podporuje kanály strojového učení od vývoje prostřednictvím přípravy (pro testování) do produkčního prostředí (pro nasazení).
Lakehouse – produkční data: Datoví vědci pracují ve vývojovém prostředí, kde mají přístup jen pro čtení k produkčním datům. (Případně je možné data zrcadlit nebo znovu upravovat.) Mají také přístup pro čtení a zápis do vývojového prostředí úložiště pro účely vývoje a experimentování. Pro data doporučujeme architekturu Lakehouse , ve které jsou data uložená ve službě Azure Data Lake Storage ve formátu Delta Lake . Řízení přístupu se definuje pomocí předávání přihlašovacích údajů Microsoft Entra nebo řízení přístupu k tabulce.
Vývoj
Ve vývojovém prostředí vyvíjejí kanály strojového učení datoví vědci a technici.
Průzkumná analýza dat (EDA): Datoví vědci prozkoumávají data v interaktivním iterativním procesu. Tato ad hoc práce nemusí být nasazena do přípravného nebo produkčního prostředí. Mezi nástroje můžou patřit Databricks SQL a
dbutils.data.summarize
AutoML.Trénovánímodelů a další kanály strojového učení: Kanály strojového učení se vyvíjejí jako modulární kód v poznámkových blocích nebo prostředích IDE. Například kanál trénování modelu čte data z úložiště funkcí a dalších tabulek Lakehouse. Trénování a ladění parametrů a metrik modelu protokolu na server pro sledování MLflow Rozhraní API úložiště funkcí protokoluje konečný model. Tyto protokoly propojují model, jeho vstupy a trénovací kód.
Potvrzení kódu: Pro zvýšení úrovně pracovního postupu strojového učení do produkčního prostředí potvrdí datový vědec kód pro featurizaci, trénování a další kanály do správy zdrojového kódu.
Příprava
V přípravném prostředí se testy infrastruktury CI změní na kanály strojového učení v prostředí, které napodobuje produkční prostředí.
Žádost o sloučení: Když se žádost o sloučení (nebo přijetí změn) odešle 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.
Testy jednotek a CI: Testy jednotek se spouštějí v infrastruktuře CI a integrační testy spouštějí kompletní pracovní postupy v Azure Databricks. Pokud testy projdou, kód se sloučí.
Vytvoření větve vydané verze: Když jsou technici strojového učení připraveni nasadit aktualizované kanály strojového učení do produkčního prostředí, můžou 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 úložiště funkcí. Běží nepřetržitě v režimu streamování, běží podle plánu nebo se aktivuje.
Trénování modelu: V produkčním prostředí se kanál trénování nebo opětovného trénování modelu aktivuje nebo naplánuje na trénování nového modelu na nejnovějších produkčních datech. Modely jsou zaregistrované v registru modelů MLflow.
Průběžné nasazování: Registrace nových verzí modelu aktivuje kanál CD, který spouští testy, aby se zajistilo, že model bude v produkčním prostředí dobře fungovat. S tím, jak model projde testy, se jeho průběh sleduje v registru modelů prostřednictvím přechodů fází modelu. Webhooky registru lze použít pro automatizaci. Testy můžou zahrnovat 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. Výsledky testů a metriky se zaznamenávají v tabulkách Lakehouse. Volitelně můžete vyžadovat ruční odhlašování před přechodem modelů do produkčního prostředí.
Nasazení modelu: Při vstupu modelu do produkčního prostředí se nasadí 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 registru modelů 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): U případů použití s nízkou latencí je online obsluha obecně nezbytná. MLflow může nasazovat modely do MLflow Model Obsluhy v Azure Databricks, poskytovateli cloudových služeb a dalších systémech. Ve všech případech se obslužný systém inicializuje pomocí nejnovějšího produkčního modelu z registru modelů. Pro každý požadavek načte funkce z online úložiště funkcí a předpovědí.
Monitorování: Průběžné nebo pravidelné pracovní postupy monitorují vstupní data a předpovědi modelu pro posun, výkon a další metriky. Rozdílové živé tabulky můžou zjednodušit automatizaci kanálů monitorování 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.
Přetrénování: Tato architektura podporuje ruční i automatické přetrénování. Naplánované úlohy opětovného natrénování představují nejjednodušší způsob, jak zachovat modely čerstvé.
Komponenty
- Data Lakehouse. Architektura Lakehouse sjednocuje nejlepší prvky datových jezer a datových skladů, což zajišťuje správu a výkon dat obvykle v datových skladech s nízkonákladovými flexibilními úložišti objektů nabízenými datovými jezery.
- Delta Lake je doporučenou volbou pro 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í. Toto jsou její hlavní komponenty:
- Sledování umožňuje sledovat experimenty pro zaznamenávání a porovnávání parametrů, metrik a artefaktů modelu.
- Automatické protokolování Databricks rozšiřuje automatické protokolování MLflow a sleduje experimenty strojového učení, automaticky protokoluje parametry modelu, metriky, soubory a informace o rodokmenu.
- Model MLflow umožňuje ukládat a nasazovat modely z libovolné knihovny strojového učení do různých platforem obsluhy a odvozování modelů.
- Registr modelů poskytuje centralizované úložiště modelů pro správu přechodů fází životního cyklu modelu z vývoje do produkčního prostředí.
- Obsluha modelů umožňuje hostovat modely MLflow jako koncové body REST.
- Sledování umožňuje sledovat experimenty pro zaznamenávání a porovnávání parametrů, metrik a artefaktů modelu.
- Azure Databricks. Azure Databricks poskytuje spravovanou službu MLflow s funkcemi podnikového zabezpečení, vysokou dostupností a integrací s dalšími funkcemi pracovního prostoru Azure Databricks.
- Databricks Runtime pro Machine Learning automatizuje vytváření clusteru, který je optimalizovaný pro strojové učení, předinstalace oblíbených knihoven strojového učení, jako jsou TensorFlow, PyTorch a XGBoost, a také Azure Databricks pro nástroje strojového učení, jako jsou autoML a klienti úložiště funkcí.
- Úložiště funkcí je centralizované úložiště funkcí. Umožňuje sdílení a zjišťování funkcí a pomáhá zabránit nerovnoměrné distribuci dat mezi trénováním modelu a odvozováním.
- Databricks SQL Databricks SQL poskytuje jednoduché prostředí pro dotazy SQL na data Lakehouse a vizualizace, řídicí panely a výstrahy.
- Databricks Repos poskytuje integraci s vaším poskytovatelem Gitu v pracovním prostoru Azure Databricks, což zjednodušuje vývoj poznámkových bloků 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. Mezi běžná přizpůsobení patří:
- Několik vývojových pracovních prostorů, které sdílejí společný produkční pracovní prostor.
- Výměna jedné nebo více komponent architektury pro stávající infrastrukturu K orchestraci úloh Databricks můžete například použít Azure Data Factory .
- Integrace s existujícími nástroji CI/CD prostřednictvím rozhraní REST API Gitu a Azure Databricks
Podrobnosti scénáře
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 Návrh MLOps na Lakehouse.
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 umožňuje datovým vědcům používat poznámkové bloky a prostředí IDE pro vývoj. Umožňuje obchodním zúčastněným stranám 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í (data z přípravy funkcí, trénování, odvozování a monitorování) stejně jako ostatní data. 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 umožňují modulární kanály a kód v této architektuře testování jednotlivých komponent a snížit náklady na budoucí refaktoring.
- Podle potřeby automatizujte procesy MLOps. V této architektuře můžete automatizovat kroky, které zlepšují produktivitu a snižují riziko lidských chyb, ale ne každý krok je potřeba automatizovat. 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í / AI používané 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 přizpůsobí vašim datům a dimenzím problémů.
Architektura se vztahuje na všechny typy odvětví a obchodní případy použití. Zákazníci Azure Databricks, kteří používají tuto a podobnou architekturu, zahrnují malé a velké organizace v odvětvích, jako jsou tyto:
- Spotřební zboží a maloobchodní služby
- Finanční služby
- Zdravotnictví a lékařské technologie
- Informační technologie
Příklady najdete na webu Databricks.
Přispěvatelé
Tento článek spravuje Microsoft. Původně byla napsána následujícími přispěvateli.
Hlavní autor:
- Brandon Cowen | Vedoucí architekt cloudových řešení
Další přispěvatel:
- Mick Alberts | Technický spisovatel
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
The Big Book of MLOps
- Potřeba platforem strojového učení orientovaných na data (úvod do MLOps)
- Rychlý start ke službě Databricks Machine Learning v produktu
- 10minutové kurzy: Začínáme se strojovým učením v Azure Databricks
- Dokumentace ke službě Databricks Machine Learning
- Stránka a zdroje informací o produktu Databricks Machine Learning
- MLOps v Databricks: Průvodce postupy
- Automatizace životního cyklu strojového učení pomocí strojového učení Databricks
- MLOps v Azure Databricks s MLflow
- Machine Learning Engineering for the Real World
- Automatizace kanálu strojového učení
- Databricks Academy
- Projekt GitHubu pro Databricks Academy
- Glosář MLOps
- Tři principy pro výběr platforem strojového učení
- Co je lakehouse?
- Domovská stránka Delta Lake
- Příjem dat do Azure Databricks Lakehouse
- Clustery
- Knihovny
- Dokumentace k MLflow
- Průvodce MLflow pro Azure Databricks
- Sdílení modelů mezi pracovními prostory
- Poznámkové bloky
- Vývojářské nástroje a pokyny
- Nasazení modelů MLflow do online koncových bodů ve službě Azure Machine Learning
- Nasazení do služby Azure Kubernetes Service (AKS)