Koncepty – operace strojového učení (MLOps) pro pracovní postupy umělé inteligence a strojového učení
V tomto článku se dozvíte o operacích strojového učení (MLOps), včetně toho, jaké typy postupů a nástrojů se týkají, a dozvíte se, jak zjednodušit a urychlit pracovní postupy AI a strojového učení ve službě Azure Kubernetes Service (AKS).
Co je MLOps?
Operace strojového učení (MLOps) zahrnují postupy, které usnadňují spolupráci mezi odborníky na data, provozem IT a obchodními účastníky a zajišťují efektivní vývoj, nasazení a údržbu modelů strojového učení. MLOps aplikuje principy DevOps na projekty strojového učení, jejichž cílem je automatizovat a zjednodušit kompletní životní cyklus strojového učení. Tento životní cyklus zahrnuje trénování, balení, ověřování, nasazování, monitorování a opětovné trénování modelů.
MLOps vyžaduje, aby efektivně spolupracovalo několik rolí a nástrojů. Datoví vědci se zaměřují na úlohy související s trénováním modelu, který se označuje jako vnitřní smyčka. Technici strojového učení a provozní týmy IT zpracovávají vnější smyčku, kde používají postupy DevOps k balení, ověřování, nasazování a monitorování modelů. Pokud model potřebuje jemně doladit nebo přetrénovat, proces se vrátí zpět do vnitřní smyčky.
Kanál MLOps
Kanál MLOps může využívat různé nástroje a mikroslužby, které se nasazují postupně nebo paralelně. Níže jsou uvedeny příklady klíčových komponent ve vašem kanálu, které využívají implementaci následujících osvědčených postupů, abyste snížili režii a umožnili rychlejší iteraci:
- Nestrukturované úložiště dat pro nové toky dat do vaší aplikace
- Vektorová databáze pro ukládání a dotazování strukturovaných, předem zpracovaných dat
- Architektura pro příjem dat a indexování
- Přetrénování pracovních postupů pro příjem vektorů nebo model
- Nástroje pro shromažďování metrik a upozorňování (sledování výkonu modelu, objem přijatých dat atd.)
- Nástroje pro správu životního cyklu
DevOps a MLOps
DevOps je kombinace nástrojů a postupů, které umožňují vytvářet robustní a reprodukovatelné aplikace. Cílem použití DevOps je rychle poskytovat hodnotu koncovým uživatelům. Hlavním cílem MLOps je vytváření, nasazování a monitorování robustních a reprodukovatelných modelů, které koncovým uživatelům poskytují hodnotu.
Pro MLOps jsou nezbytné tři procesy:
- Úlohy strojového učení, za které je zodpovědný datový vědec, včetně průzkumné analýzy dat (EDA), přípravy funkcí a trénování a ladění modelů.
- Postupy vývoje softwaru, včetně plánování, vývoje, testování a balení modelu pro nasazení
- Provozní aspekty nasazení a údržby modelu v produkčním prostředí, včetně uvolnění, konfigurace prostředků a monitorování modelu.
Principy DevOps, které se vztahují na MLOps
MLOps využívá několik principů z DevOps k vylepšení životního cyklu strojového učení, jako je automatizace, kontinuální integrace a doručování (CI/CD), správa zdrojového kódu, agilní plánování a infrastruktura jako kód (IaC).
Automation
Automatizací úloh můžete snížit ruční chyby, zvýšit efektivitu a zajistit konzistenci v rámci životního cyklu ML. Automatizaci je možné použít v různých fázích, včetně shromažďování dat, trénování modelu, nasazení a monitorování. Prostřednictvím automatizace můžete také použít proaktivní opatření v kanálu AI, abyste zajistili dodržování zásad vaší organizace.
Kanál může například automatizovat:
- Ladění a přetrénování modelů v pravidelných časových intervalech nebo při shromažďování určitého množství nových dat ve vaší aplikaci
- Detekce snížení výkonu za účelem zahájení jemného ladění nebo opětovného natrénování na jiné podmnožině dat
- Běžná kontrola ohrožení zabezpečení a ohrožení zabezpečení (CVE) u základních imagí kontejnerů vytažených z externích registrů kontejnerů za účelem zajištění bezpečných postupů zabezpečení
Průběžná integrace (CI)
Kontinuální integrace se zabývá vytvářením a ověřováním aspektů procesu vývoje modelu. Cílem CI je vytvořit kód a ověřit kvalitu kódu a modelu před nasazením. To zahrnuje testování řady ukázkových datových sad, aby se zajistilo, že model funguje podle očekávání a splňuje standardy kvality.
V MLOps může CI zahrnovat:
- Refaktoring průzkumného kódu v poznámkových blocích Jupyter do skriptů Pythonu nebo R
- Ověřování nových vstupních dat pro chybějící nebo chybové hodnoty
- Testování jednotek a integrační testování v kompletním kanálu
K testování lintování a jednotek můžete použít automatizační nástroje, jako je Azure Pipelines v Azure DevOps nebo GitHub Actions.
Průběžné doručování (CD)
Průběžné doručování zahrnuje kroky potřebné k bezpečnému nasazení modelu v produkčním prostředí. Prvním krokem je zabalení a nasazení modelu v předprodukčním prostředí, jako jsou vývojová a testovací prostředí. Přenositelnost parametrů, hyperparametrů a dalších artefaktů modelu je důležitým aspektem údržby při propagaci kódu v těchto prostředích. Tato přenositelnost je obzvláště důležitá, pokud jde o velké jazykové modely (LLM) a stabilní modely difúze. Jakmile model projde testy jednotek a testy kontroly kvality (QA), můžete ho schválit pro nasazení v produkčním prostředí.
Zdrojový ovládací prvek
Správa zdrojového kódu nebo správy verzí je nezbytná pro správu změn kódu a modelů. V systému ML se to týká správy verzí dat, správy verzí kódu a správy verzí modelu, které umožňují týmům křížového fungování efektivně spolupracovat a sledovat změny v průběhu času. Použití systému správy zdrojového kódu založeného na Gitu, jako je Azure Repos v Azure DevOps nebo v úložišti GitHub, umožňuje programově udržovat historii změn, vrátit se k předchozím verzím a spravovat větve pro různé experimenty.
Agilní plánování
Agilní plánování zahrnuje izolování práce do sprintů, což jsou krátké časové rámce pro dokončení konkrétních úkolů. Tento přístup umožňuje týmům rychle přizpůsobit změny a zajistit přírůstková vylepšení modelu. Trénování modelu může být probíhající proces a agilní plánování může pomoct určit rozsah projektu a umožnit lepší sladění týmu.
Ke správě agilního plánování můžete použít nástroje, jako je Azure Boards v Azure DevOps nebo GitHub.
Infrastruktura jako kód (IaC)
Infrastrukturu použijete jako kód k opakování a automatizaci infrastruktury potřebné k trénování, nasazování a obsluhování modelů. V systému ML pomáhá IaC zjednodušit a definovat odpovídající prostředky Azure potřebné pro konkrétní typ úlohy v kódu a kód se udržuje v úložišti. To vám umožní podle potřeby řídit infrastrukturu verzí a provádět změny pro optimalizaci prostředků, nákladovou efektivitu atd.
Další kroky
V následujících článcích najdete informace o osvědčených postupech MLOps v inteligentních aplikacích v AKS:
Azure Kubernetes Service