MLOps: Správa modelů, nasazení, rodokmen a monitorování s využitím Služby Azure Machine Learning v1

PLATÍ PRO:Rozšíření Azure CLI ml v1Python SDK azureml v1

V tomto článku se dozvíte, jak používat postupy operací strojového učení (MLOps) ve službě Azure Machine Learning ke správě životního cyklu vašich modelů. Provozní postupy strojového učení můžou zlepšit kvalitu a konzistenci řešení strojového učení.

Důležité

Položky v tomto článku označené jako verze Preview jsou aktuálně ve verzi Public Preview. Verze Preview je poskytována bez smlouvy o úrovni služeb. Pro produkční úlohy nedoporučujeme funkce ve verzi Preview. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti.

Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Co jsou operace strojového učení?

Na základě principů a postupů DevOps zvyšuje operace strojového učení (MLOps) efektivitu pracovních postupů. Například kontinuální integrace, doručování a nasazování. Operace strojového učení uplatňují tyto principy na proces strojového učení s cílem:

  • Rychlejší experimentování a vývoj modelů
  • Rychlejší nasazení modelů do produkčního prostředí
  • Kontrola kvality a kompletní sledování rodokmenu

MLOps ve službě Azure Machine Learning

Azure Machine Learning poskytuje následující možnosti operací strojového učení:

  • Vytvořte reprodukovatelné kanály strojového učení. Kanály Machine Learning umožňují definovat opakovatelné a opakovaně použitelné kroky pro procesy přípravy, trénování a vyhodnocování dat.
  • Vytvořte opakovaně použitelná softwarová prostředí pro trénování a nasazování modelů.
  • Zaregistrujte, zabalte a nasaďte modely odkudkoli. Můžete také sledovat přidružená metadata potřebná k použití modelu.
  • Zachyťte data zásad správného řízení pro kompletní životní cyklus strojového učení. Protokolované informace rodokmenu můžou zahrnovat, kdo publikuje modely, proč byly provedeny změny a kdy byly modely nasazeny nebo použity v produkčním prostředí.
  • Upozorněte a upozorněte na události v životním cyklu strojového učení. Například dokončení experimentu, registrace modelu, nasazení modelu a detekce odchylek dat.
  • Monitorování aplikací strojového učení pro provozní problémy a problémy se strojově učením Porovnejte vstupy modelu mezi trénováním a odvozováním, prozkoumejte metriky specifické pro model a poskytněte monitorování a výstrahy ve vaší infrastruktuře strojového učení.
  • Automatizujte kompletní životní cyklus strojového učení pomocí Azure Machine Learning a Azure Pipelines. Používání kanálů umožňuje často aktualizovat modely, testovat nové modely a průběžně zavádět nové modely strojového učení společně s dalšími aplikacemi a službami.

Další informace o operacích strojového učení najdete v tématu Operace strojového učení.

Vytváření reprodukovatelných kanálů strojového učení

Pomocí kanálů strojového učení ze služby Azure Machine Learning spojte všechny kroky, které jsou součástí procesu trénování modelu.

Kanál strojového učení může obsahovat kroky z přípravy dat až po extrakci funkcí až po ladění hyperparametrů na vyhodnocení modelu. Další informace najdete v kanálech služby Azure Machine Learning.

Pokud k vytvoření kanálů strojového učení použijete Návrhář , vyberte tři tečky (...) v pravém horním rohu stránky Návrháře a pak vyberte Klonovat. Klonování kanálu umožňuje iterovat návrh kanálu bez ztráty starých verzí.

Vytváření opakovaně použitelných softwarových prostředí

Prostředí Azure Machine Learning umožňují sledovat a reprodukovat softwarové závislosti vašich projektů při vývoji. Prostředí umožňují zajistit, aby sestavení byla reprodukovatelná bez ručních konfigurací softwaru.

Prostředí popisují závislosti pip a Conda pro vaše projekty. Prostředí se dají použít pro trénování i nasazení modelů. Další informace najdete v tématu Co jsou prostředí Azure Machine Learning.

Registrace, zabalení a nasazení modelů odkudkoli

Modely můžete zaregistrovat, zabalit a nasadit odkudkoli.

Registrace a sledování modelů strojového učení

Registrace modelu umožňuje ukládat a vytvářet verze modelů ve vašem pracovním prostoru v cloudu Azure. Registr modelů usnadňuje uspořádání a sledování trénovaných modelů.

Tip

Registrovaný model je logický kontejner pro jeden nebo více souborů, které tvoří váš model. Pokud máte například model uložený ve více souborech, můžete je zaregistrovat jako jeden model v pracovním prostoru Azure Machine Learning. Po registraci si pak můžete stáhnout nebo nasadit registrovaný model a přijmout všechny registrované soubory.

Název a verze identifikují registrované modely. Vždy, když zaregistrujete model se stejným názvem, který již používá existující model, v registru se zvýší jeho verze. Během registrace můžete zadat další značky metadat. Tyto značky se pak použijí při hledání modelu. Azure Machine Learning podporuje jakýkoli model, který je možné načíst pomocí Pythonu 3.5.2 nebo novějšího.

Tip

Můžete také zaregistrovat modely natrénované mimo Azure Machine Learning.

Zaregistrovaný model, který se používá v aktivním nasazení, nemůžete odstranit. Další informace najdete v tématu Registrace modelu.

Důležité

Pokud použijete filtr podle Tags možnosti na stránce Modely v nástroji Azure Machine Learning Studio, místo abyste ho použili TagName : TagValue TagName=TagValue (bez místa).

Balení a ladění modelů

Před nasazením modelu do produkčního prostředí se zabalí do image Dockeru. Ve většině případů se vytváření imagí provádí automaticky na pozadí během nasazování. Obrázek můžete zadat ručně.

Pokud narazíte na problémy s nasazením, můžete ho nasadit do místního vývojového prostředí pro účely řešení potíží a ladění.

Další informace najdete v tématu Nasazení modelů strojového učení do Azure a řešení potíží s nasazením vzdáleného modelu.

Převod a optimalizace modelů

Převod modelu na Open Neural Network Exchange (ONNX) může zvýšit výkon. Převod na ONNX může v průměru přinést 2x zvýšení výkonu.

Další informace najdete v tématu ONNX a Azure Machine Learning.

Použití modelů

Vytrénované modely strojového učení se nasazují jako webové služby v cloudu nebo místně. Nasazení používají procesor nebo GPU k odvozování. Můžete také použít modely z Power BI.

Při použití modelu jako webové služby zadejte následující položky:

  • Modely, které slouží k určení skóre dat odeslaných do služby nebo zařízení.
  • Vstupní skript. Tento skript přijímá požadavky, používá modely k určení skóre dat a vrací odpověď.
  • Prostředí Azure Machine Learning, které popisuje závislosti Pip a Conda, které vyžadují modely a vstupní skript.
  • Jakékoli jiné prostředky, jako je text nebo data, které vyžadují modely a vstupní skript.

Poskytujete také konfiguraci cílové platformy, na kterou model nasazujete. Například typ rodiny virtuálních počítačů, dostupnou paměť a počet jader při nasazování do služby Azure Kubernetes Service.

Do vytvořené image se dále přidají komponenty, které vyžaduje Azure Machine Learning. Například prostředky potřebné ke spuštění webové služby.

Dávkové vyhodnocování

Dávkové vyhodnocování se podporuje prostřednictvím kanálů strojového učení. Další informace najdete v tématu Kurz: Vytvoření kanálu služby Azure Machine Learning pro klasifikaci obrázků.

Webové služby v reálném čase

Modely můžete použít ve webových službách s následujícími cílovými výpočetními objekty:

  • Azure Container Instance
  • Azure Kubernetes Service
  • Místní vývojové prostředí

Pokud chcete model nasadit jako webovou službu, musíte zadat následující položky:

  • Model nebo soubor modelů.
  • Závislosti potřebné k použití modelu. Například skript, který přijímá požadavky a vyvolává závislosti modelu nebo conda.
  • Konfigurace nasazení, která popisuje, jak a kde model nasadit.

Další informace najdete v tématu Nasazení modelů strojového učení do Azure.

Analýzy

Microsoft Power BI podporuje použití modelů strojového učení pro analýzu dat. Další informace najdete v tématu AI s toky dat.

Zachycení dat zásad správného řízení vyžadovaných pro operace strojového učení

