Jak Azure Machine Learning funguje: Architektura a koncepty (v1)

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

Tento článek se týká první verze (v1) rozhraní příkazového řádku služby Azure Machine Learning a sady SDK. Informace o verzi 2 (v2) najdete v tématu Fungování služby Azure Machine Learning (v2).

Seznamte se s architekturou a koncepty pro Azure Machine Learning. Tento článek poskytuje základní znalosti o komponentách a o tom, jak společně spolupracují při vytváření, nasazování a údržbě modelů strojového učení.

Pracovní prostor

Pracovní prostor Machine Learning je prostředek služby Azure Machine Learning nejvyšší úrovně.

Diagram: Architektura služby Azure Machine Learning pracovního prostoru a jejích komponent

Pracovní prostor je centralizovaným místem pro:

Pracovní prostor obsahuje další prostředky Azure, které tento pracovní prostor používá:

  • Azure Container Registry (ACR):Zaregistruje kontejnery Dockeru, které použijete během trénování a při nasazování modelu. Aby se minimalizovaly náklady, vytvoří se ACR pouze při vytváření imagí nasazení.
  • Účet služby Azure Storage: Slouží jako výchozí úložiště dat pro pracovní prostor. Poznámkové bloky Jupyter, které se používají s vašimi výpočetními instancemi služby Azure Machine Learning, jsou uložené i tady.
  • Aplikace Azure lication Insights: Ukládá informace o monitorování vašich modelů.
  • Azure Key Vault: Ukládá tajné kódy používané cílovými výpočetními objekty a další citlivé informace, které pracovní prostor potřebuje.

Pracovní prostor můžete sdílet s ostatními.

Vypočítává

Cílový výpočetní objekt je jakýkoli počítač nebo sada počítačů, které používáte ke spuštění trénovacího skriptu nebo hostování nasazení služby. Jako cílový výpočetní objekt můžete použít místní počítač nebo vzdálený výpočetní prostředek. S cílovými výpočetními objekty můžete začít trénovat na místním počítači a pak škálovat na cloud beze změny trénovacího skriptu.

Azure Machine Learning zavádí dva plně spravované cloudové virtuální počítače, které jsou nakonfigurované pro úlohy strojového učení:

  • Výpočetní instance: Výpočetní instance je virtuální počítač, který obsahuje více nástrojů a prostředí nainstalovaných pro strojové učení. Primárním využitím výpočetní instance je vaše vývojová pracovní stanice. Můžete začít spouštět ukázkové poznámkové bloky bez nutnosti instalace. Výpočetní instanci lze také použít jako cílový výpočetní objekt pro trénování a odvozování úloh.

  • Výpočetní clustery: Výpočetní clustery jsou clustery virtuálních počítačů s možnostmi škálování s více uzly. Výpočetní clustery jsou vhodnější pro cílové výpočetní objekty pro velké úlohy a produkční prostředí. Cluster se automaticky škáluje při odeslání úlohy. Slouží jako cílový výpočetní objekt pro trénování nebo pro nasazení pro vývoj/testování.

Další informace o cílových výpočetních objektech trénování najdete v tématu Trénování cílových výpočetních prostředků. Další informace o cílových výpočetních prostředcích nasazení najdete v tématu Cíle nasazení.

Datové sady a úložiště dat

Datové sady Azure Machine Learning usnadňují přístup k datům a práci s daty. Vytvořením datové sady vytvoříte odkaz na umístění zdroje dat spolu s kopií jeho metadat. Vzhledem k tomu, že data zůstávají v existujícím umístění, neúčtují se vám žádné další náklady na úložiště a neohrožuje integritu vašich zdrojů dat.

Další informace najdete v tématu Vytvoření a registrace datových sad služby Azure Machine Learning. Další příklady použití datových sad najdete v ukázkových poznámkových blocích.

Datové sady používají úložiště dat k zabezpečenému připojení ke službám úložiště Azure. Úložiště dat ukládají informace o připojení bez ohrožení přihlašovacích údajů ověřování a integrity původního zdroje dat. Ukládají informace o připojení, jako je ID vašeho předplatného a autorizace tokenu ve službě Key Vault přidružené k pracovnímu prostoru, abyste mohli bezpečně přistupovat k úložišti, aniž byste je museli pevně zakódovat ve skriptu.

Prostředí

Prostředí pracovního prostoru>

Prostředí je zapouzdření prostředí, ve kterém probíhá trénování nebo vyhodnocování modelu strojového učení. Prostředí určuje balíčky Pythonu, proměnné prostředí a nastavení softwaru kolem trénovacích a bodovacích skriptů.

Ukázky kódu najdete v části Správa prostředí v části Jak používat prostředí.

Experimenty

Experimenty pracovních prostorů>

Experiment je seskupení mnoha spuštění ze zadaného skriptu. Vždy patří do pracovního prostoru. Když odešlete spuštění, zadáte název experimentu. Informace o spuštění jsou uloženy v rámci daného experimentu. Pokud název při odeslání experimentu neexistuje, vytvoří se automaticky nový experiment.

Příklad použití experimentu najdete v tématu Kurz: Trénování prvního modelu.

Spuštění

Spuštění experimentů pracovních prostorů>>

Spuštění je jediné spuštění trénovacího skriptu. Experiment obvykle bude obsahovat více spuštění.

Azure Machine Learning zaznamenává všechna spuštění a ukládá do experimentu následující informace:

  • Metadata o spuštění (časové razítko, doba trvání atd.)
  • Metriky protokolované vaším skriptem
  • Výstupní soubory automaticky kompletované experimentem nebo explicitně nahrané vámi
  • Snímek adresáře, který obsahuje vaše skripty před spuštěním

Spuštění vytvoříte při odeslání skriptu pro trénování modelu. Spuštění může obsahovat nula nebo více podřízených spuštění. Například spuštění nejvyšší úrovně může mít dvě podřízená spuštění, z nichž každá může mít vlastní podřízené spuštění.

Spouštění konfigurací

Konfigurace spuštění>experimentů>pracovního prostoru>

Konfigurace spuštění definuje, jak se má skript spouštět v zadaném cílovém výpočetním objektu. Pomocí konfigurace můžete určit skript, cílový výpočetní objekt a prostředí Azure Machine Learning, na kterém se má spouštět, všechny konfigurace specifické pro distribuovanou úlohu a některé další vlastnosti. Další informace o úplné sadě konfigurovatelných možností pro spuštění naleznete v tématu ScriptRunConfig.

Konfiguraci spuštění je možné uložit do souboru v adresáři, který obsahuje trénovací skript. Nebo se dá vytvořit jako objekt v paměti a použít ho k odeslání spuštění.

Například konfigurace spuštění najdete v tématu Konfigurace trénovacího spuštění.

Snapshots

Snímek spuštění>experimentů>pracovního prostoru>

Když odešlete spuštění, Azure Machine Learning zkomprimuje adresář, který obsahuje skript jako soubor ZIP, a odešle ho do cílového výpočetního objektu. Soubor ZIP se pak extrahuje a skript se tam spustí. Azure Machine Learning také ukládá soubor ZIP jako snímek jako součást záznamu spuštění. Každý, kdo má přístup k pracovnímu prostoru, může procházet záznam spuštění a stáhnout snímek.

Protokolování

Azure Machine Learning za vás automaticky protokoluje standardní metriky spuštění. Sadu Python SDK ale můžete také použít k protokolování libovolných metrik.

Protokoly můžete zobrazit několika způsoby: monitorování stavu spuštění v reálném čase nebo zobrazení výsledků po dokončení. Další informace najdete v tématu Monitorování a zobrazení protokolů spuštění ML.

Poznámka:

Chcete-li zabránit zahrnutí nepotřebných souborů do snímku, proveďte v adresáři ignorovaný soubor (.gitignore nebo .amlignore). Do tohoto souboru přidejte soubory a adresáře, které se mají vyloučit. Další informace o syntaxi pro použití v tomto souboru naleznete v syntaxi a vzory pro .gitignore. Soubor .amlignore používá stejnou syntaxi. Pokud existují oba soubory, .amlignore použije se soubor a .gitignore soubor se nepoužívá.

Sledování a integrace Gitu

Když spustíte trénovací běh, ve kterém je zdrojový adresář místním úložištěm Git, uloží se informace o úložišti v historii spuštění. To funguje se spuštěními odeslanými pomocí konfigurace spuštění skriptu nebo kanálu ML. Funguje také pro spuštění odesílaná ze sady SDK nebo rozhraní příkazového řádku služby Machine Learning.

Další informace najdete v tématu Integrace Gitu pro Azure Machine Learning.

Pracovní postup trénování

