Co jsou Azure Machine Learning kanály?

V tomto článku se dozvíte, jak vám kanál strojového učení pomáhá sestavovat, optimalizovat a spravovat pracovní postup strojového učení.

Kterou technologii kanálů Azure mám použít?

Cloud Azure poskytuje několik typů kanálů, z nichž každý má jiný účel. Následující tabulka uvádí různé kanály a jejich použití:

Scenario Primární osoba Nabídka Azure Nabídka OSS Kanonická smyka Silné
Orchestrace modelů (strojové učení) Datový vědec Azure Machine Learning Pipelines Kubeflow – Pipelines Data – > model Distribuce, ukládání do mezipaměti, první kód, opakované použití
Orchestrace dat (příprava dat) Datový inženýr Kanály Azure Data Factory Apache Airflow Data – > data Přesun se silnými typy, aktivity zaměřené na data
Orchestrace & kódu a aplikací (CI/CD) App Developer / Ops Azure Pipelines Jenkins Code + Model -> App/Service Většina otevřené a flexibilní podpory aktivit, schvalovacích front a fází s gatingem

Co mohou kanály strojového učení dělat?

Kanál Azure Machine Learning je nezávisle spustitelný pracovní postup kompletní úlohy strojového učení. Dílčí úlohy jsou v rámci kanálu zapouzdřené do série kroků. Kanál Azure Machine Learning může být jednoduchý jako kanál, který volá skript Pythonu, takže může dělat cokoli. Pipelines byste se měli zaměřit na úlohy strojového učení, jako jsou:

  • Přípravu dat, včetně importu, ověřování a čištění, transformace a nedefinované transformace, normalizace a fázování
  • Konfiguraci trénování, včetně parametrizace argumentů, cest k souborům a konfigurací protokolování a generování sestav
  • Efektivní a opakované trénování a ověřování Efektivita může posouvá určení konkrétních podmnožin dat, různých hardwarových výpočetních prostředků, distribuovaného zpracování a monitorování průběhu.
  • Nasazení, včetně správy verzí, škálování, zřizování a řízení přístupu

Nezávislé kroky umožňují více datovým vědcům pracovat ve stejném kanálu současně, aniž by se řešte nad daněmi výpočetních prostředků. Samostatné kroky také usnadňuje použití různých typů a velikostí výpočetních prostředků pro jednotlivé kroky.

Po navržení kanálu se často vylaďuje smyčka trénování kanálu. Při opětovném spuštění kanálu se spuštění přeskočí k krokům, které je potřeba spustit znovu, například aktualizovaný trénovací skript. Přeskočí se kroky, které není potřeba znovu spustit.

V případě kanálů se můžete rozhodnout pro různé úlohy používat jiný hardware. Azure koordinuje různé cílové výpočetní objekty, které používáte, takže přechodná data hladce proudí do cílových výpočetních objektů podřízeného serveru.

Metriky pro experimenty s kanály můžete sledovat přímo v Azure Portal nebo na cílové stránce pracovního prostoru (Preview). Po publikování kanálu můžete nakonfigurovat koncový bod REST, který vám umožní kanál znovu spustit z libovolné platformy nebo zásobníku.

Zkrátka všem složitým úlohám životního cyklu strojového učení můžete pomoct s kanály. Jiné technologie kanálů Azure mají své silné stránky. Azure Data Factory kanály exceluje při práci s daty a Azure Pipelines je správným nástrojem pro kontinuální integraci a nasazování. Pokud se ale zaměřujete na strojové učení, Azure Machine Learning kanály budou pravděpodobně tou nejlepší volbou pro vaše potřeby pracovního postupu.

Analýza závislostí

Mnoho programovacích ekosystémů má nástroje, které orchestrují závislosti prostředků, knihoven nebo kompilací. Obecně platí, že tyto nástroje používají k výpočtu závislostí časová razítka souborů. Když se soubor změní, aktualizují se jenom tento soubor a jeho závislé součásti (stáhne se, zkompiluje nebo zabalí). Azure Machine Learning rozšiřují tento koncept. Stejně jako tradiční nástroje sestavení kanály vypočítávají závislosti mezi jednotlivými kroky a provádějí pouze nezbytné přepočítání.

