Co jsou kanály služby Azure Machine Learning?
Kanál Azure Machine Learning je nezávislý spustitelný pracovní postup kompletní úlohy strojového učení. Kanál Azure Machine Learning pomáhá standardizovat osvědčené postupy pro vytváření modelu strojového učení, umožňuje týmu provádět ve velkém měřítku a zlepšuje efektivitu vytváření modelu.
Proč jsou potřeba kanály Azure Machine Learning?
Základem kanálu strojového učení je rozdělení kompletní úlohy strojového učení na vícekrokový pracovní postup. Každý krok je spravovatelná komponenta, kterou je možné vyvíjet, optimalizovat, konfigurovat a automatizovat jednotlivě. Kroky jsou propojeny prostřednictvím dobře definovaných rozhraní. Služba kanálu Azure Machine Learning automaticky orchestruje všechny závislosti mezi kroky kanálu. Tento modulární přístup přináší dvě klíčové výhody:
- Standardizace praxe operace strojového učení (MLOps) a podpora škálovatelné týmové spolupráce
- Efektivita trénování a snížení nákladů
Standardizace praxe MLOps a podpora škálovatelné týmové spolupráce
Operace strojového učení (MLOps) automatizuje proces vytváření modelů strojového učení a přechádí model do produkčního prostředí. Jedná se o složitý proces. Obvykle vyžaduje spolupráci různých týmů s různými dovednostmi. Dobře definovaný kanál strojového učení může tento složitý proces abstrahovat do pracovního postupu s několika kroky, který mapuje jednotlivé kroky na konkrétní úkol, aby každý tým mohl pracovat nezávisle.
Typický projekt strojového učení například zahrnuje kroky shromažďování dat, přípravu dat, trénování modelu, vyhodnocení modelu a nasazení modelu. Datoví inženýři se obvykle zaměřují na datové kroky, datoví vědci tráví většinu času na trénování a hodnocení modelu, technici strojového učení se zaměřují na nasazení modelu a automatizaci celého pracovního postupu. Díky využití kanálu strojového učení musí každý tým pracovat jenom na vytváření vlastních kroků. Nejlepším způsobem vytváření kroků je použití komponenty Azure Machine Learning (v2) – samostatné části kódu, která provádí jeden krok v kanálu strojového učení. Všechny tyto kroky vytvořené různými uživateli jsou nakonec integrovány do jednoho pracovního postupu prostřednictvím definice kanálu. Kanál je nástroj pro spolupráci pro všechny uživatele v projektu. Proces definování kanálu a všech jeho kroků může být standardizován preferovaným postupem DevOps každé společnosti. Kanál je možné dále zautomatizovat a automatizovat. Pokud jsou projekty ML popsány jako kanál, osvědčený postup MLOps je již použit.
Efektivita trénování a snížení nákladů
Kromě toho, že je nástrojem pro nasazení MLOps do praxe, kanál strojového učení také zlepšuje efektivitu trénování velkých modelů a snižuje náklady. Příkladem je trénování moderního modelu přirozeného jazyka. Vyžaduje předzpracování velkých objemů dat a trénování modelu transformátoru náročného na GPU. Trénování modelu trvá hodiny až dny. Při vytváření modelu chce datový vědec otestovat různé trénovací kódy nebo hyperparametry a mnohokrát spustit trénování, aby získal nejlepší výkon modelu. U většiny těchto školení je obvykle malé změny z jednoho trénování na druhý. Při každém úplném trénování ze zpracování dat do trénování modelu to bude významné plýtvání. Pomocí kanálu strojového učení může automaticky vypočítat, které kroky se nezmění, a znovu použít výstupy z předchozího trénování. Kanál strojového učení navíc podporuje spouštění jednotlivých kroků na různých výpočetních prostředcích. To znamená, že zpracování dat náročné na paměť funguje a běží na počítačích s vysokým využitím paměti a výpočetní náročné trénování může běžet na drahých počítačích GPU. Správným výběrem kroku, na kterém se mají počítače spouštět, je možné náklady na trénování výrazně snížit.
Osvědčené postupy začínáme
V závislosti na tom, co už projekt strojového učení má, se může počáteční bod vytváření kanálu strojového učení lišit. K vytvoření kanálu existuje několik typických přístupů.
První přístup se obvykle vztahuje na tým, který předtím nepoužíval kanál, a chce využít určitou výhodu kanálu, jako je MLOps. V této situaci odborníci na data obvykle vyvinuli některé modely strojového učení v místním prostředí pomocí svých oblíbených nástrojů. Technici strojového učení potřebují převést výstup datových vědců do produkčního prostředí. Součástí práce je vyčištění nepotřebného kódu z původního poznámkového bloku nebo kódu Pythonu, změny trénovacího vstupu z místních dat na parametrizované hodnoty, rozdělení trénovacího kódu do několika kroků podle potřeby, provedení testování částí každého kroku a nakonec zabalí všechny kroky do kanálu.
Jakmile se týmy seznámí s kanály a chtějí pomocí kanálů provádět více projektů strojového učení, zjistí, že první přístup je obtížné škálovat. Druhý přístup je nastavených několika šablon kanálů. Každý se pokusí vyřešit jeden konkrétní problém strojového učení. Šablona předdefinuje strukturu kanálu, včetně toho, kolik kroků, vstupů a výstupů jednotlivých kroků a jejich připojení. Pokud chcete zahájit nový projekt strojového učení, tým nejprve vytvoří fork jednoho úložiště šablon. Vedoucí týmu pak přiřadí členům, na kterých kroku musí pracovat. Datoví vědci a datoví inženýři dělají běžnou práci. Když jsou s výsledkem spokojení, strukturují kód tak, aby se vešly do předdefinovaných kroků. Jakmile jsou strukturované kódy vráceny se změnami, je možné kanál spustit nebo automatizovat. Pokud dojde ke změně, každý člen musí pracovat jenom na jeho kusu kódu, aniž by se dotýkal zbytku kódu kanálu.
Jakmile tým sestaví kolekci kanálů strojového učení a opakovaně použitelných komponent, může začít sestavovat kanál strojového učení z klonování předchozího kanálu nebo spojit existující opakovaně použitelnou komponentu. V této fázi se celková produktivita týmu výrazně zlepší.
Azure Machine Learning nabízí různé metody pro sestavení kanálu. Pro uživatele, kteří jsou obeznámeni s postupy DevOps, doporučujeme používat rozhraní příkazového řádku. Pro datové vědce, kteří jsou obeznámeni s Pythonem, doporučujeme psát kanály pomocí sady Azure Machine Learning SDK v2. Pro uživatele, kteří raději používají uživatelské rozhraní, můžou pomocí návrháře vytvářet kanály pomocí registrovaných komponent.
Kterou technologii kanálu 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 to, k čemu se používají:
Scénář | Primární osoba | Nabídka Azure | Nabídka operačního systému | Kanonické potrubí | Síly |
---|---|---|---|---|---|
Orchestrace modelů (Strojové učení) | Datový vědec | Kanály služby Azure Machine Learning | Kanály Kubeflow | Data –> model | Distribuce, ukládání do mezipaměti, první použití kódu, opakované použití |
Orchestrace dat (příprava dat) | Datový inženýr | Kanály Azure Data Factory | Apache Airflow | Data –> data | Přesun silného typu, aktivity zaměřené na data |
Orchestrace kódu a aplikací (CI/CD) | Vývojář aplikací / Operace | Azure Pipelines | Jenkins | Kód + model –> App/Service | Většina otevřených a flexibilních aktivit podporuje, schvalovací fronty, fáze s gatingem |
Další kroky
Kanály Azure Machine Learning jsou výkonné zařízení, které začíná poskytovat hodnotu v počátečních fázích vývoje.
- Definování kanálů s využitím rozhraní příkazového řádku služby Azure Machine Learning v2
- Definování kanálů s využitím sady SDK služby Azure Machine Learning v2
- Definování kanálů s využitím návrháře
- Vyzkoušení příkladu kanálu CLI v2
- Vyzkoušení příkladu kanálu sady Python SDK v2
- Seznamte se se sadami SDK a výrazy rozhraní příkazového řádku v2, které je možné použít v kanálu.