Sestavení jednoho modelu strojového učení není komplikované. Nicméně, tvorba a správa stovek či tisíců modelů, a také opakované zlepšování již existujících, se ukazuje jako náročný úkol.
Je snadné ztratit se v nepřehledném prostředí. Situace se stává ještě složitější, když na projektu pracuje tým, protože je potřeba koordinovat aktivity všech členů. Zavedení pořádku do takového chaosu vyžaduje, aby celý tým dodržoval stanovený postup a dokumentoval svou práci. Právě to je základní myšlenkou MLOps.
Co je to MLOps?
Zdroj: ml-ops.org
Podle definice MLOps.org je cílem Machine Learning Operationalization vytvořit komplexní proces pro vývoj strojového učení, který zahrnuje návrh, vytváření a správu reprodukovatelného, testovatelného a vyvíjejícího se softwaru, který je založen na ML. MLOps lze zjednodušeně popsat jako principy DevOps aplikované na oblast strojového učení.
Stejně jako u DevOps, i v MLOps je automatizace klíčová pro snížení počtu manuálních kroků a zvýšení celkové efektivity. MLOps, podobně jako DevOps, zahrnuje kontinuální integraci (CI) a kontinuální doručování (CD). Kromě toho, MLOps přidává i kontinuální trénink (CT), který se zaměřuje na rekvalifikaci modelů s novými daty a jejich opětovné nasazení.
MLOps představuje inženýrskou kulturu, která podporuje systematický přístup k vývoji modelů strojového učení a automatizaci jednotlivých kroků. Tento proces zahrnuje především extrakci dat, jejich analýzu, přípravu, trénování modelu, jeho vyhodnocení, nasazení a monitorování.
Výhody MLOps
Obecně platí, že výhody implementace principů MLOps jsou srovnatelné s výhodami standardních operačních postupů. Mezi hlavní výhody patří:
- Jasně definovaný proces poskytuje plán všech zásadních kroků, které je nutné dodržet při vývoji modelu. Tím je zajištěno, že se nevynechají žádné důležité fáze.
- Automatizovatelné kroky v procesu jsou identifikovány a následně automatizovány. To vede ke snížení opakované práce a zvýšení rychlosti vývoje. Dochází také k eliminaci lidských chyb a snížení pracovní zátěže.
- Je snazší posoudit pokrok ve vývoji modelu, protože je zřejmé, v jaké fázi se proces nachází.
- Týmy mohou snadněji komunikovat díky sjednocené terminologii pro jednotlivé kroky vývoje.
- Proces je možné opakovaně použít pro vývoj mnoha modelů, čímž se efektivněji zvládá chaos.
Závěrem lze říci, že hlavním cílem MLOps ve strojovém učení je poskytnout systematický přístup k vývoji modelů, který je automatizován v maximální možné míře.
Platformy pro budování potrubí
Pro usnadnění implementace MLOps do vašich procesů je k dispozici řada platforem, které si zde představíme. I když se funkce těchto platforem mohou lišit, jejich základní úkolem je:
- Ukládání modelů spolu s přidruženými metadaty, jako jsou konfigurace, kód, přesnost a výsledky experimentů. Zahrnuje také různé verze modelů pro snadnější správu verzí.
- Ukládání metadat datových sad, včetně dat použitých pro trénování modelů.
- Sledování modelů v produkčním prostředí, aby bylo možné zachytit problémy, jako je například drift modelu.
- Nasazování modelů do produkčního prostředí.
- Vytváření modelů v prostředích s minimálním nebo žádným kódem.
Nyní se podíváme na některé z nejlepších MLOps platforem.
MLFlow
MLFlow je jedna z nejoblíbenějších platforem pro správu životního cyklu strojového učení. Jedná se o bezplatný open-source projekt. Nabízí následující funkce:
- Sledování pro zaznamenávání experimentů strojového učení, kódu, dat, konfigurací a dosažených výsledků;
- Projekty pro zabalení kódu do formátu, který umožňuje snadnou reprodukovatelnost;
- Nasazení pro implementaci modelů strojového učení;
- Registr pro centralizované ukládání všech modelů.
MLFlow se integruje s oblíbenými knihovnami strojového učení, jako jsou TensorFlow a PyTorch. Podporuje také integraci s platformami jako Apache Spark, H20.ai, Google Cloud, Amazon Sage Maker, Azure Machine Learning a Databricks. Funguje také s různými poskytovateli cloudu, včetně AWS, Google Cloud a Microsoft Azure.
Azure Machine Learning
Azure Machine Learning je komplexní platforma pro strojové učení. Spravuje různé fáze životního cyklu strojového učení v rámci vašeho MLOps procesu. Mezi tyto fáze patří příprava dat, vytváření a trénování modelů, ověřování a nasazování modelů, a také správa a monitorování produkčních nasazení.
Azure Machine Learning umožňuje vytvářet modely pomocí preferovaného IDE a frameworku, jako je PyTorch nebo TensorFlow.
Platforma se také integruje s ONNX Runtime a Deepspeed pro optimalizaci trénování a inferencí, což vede ke zlepšení výkonu. Využívá infrastrukturu AI v Microsoft Azure, která kombinuje GPU NVIDIA a síť Mellanox pro vytváření clusterů strojového učení. Pomocí AML můžete vytvořit centrální registr pro ukládání a sdílení modelů a datových sad.
Azure Machine Learning se integruje s akcemi Git a GitHub pro vytváření pracovních postupů. Podporuje také hybridní nebo multi-cloudová nastavení. Lze ji integrovat s dalšími službami Azure, jako je Synapse Analytics, Data Lake, Databricks a Security Center.
Google Vertex AI
Google Vertex AI je sjednocená platforma pro data a umělou inteligenci. Poskytuje nástroje pro vytváření vlastních i předtrénovaných modelů. Slouží také jako komplexní řešení pro implementaci MLOps. Pro usnadnění práce se integruje s BigQuery, Dataproc a Spark pro bezproblémový přístup k datům během trénování.
Kromě API poskytuje Google Vertex AI prostředí s nástroji s minimálním nebo žádným kódem, což umožňuje i uživatelům bez vývojářských dovedností, jako jsou obchodní a datoví analytici, s platformou pracovat. Rozhraní API umožňuje vývojářům integraci s existujícími systémy.
Google Vertex AI také umožňuje vytváření generativních aplikací AI pomocí Generative AI Studio. Umožňuje snadné a rychlé nasazení a správu infrastruktury. Ideálními případy použití Google Vertex AI jsou zajištění připravenosti dat, inženýrství funkcí, trénování a ladění hyperparametrů, poskytování modelů, ladění a porozumění modelu, monitorování modelu a správa modelů.
Databricks
Databricks je datové jezero, které umožňuje připravovat a zpracovávat data. Pomocí Databricks můžete spravovat celý životní cyklus strojového učení, od experimentování až po produkční nasazení.
Databricks v podstatě poskytuje spravované MLFlow, nabízející funkce, jako je protokolování datových verzí modelů ML, sledování experimentů, poskytování modelů, registr modelů a sledování metrik. Registr modelů umožňuje ukládat modely pro zajištění reprodukovatelnosti a sledovat verze a fáze životního cyklu modelů.
Nasazení modelů pomocí Dataricks je jednoduché, stačí jedno kliknutí. Platforma vytvoří koncové body REST API, které lze použít pro předpovědi. Kromě jiného, nabízí dobrou integraci s existujícími předtrénovanými generativními a velkými jazykovými modely, jako jsou modely z knihovny transformátorů hugging face.
Databricks poskytuje kolaborativní notebooky, které podporují Python, R, SQL a Scala. Platforma také zjednodušuje správu infrastruktury díky předkonfigurovaným clusterům, které jsou optimalizovány pro úlohy strojového učení.
AWS SageMaker
AWS SageMaker je cloudová služba AWS, která poskytuje nástroje pro vývoj, trénování a nasazování modelů strojového učení. Hlavním cílem SageMakeru je automatizovat rutinní a opakující se manuální úkoly spojené s tvorbou modelů strojového učení.
Výsledkem je, že poskytuje nástroje pro vytvoření produkčního prostředí pro vaše modely strojového učení s využitím různých služeb AWS, jako jsou instance Amazon EC2 a úložiště Amazon S3.
SageMaker pracuje s notebooky Jupyter, které jsou nainstalovány na instanci EC2 spolu se všemi běžnými balíčky a knihovnami potřebnými pro kódování modelů strojového učení. Pro data je SageMaker schopen stahovat data ze služby Amazon Simple Storage Service.
Ve výchozím nastavení získáte implementace běžných algoritmů strojového učení, jako je lineární regrese a klasifikace obrázků. SageMaker také přichází s monitorem modelu, který poskytuje nepřetržité a automatické ladění pro nalezení sady parametrů, které poskytují nejlepší výkon pro vaše modely. Nasazení je také zjednodušeno, protože můžete snadno nasadit svůj model do AWS jako zabezpečený koncový bod HTTP, který můžete sledovat pomocí CloudWatch.
DataRobot
DataRobot je populární platforma MLOps, která umožňuje spravovat různé fáze životního cyklu strojového učení, jako je příprava dat, experimentování s ML, ověřování a správa modelů.
Disponuje nástroji pro automatizaci experimentů s různými zdroji dat, testování tisíců modelů a vyhodnocování těch nejlepších pro nasazení do produkčního prostředí. Platforma podporuje vytváření modelů pro různé typy AI, jako jsou modely pro práci s časovými řadami, zpracování přirozeného jazyka a počítačové vidění.
S DataRobot můžete vytvářet modely pomocí hotových algoritmů, takže nemusíte psát kód. Případně můžete použít kód a implementovat modely s využitím vlastního kódu.
DataRobot přichází s notebooky pro psaní a úpravu kódu. Alternativně můžete používat API pro vývoj modelů v IDE dle vlastního výběru. Pomocí grafického rozhraní můžete sledovat experimenty vašich modelů.
Spusťte AI
Run AI se snaží vyřešit problém nedostatečného využití infrastruktury AI, zejména GPU. Řešení tohoto problému spočívá v zajištění viditelnosti celkové infrastruktury a optimalizaci jejího využití během trénování.
Za tímto účelem Run AI vstupuje mezi váš software MLOps a hardwarové zdroje firmy. V této vrstvě jsou všechny tréninkové úlohy spouštěny pomocí Run AI, která následně plánuje spuštění jednotlivých úloh.
Neexistují omezení ohledně toho, zda musí být hardware založen na cloudu (AWS a Google Cloud), místním nebo hybridním řešení. Platforma poskytuje týmům Machine Learning abstrakční vrstvu díky tomu, že funguje jako virtualizační platforma GPU. Úlohy můžete spouštět z Jupyter Notebooku, bash terminálu nebo vzdáleného PyCharmu.
H2O.ai
H2O je open-source platforma pro distribuované strojové učení. Umožňuje týmům spolupracovat a vytvářet centrální úložiště modelů, kde mohou vědci experimentovat a porovnávat různé modely.
Jako platforma MLOps nabízí H20 řadu klíčových funkcí. Především, H2O zjednodušuje nasazení modelu na server jako koncový bod REST. Poskytuje různá témata nasazení, jako je A/B testování, modely Champion-Challenger a jednoduché nasazení s jedním modelem.
Během trénování platforma ukládá a spravuje data, artefakty, experimenty, modely a nasazení. Tím je zajištěna reprodukovatelnost modelů. Platforma také umožňuje správu oprávnění na úrovni skupin a uživatelů pro kontrolu nad modely a daty. Během provozu poskytuje H2O monitorování v reálném čase pro sledování driftu modelu a dalších provozních metrik.
Přechod papírového prostoru
Gradient pomáhá vývojářům ve všech fázích vývojového cyklu Machine Learning. Poskytuje notebooky s open-source Jupyter pro vývoj modelů a trénování v cloudu s využitím výkonných GPU. To umožňuje rychlé prozkoumání a vytvoření prototypů modelů.
Zaváděcí kanály lze automatizovat vytvořením pracovních postupů, které jsou definovány popisem úkolů v YAML. Díky pracovním postupům je vytváření, nasazování a poskytování modelů snadno replikovatelné, a tím i škálovatelné.
Celkově Gradient poskytuje kontejnery, výpočetní zdroje, data, modely, metriky, protokoly a tajné informace, které vám pomohou spravovat různé fáze procesu vývoje modelů strojového učení. Vaše procesy běží na klastrech Gradient, které jsou buď na Paperspace Cloud, AWS, GCP, Azure nebo na jiných serverech. S Gradientem můžete pracovat pomocí CLI nebo programově pomocí SDK.
Závěrečná slova
MLOps je výkonný a všestranný přístup k vytváření, nasazování a správě modelů strojového učení ve velkém měřítku. Díky své snadné použitelnosti, škálovatelnosti a bezpečnosti je MLOps vhodnou volbou pro organizace všech velikostí.
V tomto článku jsme se věnovali MLOps, zdůvodnili jsme jeho důležitost, probrali jsme jeho základní principy a představili jsme několik populárních platforem MLOps.
Dále si můžete přečíst naše srovnání Databricks vs. Snowflake.