Při spuštění experimentu pro trénování modelu dojde k následujícím krokům. Toto je znázorněno v diagramu pracovního postupu trénování níže:

  • Služba Azure Machine Learning se volá s ID snímku kódu uloženého v předchozí části.

  • Azure Machine Learning vytvoří ID spuštění (volitelné) a token služby Machine Learning, který se později používá výpočetními cíli, jako jsou výpočetní objekty machine Learning Compute nebo virtuální počítače ke komunikaci se službou Machine Learning.

  • Ke spouštění trénovacích úloh můžete zvolit buď spravovaný cílový výpočetní objekt (například Výpočty machine Learning), nebo nespravovaný cílový výpočetní objekt (například virtuální počítače). Tady jsou toky dat pro oba scénáře:

    • Virtuální počítače nebo HDInsight, ke které přistupuje přihlašovací údaje SSH v trezoru klíčů v předplatném Microsoftu. Azure Machine Learning spouští kód správy na cílovém výpočetním objektu, který:
    1. Připraví prostředí. (Docker je možnost pro virtuální počítače a místní počítače. Informace o fungování experimentů v kontejnerech Dockeru najdete v následujících krocích pro Službu Machine Learning Compute.)
    2. Stáhne kód.
    3. Nastaví proměnné a konfigurace prostředí.
    4. Spustí uživatelské skripty (snímek kódu uvedený v předchozí části).
    • Machine Learning Compute, ke které se přistupuje prostřednictvím identity spravované pracovním prostorem. Vzhledem k tomu, že Machine Learning Compute je spravovaný cílový výpočetní objekt (to znamená, že je spravovaný Microsoftem), běží v rámci vašeho předplatného Microsoftu.
    1. V případě potřeby se spustí vzdálená konstrukce Dockeru.
    2. Kód pro správu se zapíše do sdílené složky Azure Files uživatele.
    3. Kontejner se spustí pomocí počátečního příkazu. To znamená kód pro správu, jak je popsáno v předchozím kroku.
  • Po dokončení spuštění můžete dotazovat spuštění a metriky. V následujícím vývojovém diagramu dojde k tomuto kroku, když trénovací cílový výpočetní objekt zapíše metriky spuštění zpět do služby Azure Machine Learning z úložiště v databázi Azure Cosmos DB. Klienti můžou volat Azure Machine Learning. Machine Learning zase načítá metriky z databáze Azure Cosmos DB a vrátí je zpět klientovi.

Pracovní postup trénování

Modely

V nejjednodušším případě je model částí kódu, která přebírá vstup a vytváří výstup. Vytvoření modelu strojového učení zahrnuje výběr algoritmu, poskytnutí dat a ladění hyperparametrů. Trénování je iterativní proces, který vytváří trénovaný model, který zapouzdřuje to, co se model naučil během trénovacího procesu.

Model, který byl natrénován mimo Azure Machine Learning, můžete přinést. Nebo můžete model vytrénovat odesláním spuštění experimentu do cílového výpočetního objektu ve službě Azure Machine Learning. Jakmile máte model, zaregistrujete ho v pracovním prostoru.

Azure Machine Learning je nezávislá na architekturách. Při vytváření modelu můžete použít libovolnou oblíbenou architekturu strojového učení, jako jsou Scikit-learn, XGBoost, PyTorch, TensorFlow a Chainer.

Příklad trénování modelu pomocí Scikit-learn najdete v kurzu : Trénování modelu klasifikace obrázků pomocí služby Azure Machine Learning.

Registr modelu

Modely pracovního prostoru>

Registr modelů umožňuje sledovat všechny modely v pracovním prostoru Služby Azure Machine Learning.

Modely se identifikují podle názvu a verze. Pokaždé, když zaregistrujete model se stejným názvem jako existující, registr předpokládá, že se jedná o novou verzi. Verze se zvýší a nový model se zaregistruje pod stejným názvem.

Při registraci modelu můžete zadat další značky metadat a pak je použít při hledání 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.

Zaregistrovaný model, který používá aktivní nasazení, nemůžete odstranit.

Příklad registrace modelu najdete v tématu Trénování modelu klasifikace obrázků pomocí služby Azure Machine Learning.

Nasazení

Registrovaný model nasadíte jako koncový bod služby. Potřebujete následující komponenty:

  • Prostředí. Toto prostředí zapouzdřuje závislosti potřebné ke spuštění modelu pro odvozování.
  • Bodovací kód. Tento skript přijímá požadavky, vyhodnotuje požadavky pomocí modelu a vrací výsledky.
  • Konfigurace odvozování Konfigurace odvozování určuje prostředí, vstupní skript a další komponenty potřebné ke spuštění modelu jako služby.

Další informace o těchto komponentách najdete v tématu Nasazení modelů pomocí služby Azure Machine Learning.

Koncové body

Koncové body pracovního prostoru>

Koncový bod je instance modelu do webové služby, která se dá hostovat v cloudu.

Koncový bod webové služby

