Jak azure Machine Učení 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) azure Machine Učení CLI &SDK. Informace o verzi 2 (v2) najdete v tématu Fungování služby Azure Machine Učení (v2).

Seznamte se s architekturou a koncepty pro Učení Azure Machine. 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: Azure Machine Learning architecture of a workspace and its components

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 Azure Machine Učení, jsou uložené i tady.
  • Aplikace Azure Přehledy: 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á

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 Učení 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 Učení 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 Azure Machine Učení. 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 Učení 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. Konfiguraci použijete k určení skriptu, cílového výpočetního prostředí a prostředí azure machine Učení ke spuštění, jakékoli 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 Učení 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 Učení 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 Učení automaticky protokoluje standardní metriky spuštění za vás. 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 počítače Učení.

Další informace najdete v tématu Integrace Gitu pro azure machine Učení.

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:

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

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

  • Ke spouštění trénovacích úloh můžete zvolit spravovaný cílový výpočetní objekt (například Machine Učení Compute) 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 Učení 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 machine Učení 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).
    • Počítač Učení Compute, ke které se přistupuje prostřednictvím identity spravované pracovním prostorem. Vzhledem k tomu, že Učení Compute je spravovaný cílový výpočetní objekt (to znamená, že ho spravuje Microsoft), 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 Učení z úložiště v databázi Azure Cosmos DB. Klienti můžou volat Učení Azure Machine. Počítač Učení zase načítá metriky z databáze Azure Cosmos DB a vrátí je zpět klientovi.

Training workflow

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 vytrénován mimo službu Azure Machine Učení, 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 Učení. Jakmile máte model, zaregistrujete ho v pracovním prostoru.

Azure Machine Učení 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 tématu Kurz: Trénování modelu klasifikace obrázků pomocí služby Azure Machine Učení.

Registr modelu

Modely pracovního prostoru>

Registr modelů umožňuje sledovat všechny modely v pracovním prostoru Azure Machine Učení.

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, který je uložený ve více souborech, můžete je zaregistrovat jako jeden model v pracovním prostoru Azure Machine Učení. 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 Učení.

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 Učení.

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, Azure Kubernetes Service nebo FPGA. 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.

K monitorování webové služby můžete povolit telemetrii Přehledy aplikací nebo telemetrii modelu. Telemetrická data jsou přístupná jenom vám. Uloží se v instancích Přehledy aplikace 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 Azure Machine Učení 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í v Přehledy aplikace, což je v předplatném uživatele.
  • Telemetrie se také odešle do předplatného Microsoft Azure.

Inference workflow

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.

Automatizace

Rozhraní CLI služby Azure Machine Learning

Azure Machine Učení 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 Učení 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 Učení:

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 pracovat se službou Azure Machine Učení, přečtěte si téma: