Osvědčené postupy pro projekty datových věd s využitím cloudových analýz v Azure

Tyto osvědčené postupy doporučujeme pro použití analýzy škálování cloudu v Microsoft Azure k zprovoznění projektů datových věd.

Vývoj podrobného plánu

Je nezbytné vyvinout podrobný plán, který bude sdružovat sadu služeb pro vaše projekty datových věd, aby bylo možné dosáhnout konzistence napříč různými případy použití týmů pro datové vědy. Doporučujeme vytvořit konzistentní podrobný plán ve formě úložiště šablon, které můžete použít pro různé projekty datových věd v rámci vašeho podniku, abyste zkrátili dobu nasazení.

Pokyny pro šablony datových věd

Vytvořte šablonu datových věd pro vaši organizaci s využitím následujících pokynů:

  • Vytvořte sadu infrastruktury jako šablony kódu pro nasazení pracovního prostoru Služby Azure Machine Learning. Zahrňte prostředky, jako je trezor klíčů, účet úložiště, Aplikace Azure Insights a registr kontejneru.

  • Do těchto šablon zahrňte nastavení úložišť dat a cílových výpočetních prostředků, jako jsou výpočetní instance, výpočetní clustery a Azure Databricks.

Osvědčené postupy pro nasazení

Reálný čas

  • Zahrnout nasazení Azure Data Factory nebo Azure Synapse v šablonách a službách Azure Cognitive Services.

  • Šablony by měly poskytovat všechny potřebné nástroje ke spuštění fáze zkoumání datových věd a počátečního zprovoznění modelu.

Důležité informace o počátečním nastavení

V některých případech mohou datoví vědci ve vaší organizaci vyžadovat prostředí pro rychlou analýzu podle potřeby. Tato situace je běžná, když projekt datových věd není formálně nastavený. Může například chybět projektový manažer, nákladový kód nebo nákladové středisko, které se můžou vyžadovat pro křížové účtování v rámci Azure, protože chybějící prvek vyžaduje schválení. Uživatelé ve vaší organizaci nebo týmu můžou potřebovat přístup k prostředí datových věd, aby porozuměli datům a případně vyhodnotili proveditelnost projektu. Některé projekty také nemusí vyžadovat úplné prostředí pro datové vědy kvůli malému počtu datových produktů.

V jiných případech může být vyžadován úplný projekt datových věd, který bude obsahovat vyhrazené prostředí, řízení projektů, nákladový kód a nákladové středisko. Úplné projekty datových věd jsou užitečné pro více členů týmu, kteří chtějí spolupracovat, sdílet výsledky a potřebují po úspěšném dokončení fáze zkoumání zprovoznit modely.

Proces nastavení

Po nastavení by se šablony měly nasazovat pro jednotlivé projekty. Každý projekt by měl obdržet alespoň dvě instance, aby se vývojové a produkční prostředí oddělily. V produkčním prostředí by neměla mít přístup žádná jednotlivá osoba a vše by se mělo nasazovat prostřednictvím kanálů kontinuální integrace nebo průběžného vývoje a instančního objektu. Tyto principy produkčního prostředí jsou důležité, protože Azure Machine Learning neposkytuje podrobný model řízení přístupu na základě role v rámci pracovního prostoru. Uživatelský přístup nemůžete omezit na konkrétní sadu experimentů, koncových bodů nebo kanálů.

Stejná přístupová práva se obvykle vztahují na různé typy artefaktů. Je důležité oddělit vývoj od produkčního prostředí, aby se zabránilo odstranění produkčních kanálů nebo koncových bodů v rámci pracovního prostoru. Spolu se šablonou je potřeba vytvořit proces, který datovým produktovým týmům poskytne možnost požádat o nová prostředí.

Doporučujeme nastavit různé služby AI, jako je Azure Cognitive Services, pro jednotlivé projekty. Když nastavíte různé služby AI pro jednotlivé projekty, dojde k nasazení pro každou skupinu prostředků datového produktu. Tato zásada jasně odděluje přístup k datům a snižuje riziko neoprávněného přístupu k datům nesprávnými týmy.

Scénář streamování

Pro případy použití v reálném čase a streamování by se nasazení měla testovat na zmenšené Azure Kubernetes Service (AKS). Testování může být ve vývojovém prostředí, aby se ušetřily náklady před nasazením do produkčního prostředí AKS nebo Azure App Service pro kontejnery. Měli byste provést jednoduché vstupní a výstupní testy, abyste měli jistotu, že služby reagují očekávaným způsobem.

V dalším kroku můžete nasadit modely do požadované služby. Tento výpočetní cíl nasazení je jediný, který je obecně dostupný a doporučuje se pro produkční úlohy v clusteru AKS. Tento krok je důležitější, pokud je vyžadována podpora grafických procesorů (GPU) nebo programovatelných hradlových polí. Další možnosti nativního nasazení, které podporují tyto požadavky na hardware, nejsou v současné době ve službě Azure Machine Learning k dispozici.

Azure Machine Learning vyžaduje mapování 1:1 na clustery AKS. Každé nové připojení k pracovnímu prostoru Služby Azure Machine Learning přeruší předchozí připojení mezi AKS a službou Azure Machine Learning. Po zmírnění tohoto omezení doporučujeme nasadit centrální clustery AKS jako sdílené prostředky a připojit je k příslušným pracovním prostorům.

Další centrální testovací instance AKS by měla být hostovaná, pokud by se před přesunem modelu do produkčního AKS měly provést zátěžové testy. Testovací prostředí by mělo poskytovat stejný výpočetní prostředek jako produkční prostředí, aby se zajistilo, že se výsledky co nejvíce podobají produkčnímu prostředí.

Scénář služby Batch

Ne všechny případy použití vyžadují nasazení clusteru AKS. Případ použití nevyžaduje nasazení clusteru AKS, pokud velké objemy dat vyžadují pravidelné vyhodnocování nebo jsou založené na události. Například velké objemy dat můžou být založené na tom, kdy se data propadnou do konkrétního účtu úložiště. Kanály Azure Machine Learning a výpočetní clustery Azure Machine Learning by se měly používat k nasazení v těchto typech scénářů. Tyto kanály by se měly orchestrovat a spouštět ve službě Data Factory.

Identifikace správných výpočetních prostředků

Před nasazením modelu ve službě Azure Machine Learning do AKS musí uživatel zadat prostředky, jako jsou procesor, paměť RAM a GPU, které by měly být přiděleny příslušnému modelu. Definování těchto parametrů může být složitý a zdlouhavý proces. Pokud chcete identifikovat dobrou sadu parametrů, musíte provést zátěžové testy s různými konfiguracemi. Tento proces můžete zjednodušit pomocí funkce Profilace modelu ve službě Azure Machine Learning, což je dlouhotrvající úloha, která testuje různé kombinace přidělení prostředků a používá identifikovanou latenci a dobu odezvy (RTT) k doporučení optimální kombinace. Tyto informace můžou pomoct se skutečným nasazením modelu v AKS.

Aby týmy bezpečně aktualizovaly modely ve službě Azure Machine Learning, měly by používat funkci řízeného zavedení (Preview), která minimalizuje výpadky a zajistí konzistentní koncový bod REST modelu.

Osvědčené postupy a pracovní postup pro MLOps

Zahrnutí ukázkového kódu do úložišť pro datové vědy

Projekty datových věd můžete zjednodušit a urychlit, pokud vaše týmy mají určité artefakty a osvědčené postupy. Doporučujeme vytvořit artefakty, které můžou používat všechny týmy datových věd při práci s Azure Machine Learning a příslušnými nástroji prostředí datových produktů. Technici datového a strojového učení by měli artefakty vytvářet a poskytovat.

Tyto artefakty by měly zahrnovat:

  • Ukázkové poznámkové bloky, které ukazují, jak:

    • Načtěte, připojte a pracujte s datovými produkty.
    • Protokolovací metriky a parametry
    • Odesílání trénovacích úloh do výpočetních clusterů
  • Artefakty požadované pro zprovoznění:

    • Ukázkové kanály služby Azure Machine Learning
    • Ukázková služba Azure Pipelines
    • Další skripty potřebné ke spouštění kanálů
  • Dokumentace

Použití dobře navržených artefaktů k zprovoznění kanálů

Artefakty můžou urychlit fáze zkoumání a zprovoznění projektů datových věd. Strategie forku DevOps může pomoct škálovat tyto artefakty napříč všemi projekty. Vzhledem k tomu, že toto nastavení podporuje používání Gitu, můžou uživatelé a celkový proces automatizace využívat poskytované artefakty.

Tip

Ukázkové kanály služby Azure Machine Learning by měly být sestaveny pomocí sady Sdk (Software Developer Kit) pythonu nebo založené na jazyce YAML. Nové prostředí YAML bude více odolné pro budoucnost, protože produktový tým Azure Machine Learning v současné době pracuje na nové sadě SDK a rozhraní příkazového řádku (CLI). Produktový tým Azure Machine Learning si je jistý, že YAML bude sloužit jako definiční jazyk pro všechny artefakty v rámci služby Azure Machine Learning.

Ukázkové kanály nefungují pro každý projekt, ale dají se použít jako směrný plán. Můžete upravit ukázkové kanály pro projekty. Kanál by měl obsahovat nejdůležitější aspekty každého projektu. Kanál může například odkazovat na cíl výpočetních prostředků, odkazovat na datové produkty, definovat parametry, definovat vstupy a definovat kroky provádění. Stejný postup by se měl provést i pro Azure Pipelines. Azure Pipelines by také měla používat sadu Azure Machine Learning SDK nebo rozhraní příkazového řádku.

Kanály by měly ukázat, jak:

  • Připojte se k pracovnímu prostoru z kanálu DevOps.
  • Zkontrolujte, jestli jsou k dispozici požadované výpočetní prostředky.
  • Odešlete úlohu.
  • Registrace a nasazení modelu

Artefakty nejsou vhodné pro všechny projekty po celou dobu a můžou vyžadovat přizpůsobení, ale základ může urychlit zprovoznění a nasazení projektu.

Struktura úložiště MLOps

Může dojít k situacím, kdy uživatelé ztratí přehled o tom, kde můžou artefakty najít a ukládat. Abyste se těmto situacím vyhnuli, měli byste požádat o více času na komunikaci a vytvoření struktury složek nejvyšší úrovně pro standardní úložiště. Všechny projekty by měly mít strukturu složek.

Poznámka

Koncepty uvedené v této části se dají použít v místních prostředích, Amazon Web Services, Palantir a Azure.

Navrhovaná struktura složek nejvyšší úrovně pro úložiště MLOps (operace strojového učení) je znázorněna v následujícím diagramu:

Diagram struktury úložiště pro MLOps

Pro každou složku v úložišti platí následující účely:

Složka Účel
.cloud Do této složky uložte kód a artefakty specifické pro cloud. Mezi artefakty patří konfigurační soubory pro pracovní prostor Azure Machine Learning, včetně definic cílových výpočetních prostředků, úloh, registrovaných modelů a koncových bodů.
.ado/.github Do této složky uložte artefakty Azure DevOps nebo GitHubu, jako jsou kanály YAML nebo vlastníci kódu.
code Do této složky zahrňte skutečný kód, který byl vyvinut jako součást projektu. Tato složka může obsahovat balíčky Pythonu a některé skripty, které se používají pro příslušné kroky kanálu strojového učení. Doporučujeme oddělit jednotlivé kroky, které je potřeba udělat v této složce. Mezi běžné kroky patří předběžné zpracování, trénování modelu a registrace modelu. Definujte pro každou složku závislosti, jako jsou závislosti Conda, image Dockeru nebo jiné.
docs Tuto složku použijte pro účely dokumentace. V této složce jsou uloženy soubory a obrázky Markdownu, které popisují projekt.
pipelines Do této složky uložte definice kanálů Azure Machine Learning v YAML nebo Pythonu.
tests Pište testy jednotek a integrace, které je potřeba spustit, aby bylo možné včas zjistit chyby a problémy během projektu v této složce.
notebooks Pomocí této složky oddělte poznámkové bloky Jupyter od skutečného projektu Pythonu. Ve složce by měl mít každý jednotlivec podsložku, která bude v poznámkových blocích kontrolovat a zabránit konfliktům při slučování Gitu.

Další kroky

Cloudové analytické datové produkty v Azure