Analýza závislostí v Azure Machine Learning je ale sofistikovanější než jednoduchá časová razítka. Každý krok může běžet v jiném hardwarovém a softwarovém prostředí. Příprava dat může být časově náročný proces, ale nemusí běžet na hardwaru s výkonnými GPU, některé kroky můžou vyžadovat software specifický pro operační systém, můžete chtít použít distribuované trénování atd.

Azure Machine Learning automaticky orchestruje všechny závislosti mezi kroky kanálu. Tato orchestrace může zahrnovat roztáčení a vypnutí imagí Dockeru, připojení a odpojení výpočetních prostředků a přesun dat mezi jednotlivými kroky konzistentním a automatickým způsobem.

Koordinace zapojených kroků

Při vytváření a spouštění Pipeline objektu dojde k následujícím krokům vysoké úrovně:

  • Pro každý krok služba vypočítá požadavky na:
    • Hardwarové výpočetní prostředky
    • Prostředky operačního systému (image Dockeru)
    • Softwarové prostředky (závislosti Conda / virtualenv)
    • Datové vstupy
  • Služba určuje závislosti mezi jednotlivými kroky, což vede k dynamickému grafu spouštění.
  • Při spuštění každého uzlu v grafu provádění:
    • Služba nakonfiguruje potřebné hardwarové a softwarové prostředí (třeba opětovné použití existujících prostředků).
    • Tento krok se spustí a poskytne informace o protokolování a monitorování obsahujícímu Experiment objekt .
    • Po dokončení kroku se jeho výstupy připraví jako vstupy do dalšího kroku a/nebo se zapisou do úložiště.
    • Prostředky, které už nepotřebujete, se finalizuje a oddělí.

Kroky kanálu

Vytváření kanálů pomocí sady Python SDK

V Azure Machine Learning Python SDKje kanál objektem Pythonu definovaným v azureml.pipeline.core modulu . Objekt Pipeline obsahuje seřazenou sekvenci jednoho nebo více objektů PipelineStep. Třída je abstraktní a skutečný postup bude z podtříd, jako PipelineStep jsou EstimatorStep, PythonScriptStepnebo DataTransferStep. Třída ModuleStep obsahuje znovupoužitelnou posloupnost kroků, které lze sdílet mezi kanály. Spustí Pipeline se jako součást Experiment .

Kanál služby Azure Machine Learning je přidružený k pracovnímu Azure Machine Learning a krok kanálu je přidružený k cílovému výpočetnímu prostředí dostupnému v tomto pracovním prostoru. Další informace najdete v tématu Vytváření a správa Azure Machine Learning pracovních prostorů v Azure Portal nebo Co jsou cílové výpočetní objekty v Azure Machine Learning?.

Jednoduchý kanál Pythonu

Tento fragment kódu ukazuje objekty a volání potřebné k vytvoření a spuštění Pipeline objektu :

ws = Workspace.from_config() 
blob_store = Datastore(ws, "workspaceblobstore")
compute_target = ws.compute_targets["STANDARD_NC6"]
experiment = Experiment(ws, 'MyExperiment') 

input_data = Dataset.File.from_files(
    DataPath(datastore, '20newsgroups/20news.pkl'))
prepped_data_path = OutputFileDatasetConfig(name="output_path")

dataprep_step = PythonScriptStep(
    name="prep_data",
    script_name="dataprep.py",
    source_directory="prep_src",
    compute_target=compute_target,
    arguments=["--prepped_data_path", prepped_data_path],
    inputs=[input_dataset.as_named_input('raw_data').as_mount() ]
    )

prepped_data = prepped_data_path.read_delimited_files()

train_step = PythonScriptStep(
    name="train",
    script_name="train.py",
    compute_target=compute_target,
    arguments=["--prepped_data", prepped_data],
    source_directory="train_src"
)
steps = [ dataprep_step, train_step ]

pipeline = Pipeline(workspace=ws, steps=steps)

pipeline_run = experiment.submit(pipeline)
pipeline_run.wait_for_completion()