Při nasazování modelu jako webové služby je možné koncový bod nasadit ve službě Azure Container Instances nebo Azure Kubernetes Service. Službu vytvoříte z modelu, skriptu a přidružených souborů. Jsou umístěny do základní image kontejneru, která obsahuje spouštěcí prostředí pro model. Image má koncový bod HTTP s vyrovnáváním zatížení, který přijímá žádosti o vyhodnocování, které se odesílají do webové služby.

Můžete povolit telemetrii Application Insights nebo telemetrii modelu pro monitorování webové služby. Telemetrická data jsou přístupná jenom vám. Ukládají se v instancích účtu služby Application Insights a účtu úložiště. Pokud jste povolili automatické škálování, Azure automaticky škáluje vaše nasazení.

Následující diagram znázorňuje pracovní postup odvozování modelu nasazeného jako koncový bod webové služby:

Zde jsou údaje:

  • Uživatel zaregistruje model pomocí klienta, jako je sada Azure Machine Learning SDK.
  • Uživatel vytvoří image pomocí modelu, souboru skóre a dalších závislostí modelu.
  • Image Dockeru se vytvoří a uloží ve službě Azure Container Registry.
  • Webová služba se nasadí do cílového výpočetního objektu (Container Instances/AKS) pomocí image vytvořené v předchozím kroku.
  • Podrobnosti žádosti o bodování se ukládají ve službě Application Insights, která je v předplatném uživatele.
  • Telemetrie se také odešle do předplatného Microsoft Azure.

Pracovní postup odvození

Příklad nasazení modelu jako webové služby najdete v tématu Kurz: Trénování a nasazení modelu.

Koncové body v reálném čase

Když v návrháři nasadíte natrénovaný model, můžete ho nasadit jako koncový bod v reálném čase. Koncový bod v reálném čase obvykle přijímá jeden požadavek prostřednictvím koncového bodu REST a vrací předpověď v reálném čase. To je na rozdíl od dávkového zpracování, které zpracovává více hodnot najednou a ukládá výsledky po dokončení do úložiště dat.

Koncové body kanálu

Koncové body kanálu umožňují programově volat kanály ML prostřednictvím koncového bodu REST. Koncové body kanálu umožňují automatizovat pracovní postupy kanálu.

Koncový bod kanálu je kolekce publikovaných kanálů. Tato logická organizace umožňuje spravovat a volat více kanálů pomocí stejného koncového bodu. Každý publikovaný kanál v koncovém bodu kanálu má verzi. Můžete vybrat výchozí kanál pro koncový bod nebo zadat verzi ve volání REST.

Automation

Rozhraní CLI služby Azure Machine Learning

Azure Machine Learning CLI v1 je rozšíření azure CLI, rozhraní příkazového řádku pro různé platformy pro platformu Azure. Toto rozšíření poskytuje příkazy pro automatizaci aktivit strojového učení.

Kanály ML

Kanály strojového učení slouží k vytváření a správě pracovních postupů, které spojují fáze strojového učení. Kanál může například zahrnovat přípravu dat, trénování modelu, nasazení modelu a fáze odvozování/vyhodnocování. Každá fáze může zahrnovat více kroků, z nichž každá může běžet bezobslužně v různých cílových výpočetních objektech.

Kroky kanálu jsou opakovaně použitelné a je možné je spustit bez opětovného spuštění předchozích kroků, pokud se výstup těchto kroků nezměnil. Model můžete například přetrénovat bez opětovného spuštění nákladových kroků přípravy dat, pokud se data nezměnila. Kanály také umožňují datovým vědcům spolupracovat při práci na samostatných oblastech pracovního postupu strojového učení.

Monitorování a protokolování

Azure Machine Learning poskytuje následující možnosti monitorování a protokolování:

Interakce s pracovním prostorem

Studio

studio Azure Machine Learning poskytuje webové zobrazení všech artefaktů ve vašem pracovním prostoru. Můžete zobrazit výsledky a podrobnosti o datových sadách, experimentech, kanálech, modelech a koncových bodech. Můžete také spravovat výpočetní prostředky a úložiště dat v sadě Studio.

Studio je také místo, kde máte přístup k interaktivním nástrojům, které jsou součástí služby Azure Machine Learning:

  • Návrhář služby Azure Machine Learning pro provádění kroků pracovního postupu bez psaní kódu
  • Webové prostředí pro automatizované strojové učení
  • Poznámkové bloky Azure Machine Learning pro psaní a spouštění vlastního kódu na integrovaných serverech poznámkových bloků Jupyter
  • Projekty popisování dat pro vytváření, správu a monitorování projektů pro označování obrázků nebo textu

Programovací nástroje

Důležité

Nástroje označené níže (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.

Další kroky

Pokud chcete začít se službou Azure Machine Learning, přečtěte si: