Sdílet prostřednictvím


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 strojového učení (MLOps) ve službě Azure Machine Learning pro účely správy životního cyklu vašich modelů. Použití postupů MLOps může zlepšit kvalitu a konzistenci řešení strojového učení.

Důležité

Položky v tomto článku označené jako "Preview" jsou aktuálně ve verzi Public Preview. Verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. 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 je MLOps?

Operace strojového učení (MLOps) jsou založené na principech a postupech DevOps , které zvyšují efektivitu pracovních postupů. Například kontinuální integrace, doručování a nasazování. MLOps tyto principy aplikuje 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í funkce MLOps:

  • Vytvořte reprodukovatelné kanály ML. 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 ML. 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 ML. Například dokončení experimentu, registrace modelu, nasazení modelu a detekce odchylek dat.
  • Monitorujte aplikace ML pro provozní problémy a problémy související s ML. Porovnejte vstupy modelu mezi trénováním a odvozováním, prozkoumejte metriky specifické pro model a poskytněte monitorování a upozornění na infrastrukturu ML.
  • 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 ML společně s dalšími aplikacemi a službami.

Další informace o MLOps najdete v tématu Machine Learning DevOps (MLOps).

Vytváření reprodukovatelných kanálů ML

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

Kanál ML může obsahovat kroky z přípravy dat až po extrakci funkcí do ladění hyperparametrů na vyhodnocení modelu. Další informace najdete v tématu Kanály ML.

Pokud k vytvoření kanálů ML používáte Návrhář , můžete kdykoli kliknout na "..." v pravém horním rohu stránky Návrháře a pak vybrat 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 a dají se 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

Registrace a sledování modelů ML

Registrace modelu umožňuje ukládat a vytvářet verze modelů v cloudu Azure ve vašem pracovním prostoru. 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.

Registrované modely se identifikují prostřednictvím názvu a verze. 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 je možné 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 části Registrace modelu v části Nasazení modelů.

Důležité

Pokud používáte možnost Filtrovat podle Tags na stránce Modely v nástroji Azure Machine Learning Studio, neměli byste místo použití TagName : TagValue zákazníků používat 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ů a řešení potíží s nasazeními.

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 o ONNX se službou Azure Machine Learning najdete v článku o vytváření a zrychlení modelů ML.

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 zadáte následující položky:

  • Modely, které se používají k určení skóre dat odeslaných do služby nebo zařízení.
  • Vstupní skript. Tento skript přijímá požadavky, k určení skóre dat používá modely a vrací odpověď.
  • Prostředí Azure Machine Learning, které popisuje závislosti pip a Conda vyžadované modelem a vstupním skriptem.
  • Jakékoli další prostředky, jako je text, data atd., 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ů ML. Další informace najdete v tématu Dávkové předpovědi velkých objemů dat.

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á model, závislosti conda atd.
  • Konfigurace nasazení, která popisuje, jak a kde model nasadit.

Další informace najdete v tématu Nasazení modelů.

Analýzy

Microsoft Power BI podporuje použití modelů strojového učení pro analýzu dat. Další informace najdete v tématu Integrace služby Azure Machine Learning v Power BI (Preview).

Zachycení dat zásad správného řízení vyžadovaných pro MLOps

Azure Machine Learning poskytuje možnost sledovat kompletní záznam auditu všech vašich prostředků ML pomocí metadat.

  • Azure Machine Learning se integruje s Gitem a sleduje informace o tom, ze kterého úložiště nebo větve nebo potvrzení kódu 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 (který experiment natrénoval, kde se nasazuje, pokud jsou nasazení v pořádku).
  • Integrace s Azure umožňuje pracovat s událostmi v životním cyklu ML. Například registrace modelu, nasazení, posun dat a události trénování (spuštění).

Tip

I když se některé informace o modelech a datových sadách zaznamenávají automaticky, můžete přidat další informace 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 .

Upozornění, automatizace a upozorňování na události v životním cyklu ML

Azure Machine Learning publikuje klíčové události do Azure Event Gridu, které je možné použít k oznamování a automatizaci událostí v životním cyklu ML. Další informace najdete v tomto dokumentu.

Monitorování provozních problémů a problémů s ML

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 naleznete v tématu Povolení shromažďování dat modelu.

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

Často budete chtít 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, jak je popsáno v tématu Zjistit posun dat (Preview) u datových sad, může výkon modelu snížit tváří v tvář takovým změnám konkrétního senzoru, přirozené změny dat, jako jsou sezónní efekty nebo změny funkcí ve vztahu k jiným funkcím.

Neexistuje univerzální odpověď na "Návody vědět, jestli bych se měl 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 znovu tré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 ad hoc. 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 modely přeučování pomocí návrháře služby Azure Machine Learning a zjistěte, jak se kanály a návrhář Azure Machine Learning hodí do scénáře opětovného natrénování.

Automatizace životního cyklu ML

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í trénovací běh. Výsledky spuštění je pak možné 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 na následujících odkazech:

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 tématu Kanál příjmu dat.

Další kroky

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