Azure Machine Learning poskytuje možnost sledovat kompletní záznam auditu všech vašich prostředků strojového učení pomocí metadat.

  • Azure Machine Learning se integruje s Gitem a sleduje informace o úložišti, větvi a potvrzení kódu, ze kterého pochází.
  • Datové sady Azure Machine Learning vám pomůžou sledovat, profilovat a data verzí.
  • Interpretovatelnost umožňuje vysvětlit modely, splnit dodržování právních předpisů a pochopit, jak modely přicházejí na výsledek pro daný vstup.
  • Historie spuštění služby Azure Machine Learning ukládá snímek kódu, dat a výpočtů používaných k trénování modelu.
  • Registr modelů služby Azure Machine Learning zachycuje všechna metadata přidružená k vašemu modelu. Tato metadata zahrnují, který experiment ho natrénoval, kam se nasazuje, a jestli jsou nasazení v pořádku.
  • Integrace s Azure umožňuje pracovat s událostmi v životním cyklu strojového učení. Například registrace modelu, nasazení, posun dat a události trénování (spuštění).

Tip

Některé informace o modelech a datových sadách se zaznamenávají automaticky. Další informace můžete přidat pomocí značek. Při hledání registrovaných modelů a datových sad v pracovním prostoru můžete použít značky jako filtr.

Přidružení datové sady k registrovanému modelu je volitelný krok. Informace o odkazování na datovou sadu při registraci modelu najdete v referenčních informacích ke třídě modelu.

Oznamování, automatizace a upozorňování na události v životním cyklu strojového učení

Azure Machine Learning publikuje klíčové události do služby Azure Event Grid, které je možné použít k oznamování a automatizaci událostí v životním cyklu strojového učení. Další informace najdete v tématu Aktivace aplikací, procesů nebo pracovních postupů CI/CD na základě událostí služby Azure Machine Learning.

Monitorování problémů s provozem a strojovém učením

Monitorování umožňuje pochopit, jaká data se do modelu odesílají, a předpovědi, které vrací.

Tyto informace vám pomůžou pochopit, jak se model používá. Shromážděná vstupní data mohou být užitečná také při trénování budoucích verzí modelu.

Další informace najdete v tématu Shromažďování dat z modelů v produkčním prostředí.

Přetrénování modelu na nová data

Často chcete model ověřit, aktualizovat ho nebo ho dokonce znovu natrénovat úplně od začátku, jakmile dostanete nové informace. Někdy je příjem nových dat očekávanou součástí domény. Jindy může výkon modelu snížit kvůli změnám konkrétního senzoru, změnám přirozených dat, jako jsou sezónní efekty, nebo posunu funkcí ve vztahu k jiným funkcím. Další informace najdete v tématu Detekce posunu dat (Preview) u datových sad.

Neexistuje univerzální odpověď na "Návody vědět, jestli mám znovu trénovat?", ale dříve probírané nástroje pro události a monitorování služby Azure Machine Learning jsou dobrými výchozími body pro automatizaci. Jakmile se rozhodnete přetrénovat, měli byste:

  • Předběžné zpracování dat pomocí opakovatelného automatizovaného procesu
  • Trénování nového modelu
  • Porovnání výstupů nového modelu s výstupy starého modelu
  • Pomocí předdefinovaných kritérií zvolte, jestli chcete nahradit starý model.

Motiv výše uvedených kroků spočívá v tom, že vaše opětovné trénování by mělo být automatizované, nikoli improvizované. Kanály Azure Machine Learning jsou dobrou odpovědí pro vytváření pracovních postupů souvisejících s přípravou dat, trénováním, ověřováním a nasazením. Přečtěte si, jak se kanály a návrhář Azure Machine Learning hodí do scénáře opětovného natrénování, pomocí parametrů kanálu v návrháři .

Automatizace životního cyklu strojového učení

Pomocí GitHubu a Azure Pipelines můžete vytvořit proces kontinuální integrace, který trénuje model. Když Datoví vědci v typickém scénáři zkontroluje změnu v úložišti Git pro projekt, azure Pipeline spustí spuštění trénování. Výsledky spuštění můžete zkontrolovat a zobrazit charakteristiky výkonu vytrénovaného modelu. Můžete také vytvořit kanál, který model nasadí jako webovou službu.

Rozšíření Azure Machine Learning usnadňuje práci se službou Azure Pipelines. Poskytuje následující vylepšení služby Azure Pipelines:

  • Povolí výběr pracovního prostoru při definování připojení služby.
  • Umožňuje, aby kanály verze aktivovaly natrénované modely vytvořené v trénovacím kanálu.

Další informace o používání služby Azure Pipelines se službou Azure Machine Learning najdete v následujících zdrojích informací:

Azure Data Factory můžete také použít k vytvoření kanálu příjmu dat, který připraví data pro použití s trénováním. Další informace najdete v DevOps pro kanál příjmu dat.

Další informace najdete v následujících materiálech: