Sdílet prostřednictvím


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: