Zásobníky MLOps: Proces vývoje modelů jako kód

Tento článek popisuje, jak mlOps Stacks umožňuje implementovat proces vývoje a nasazení jako kód v úložišti řízeném zdrojem. Popisuje také výhody vývoje modelů na platformě Databricks Data Intelligence, která je jedinou platformou, která sjednocuje každý krok procesu vývoje a nasazení modelu.

Co jsou zásobníky MLOps?

Díky zásobníkům MLOps se celý proces vývoje modelu implementuje, ukládá a sleduje jako kód v úložišti řízeném zdrojem. Automatizace procesu tímto způsobem usnadňuje opakovatelnější, předvídatelná a systematická nasazení a umožňuje integraci s procesem CI/CD. Reprezentace procesu vývoje modelu jako kódu umožňuje nasadit kód místo nasazení modelu. Nasazení kódu automatizuje schopnost sestavit model, což v případě potřeby výrazně usnadňuje přetrénování modelu.

Při vytváření projektu pomocí zásobníků MLOps definujete komponenty procesu vývoje a nasazení ML, jako jsou poznámkové bloky, které se mají použít pro přípravu funkcí, trénování, testování a nasazení, kanály pro trénování a testování, pracovní prostory, které se použijí pro jednotlivé fáze, a pracovní postupy CI/CD pomocí GitHub Actions nebo Azure DevOps pro automatizované testování a nasazení kódu.

Prostředí vytvořené službou MLOps Stacks implementuje pracovní postup MLOps, který doporučuje Databricks. Kód můžete přizpůsobit tak, aby vytvářel zásobníky odpovídající procesům nebo požadavkům vaší organizace.

Jak fungují zásobníky MLOps?

Pomocí rozhraní příkazového řádku Databricks vytvoříte zásobník MLOps. Podrobné pokyny krok za krokem najdete v tématu Deklarativní automatizační sady pro zásobníky MLOps.

Když zahájíte projekt MLOps Stacks, software vás provede zadáním podrobností konfigurace a pak vytvoří adresář obsahující soubory, které tvoří váš projekt. Tento adresář nebo balík implementuje produkční pracovní postup MLOps, který doporučuje Databricks. Komponenty zobrazené v diagramu jsou vytvořené za vás a k přidání vlastního kódu potřebujete jenom upravit soubory.

Diagram komponent MLOps stacků

V diagramu:

  • A: Datový vědec nebo inženýr ML inicializuje projekt pomocí databricks bundle init mlops-stacks. Při inicializaci projektu můžete nastavit komponenty kódu ML (obvykle používané datovými vědci), komponenty CI/CD (obvykle používané inženýry ML) nebo obojí.
  • B: Inženýři strojového učení nastavují tajné klíče hlavního objektu služby Databricks pro CI/CD.
  • C: Datoví vědci vyvíjejí modely v Databricks nebo v místním systému.
  • D: Data scientists vytvářejí pull requesty pro aktualizaci kódu strojového učení.
  • E: Spouštěč CI/CD spouští poznámkové bloky, vytváří úlohy a provádí další úlohy v pracovních a produkčních pracovních prostorech.

Vaše organizace může použít výchozí zásobník nebo ho podle potřeby přizpůsobit, aby přidala, odebrala nebo revidovala komponenty tak, aby vyhovovaly postupům vaší organizace. Podrobnosti najdete v souboru readme úložiště GitHub.

MlOps Stacks je navržen s modulární strukturou, která umožňuje různým týmům ML pracovat nezávisle na projektu a přitom dodržovat osvědčené postupy softwarového inženýrství a udržovat ci/CD na produkční úrovni. Produkční inženýři konfigurují infrastrukturu ML, která datovým vědcům umožňuje vyvíjet, testovat a nasazovat kanály a modely ML do produkčního prostředí.

Jak je znázorněno v diagramu, výchozí zásobník MLOps obsahuje následující tři komponenty:

  • Kód ML. MLOps Stacks vytvoří sadu šablon pro projekt strojového učení, včetně poznámkových bloků pro školení modelů, dávkové inferenční procesy a další. Standardizovaná šablona umožňuje datovým vědcům rychle začít, sjednocuje strukturu projektů napříč týmy a vynucuje modularizovaný kód připravený k testování.
  • Prostředky ML jako kód Zásobníky MLOps definují prostředky, jako jsou pracovní prostory a kanály pro úlohy, jako je trénování a dávkové odvozování. Prostředky jsou definované v deklarativních balíčcích automatizace, které usnadňují testování, optimalizaci a správu verzí pro prostředí ML. Můžete například vyzkoušet větší typ instance pro automatické přetrénování modelu a změna se automaticky sleduje pro budoucí referenci.
  • CI/CD. Pomocí GitHub Actions nebo Azure DevOps můžete testovat a nasazovat kód a prostředky ML, což zajistí, že všechny produkční změny budou prováděny prostřednictvím automatizace a že se do produkčního prostředí nasadí pouze testovaný kód.

Tok projektu MLOps

Výchozí projekt MLOps Stacks zahrnuje kanál ML s pracovními postupy CI/CD pro testování a nasazení automatizovaných trénování modelů a dávkových odvozování napříč pracovními prostory Databricks pro vývoj, přípravu a produkci. Zásobníky MLOps je možné konfigurovat, takže můžete upravit strukturu projektu tak, aby vyhovovala procesům vaší organizace.

Diagram znázorňuje proces, který je implementován ve výchozím MLOps stacku. Ve vývojovém pracovním prostoru datoví vědci iterují na kódu ML a vytvářejí pull requesty (PR). PR spouští jednotkové testy a integrační testy v izolovaném pracovním prostoru Databricks. Když se žádost o přijetí změn sloučí do hlavní úlohy, trénování modelu a dávkové odvozování, které se spouští v přípravné fázi, okamžitě aktualizují, aby se spustil nejnovější kód. Po sloučení žádosti o přijetí změn do hlavní verze můžete v rámci plánovaného procesu vydání vyjmout novou větev a nasadit změny kódu do produkčního prostředí.

diagram celkového toku mlops

Struktura projektu zásobníků MLOps

Zásobník MLOps používá deklarativní automatizační sady – kolekci zdrojových souborů, které slouží jako kompletní definice projektu. Mezi tyto zdrojové soubory patří informace o tom, jak se mají testovat a nasazovat. Shromažďování souborů jako sady usnadňuje spoluverzi změn a používá osvědčené postupy softwarového inženýrství, jako je správa zdrojového kódu, kontrola kódu, testování a CI/CD.

Diagram znázorňuje soubory vytvořené pro výchozí zásobník MLOps. Podrobnosti o souborech obsažených v zásobníku najdete v dokumentaci k úložišti GitHub nebo v deklarativních automation balíčcích pro MLOps zásobníky.

Adresářová struktura MLops Stacks

Komponenty zásobníků MLOps

Technologický stack označuje sadu nástrojů používaných ve vývojovém procesu. Výchozí zásobník MLOps využívá jednotnou platformu Databricks a používá následující nástroje:

Komponenta Nástroj pro Databricks
Vývojový kód modelu ML Databricks poznámkové bloky, MLflow
Vývoj a správa funkcí Inženýrství vlastností
Úložiště modelů ML Modely v katalogu Unity
Obsluha modelu ML Obsluha modelu
Infrastruktura jako kód Deklarativní balíčky automatizace
Orchestrátor Úlohy Lakeflow
CI/CD GitHub Actions, Azure DevOps
Monitorování výkonu dat a modelů Profilace dat

Další kroky

Pokud chcete začít, přečtěte si téma Deklarativní automatizační balíčky pro MLOps zásobníky nebo úložiště Databricks MLOps Stacks na GitHubu.