Fragment kódu začíná běžnými Azure Machine Learning objektů, Workspace , Datastore , , ComputeTargeta Experiment . Potom kód vytvoří objekty, které se mají uchovat, a input_data prepped_data_path . je input_data instance FileDataset a je prepped_data_path instancí OutputFileDatasetConfig. Výchozím chováním je zkopírování výstupu do úložiště dat v cestě , kde je ID spuštění a je automaticky vygenerovaná hodnota, pokud není zadaná OutputFileDatasetConfig workspaceblobstore /dataset/{run-id}/{output-name} run-id output-name vývojářem.

Kód pro přípravu dat (není zobrazený) zapisuje soubory s oddělovači do prepped_data_path . Tyto výstupy z kroku přípravy dat se předá prepped_data jako krok trénování.

Pole steps obsahuje dvě hodnoty PythonScriptStep s a dataprep_step train_step . Azure Machine Learning analyzuje závislost na datech a prepped_data spustí se dataprep_step před train_step .

Potom kód vytvoří instanci samotného objektu Pipeline a předá pracovní prostor a pole kroků. Volání experiment.submit(pipeline) zahajuje spuštění ML Azure. Volání wait_for_completion() blokuje, dokud se kanál nedokončí.

další informace o připojení kanálu k vašim datům najdete v článcích přístup k datům v Azure Machine Learning a přesouvání dat do a mezi postupy ML kanálů (Python).

Vytváření kanálů pomocí návrháře

vývojáři, kteří preferují vizuální návrhovou plochu, mohou pomocí návrháře Azure Machine Learning vytvářet kanály. K tomuto nástroji můžete přistupovat z výběru Návrháře na domovské stránce pracovního prostoru. Návrhář umožňuje přetáhnout kroky na návrhovou plochu.

Při vizuálním návrhu kanálů jsou vstupy a výstupy kroku zobrazeny viditelně. Můžete přetahovat datová připojení, což vám umožní rychle pochopit a upravovat tok dat vašeho kanálu.

příklad návrháře Azure Machine Learning

Klíčové výhody

Mezi klíčové výhody použití kanálů pro pracovní postupy machine learningu patří:

Výhoda klíče Description
Bezobslužné   běhy Naplánujte kroky paralelně nebo v rámci spolehlivého a bezobslužného zpracování. Příprava a modelování dat může mít poslední dny nebo týdny a kanály vám umožní soustředit se na další úlohy, když je proces spuštěný.
Heterogenní COMPUTE Používejte více kanálů, které jsou spolehlivě koordinované napříč heterogenními a škálovatelnými výpočetními prostředky a umístěními úložiště. Využijte k efektivnímu využití dostupných výpočetních prostředků spuštěním jednotlivých kroků kanálu na různých výpočetních cílech, jako je HDInsight, GPU pro datové vědy GPU a datacihly.
Možnost opakovaného využití Vytvořte šablony kanálu pro konkrétní scénáře, jako je například přeškolení a dávkové vyhodnocování. Triggery publikovaných kanálů z externích systémů prostřednictvím jednoduchých volání REST.
Sledování a správa verzí Namísto ručního sledování dat a cest výsledků při iteraci můžete použít sadu SDK pro kanály k explicitnímu pojmenování a používání datových zdrojů, vstupů a výstupů. Skripty a data můžete spravovat i samostatně pro zvýšení produktivity.
Modularitu Oddělení otázek a izolace změn umožňuje softwaru vyvíjet se rychleji s vyšší kvalitou.
Spolupráce Pipelines umožnit, aby odborníci na data spolupracovali ve všech oblastech procesu návrhu strojového učení a zároveň mohli současně pracovat na postupech kanálu.

Další kroky

Azure Machine Learning kanály jsou výkonné zařízení, které začíná dodávat hodnoty ve fázích předčasného vývoje. Hodnota se zvyšuje při zvětšování týmu a projektu. tento článek vysvětluje, jak se zadává kanály s Azure Machine Learning Python SDK a orchestruje se v Azure. Viděli jste nějaký jednoduchý zdrojový kód a zavedli jsme několik PipelineStep dostupných tříd. měli byste mít představu o tom, kdy používat kanály Azure Machine Learning a jak je Azure spouští.