Životní cyklus strojového učení

Tato stránka popisuje ucelenou cestu k provedení projektu strojového učení (ML) z počátečního rozsahu do produkčního prostředí a zajištění dobrého výkonu v průběhu času. Kód, data a modely procházejí třemi širokými fázemi: vývoj, příprava a produkce. Každá fáze má odlišné cíle a požadavky:

  1. Určení rozsahu případu použití a definování úspěchu
  2. Prozkoumání a pochopení dat
  3. Příprava dat a funkcí
  4. Trénování modelů a sledování experimentů
  5. Hodnotit
  6. Registrovat, připravit a testovat modely
  7. Nasazení do produkčního prostředí
  8. Sledujte a znovu natrénujte

1. Určení rozsahu případu použití a definování úspěchu

Než začnete cokoli vytvářet, ujasněte si, co má model dělat a jak poznáte, že funguje správně.

  • Jaký je cíl předpovědi a jakou třídu problému ML to znamená: klasifikace, regrese, prognózování, doporučení, řazení, detekce anomálií nebo něco jiného?
  • Jaká vstupní data jsou k dispozici a jsou dostatečná k seznámení s cílovým vzorem?
  • Jaké metriky určují úspěch: přesnost, AUC, precision at K nebo obchodní KPI?
  • Jaké jsou požadavky na obsluhu a produkci: latence, propustnost a aktuálnost dat?
  • Které zúčastněné strany musí schválit nasazení do produkce? Jaké jsou jejich požadavky ohledně vysvětlitelnosti?

Předchozí požadavky nediktují konkrétní metodu ML. Modelování můžete začít s jednodušším přístupem, jako je přechodové stromy, a později se rozhodnete, že jsou potřeba výkonnější metody hlubokého učení.

2. Prozkoumání a pochopení dat

Před přípravou funkcí nebo trénováním modelu prozkoumejte data, abyste porozuměli jeho struktuře, kvalitě a vztahu k cíli předpovědi. Průzkumná analýza dat (EDA) je proces shrnutí a vizualizace datového souboru s cílem odhalit rozdělení dat, korelace, chybějící hodnoty a odlehlé hodnoty, které ovlivňují následná rozhodnutí při modelování.

Hned na začátku se rozhodněte, jak budete ověřovat, zda máte validní testovací data, která jsou vyčleněna a nepoužívají se k trénování. I během EDA si dávejte pozor na rozhodování o modelování na základě testovacích dat.

EDA odpovídá na otázky, které informují zbytek životního cyklu:

  • Které vstupy mají nejvyšší prediktivní hodnotu vzhledem k cílové proměnné a jsou některé z nich v době nasazení nedostupné?
  • Chybí hodnoty, odlehlé hodnoty nebo nerovnoměrné distribuce, které vyžadují čištění nebo transformaci?
  • Je datová sada dostatečně velká a dostatečně reprezentativní, aby se naučila cílový vzor?

Azure Databricks zjednodušuje EDA interaktivními nástroji, nástroji podporujícími spolupráci a AI. Prozkoumejte data pomocí chatu v přirozeném jazyce, uživatelských rozhraní nebo kódu a spolupracujte prostřednictvím spoluvytváření v reálném čase i sdílení kódu založeného na Gitu:

  • Poznámkové bloky poskytují prostory pro spolupráci pro zkoumání, vizualizaci a dokumentaci.
  • Řídicí panely poskytují zkoumání na základě SQL a vizualizací.
  • Genie Chat poskytuje plnohodnotné rozhraní přirozeného jazyka pro kladení otázek na data.
  • Genie Code může plně automatizovat EDA nebo pracovat jako interaktivní asistent.

3. Příprava dat a funkcí

Když jsou data srozumitelná, změňte nezpracované zdroje a transformace identifikované během EDA na funkce pro modely ML. Vyhodnoťte datové kanály pro trénování a obsluhu, včetně rychlosti, objemu, aktuálnosti a vlastnictví zdrojů dat. Hranice mezi datovým inženýrstvím (příprava a transformace dat) a technikou funkcí (odvozováním vstupů ML) je přibližná. Na Azure Databricks sdílejí inženýring dat a STROJOVÉ učení stejnou vrstvu platformy a zásad správného řízení v katalogu Unity, takže data připravená jedním týmem je možné zpřístupnit okamžitě jako funkce pro jiný bez přesunu dat nebo duplicitních kanálů.

Vyhledejte existující data a definice funkcí:

  • Prozkoumejte data a funkce dostupné v katalogu Unity. Pokud má vaše organizace související modely, použijte rodokmen katalogu Unity ke zjišťování zdrojů dat a funkcí používaných pro tyto modely.
  • Hledání pracovních prostorů vám pomůže zjistit, jaká data, modely nebo aplikace už existují.

Podle potřeby vytvořte a spravujte nové prostředky:

  • Další informace o nástrojích pro příjem a přípravu dat, včetně Návrháře Lakeflow pro prostředí s podporou AI bez kódu, najdete v tématu Vytváření dat pomocí Databricks.
  • Úložiště funkcí slouží k definování a správě funkcí jako opakovaně použitelných a spravovaných prostředků. Stejné definice atributů se používají při trénování i v produkci, s podporou dávkového i příjmu dat v reálném čase a dávkového i poskytování v reálném čase.

Využijte Genie Code ke zrychlení zjišťování a přípravy dat procházením katalogu Unity ke zjišťování relevantních tabulek, navrhování transformací funkcí a generování počátečního kódu pro příjem dat a kanály funkcí.

4. Trénování modelů a sledování experimentů

Aplikace pro datové vědy a strojové učení používají mnoho různých přístupů, z nichž každá má vlastní požadavky na algoritmy a knihovny ML, požadavky na výpočetní prostředky a pracovní postupy. Azure Databricks poskytuje flexibilní prostředí a výpočetní prostředky pro různé úlohy s jednotným sledováním experimentů v MLflow.

Prostředí a výpočetní prostředí

Ve výchozím nastavení používejte bezserverové výpočetní prostředky pro interaktivní poznámkové bloky i automatizované úlohy. Bezserverové výpočetní prostředky se spustí okamžitě a automaticky se zvětšují a zpomalují s vaší úlohou.

Pro akceleraci GPU připojte GPU k bezserverovým výpočetním prostředkům, které pak používají modul runtime AI, předkonfigurované prostředí pro trénování a odvozování GPU.

Pro úlohy procesoru i GPU můžete pro Machine Learning použít také klasické výpočetní prostředí s modulem Databricks Runtime.

Přizpůsobte si všechna předchozí prostředí pomocí knihoven ML. Vzhledem k tomu, že prostředí jsou pro aplikace ML často silně přizpůsobená, využijte MLflow Tracking k zaznamenávání závislostí, ověřování reprodukovatelnosti a tomu, abyste předešli nesouladu mezi trénováním a inferencí.

Sledování MLflow

Pomocí Azure Databricks spravovaného MLflow můžete sledovat metadata modelu experimentování a protokolování:

Začínáme s modelováním

Genie Code může vygenerovat úplný poznámkový blok ML z popisu úlohy predikce ve formátu prostého jazyka, včetně výběru funkcí z úložiště funkcí, trénování ML a sledování MLflow.

Projděte si také prostředky pro ladění hyperparametrů, příklady trénování modelů a Ray v Databricks.

Pro hluboké učení a trénování klasických modelů ML akcelerované pomocí GPU viz ukázkové notebooky pro AI Runtime.

5. Vyhodnocení

Během vývoje definujte metriky hodnocení kvality na základě požadavků z rozsahu:

  • Základní metriky můžou být běžné metriky ML, jako jsou přesnost, AUC, RMSE nebo metriky specifické pro doménu.
  • Vaše vyhodnocení může zahrnovat také odvozené metriky, jako jsou předsudky a nestrannost napříč segmenty populace měřené porovnáním základních metrik napříč segmenty vašich dat.

Definujte metriky pomocí zvolené knihovny nebo architektury ML, pomocí integrovaného modulu metrik MLflow nebo vlastní logiky. U všech metrik je zaznamenávejte v bězích MLflow, aby byly propojeny s odpovídajícími modely. Metriky, které definujete během vývoje a trénování, můžete později použít jako metriky pro monitorování v produkčním prostředí.

6. Registrace, fáze a testovací modely

Po trénování modelu nebo kanálu ML ho zaregistrujte do registru modelů MLflow v katalogu Unity , abyste zjednodušovali zásady správného řízení a správu při povýšení modelu do produkčního prostředí. Registrovaný model má verze, z nichž každý odkazuje na původní trénovací běh, který ho vytvořil. Verze modelu umožňují bezpečné postupy nasazení: novou verzi můžete otestovat ve staging prostředí před jejím povýšením do produkce, vrátit nasazení na předchozí verzi, pokud dojde ke zhoršení kvality, a uchovávat kompletní auditní záznam o tom, co bylo nasazeno a kdy.

Než nová verze modelu obsluhuje provozní provoz, otestujte verzi v přípravném prostředí za realistických podmínek:

  • Označte kandidátní verzi modelu aliasy (Staging, Production) k signalizaci stavu životního cyklu bez přejmenování artefaktů.
  • Spusťte testy integrace s přípravnou infrastrukturou: ověřte spuštění koncového bodu obsluhy, latence splňuje požadavky a výstupy jsou správně vytvořené.
  • Proveďte A/B nebo stínové testy na produkčních datech a ověřte výkon před úplným přepnutím.
  • Získejte schválení zainteresovaných stran na základě výsledků hodnocení.

Tento popis příliš zjednodušuje postupy nasazování a provoz strojového učení (MLOps). Přečtěte si další podrobnosti o MLOps v pracovních postupech MLOps v Azure Databricks.

7. Nasazení do produkčního prostředí

Po přípravném ověření zvyšte a nasaďte model do produkčního prostředí, aby se vygenerovaly předpovědi pro vstupy z reálného světa. Azure Databricks podporuje dva primární vzory obsluhy:

  • Obsluha v reálném čase: Nasaďte model jako koncový bod REST s nízkou latencí pomocí služby Model Service pro případy použití, které vyžadují rozhodnutí s nízkou latencí, jako je zachycení podvodů v době transakce, přizpůsobení za provozu nebo dynamické ceny.
  • Dávkové odvozování: ai_query poskytuje efektivní odvozování dávek pro vlastní modely nasazené jako koncové body služby modelu. Můžete také použít vlastní kód s uživatelsky definovanými funkcemi Apache Sparku (příklad) nebo mlflow.pyfunc pro dávkovou inferenci. Kanály Batch zapisují výsledky do tabulek Delta pro podřízené aplikace, řídicí panely nebo kanály. Tento model zpracovává denní prognózy, noční aktualizace doporučení a další pravidelné úlohy.

Oba patterny používají stejný artefakt natrénovaného modelu. Model natrénujte jednou a nasaďte jej pro dávkové zpracování nebo pro obsluhu v reálném čase ze stejné registrované verze se stejnou správou a stejným původem.

Genie Code může vygenerovat kód pro nasazení a pomoct vyřešit problémy s obsluhou, vysvětlit chování koncového bodu a zrychlit iteraci, když je potřeba aktualizovat nebo znovu nasadit modely.

8. Monitorování a opětovné natrénování

Produkční systémy ML se mohou v průběhu času zhoršovat, protože se mění chování uživatelů nebo datové pipeline. Průběžné monitorování produkčních dat a předpovědí modelu:

  • Zaznamenávejte vstupy a výstupy z vašich nasazených modelů. Pro obsluhu v reálném čase poskytují inferenční tabulky automatické protokolování bez nutnosti měnit kód modelu. V případě dávkového poskytování vaše kanály přirozeně čtou a zapisují do tabulek Delta spravovaných katalogem Unity.
  • Vložte tyto logy do monitorování kvality dat, které v průběhu času sleduje kvalitu dat, posun příznaků a distribuci predikcí. Pokud máte referenční data nebo data zpětné vazby, můžete tato data propojit s provozními logy a vypočítat metriky kvality predikcí.
  • Použijte rozhraní pro monitorování a upozornění na detekci anomálií ke spuštění eskalace nebo opětovného trénování dříve, než se kvalita znatelně zhorší.

Přečtěte si další informace o produkčním strojovém učení v pracovních postupech MLOps na Azure Databricks.

Další zdroje informací