Nasazení modelů strojového učení v produkčních prostředích

Tento článek popisuje osvědčené postupy pro nasazování modelů strojového učení v produkčních prostředích pomocí služby Azure Machine Učení. Nasazení modelů strojového učení v produkčním prostředí je důležité pro organizace, které používají AI k vylepšení svých operací. Může to být složitý proces, ale tento článek vám pomůže porozumět krokům.

Aspekty architektury

  • Zvolte správnou metodu nasazení. Každá metoda nasazení má výhody a nevýhody. Je důležité zvolit ten, který nejlépe vyhovuje potřebám vaší organizace. Existují dvě hlavní metody nasazení:

    • Odvozování v reálném čase (online) zpracovává vstupní data při jejich přijetí, často s požadavkem na nízkou latenci. Nízká latence je důležitá pro aplikace, které vyžadují okamžité reakce, jako je detekce podvodů, rozpoznávání řeči nebo systémy doporučení. Odvození v reálném čase je složitější a dražší než dávkové odvození, protože vyžaduje rychlejší a spolehlivější infrastrukturu. Základní výpočetní prostředky pro odvozování v reálném čase obvykle běží nepřetržitě na žádosti o služby rychleji.

    • Dávkové (offline) odvozování zpracovává velkou dávku vstupních dat najednou místo zpracování jednotlivých vstupních datových bodů v reálném čase. Dávkové odvozování je vhodné pro scénáře velkých objemů dat, které potřebují efektivní zpracování, ale doba odezvy není kritická. Pomocí dávkového odvozování můžete například zpracovat velkou datovou sadu obrázků a model strojového učení vytváří předpovědi na všech obrázcích najednou. Odvození dávky je levnější a efektivnější než odvození v reálném čase. Základní výpočetní prostředky pro dávkové odvozování se obvykle spouští jenom během dávkové úlohy.

    Machine Učení používá koncové body k nasazení modelů v reálném čase a dávkových scénářích. Koncové body poskytují jednotné rozhraní pro vyvolání a správu nasazení modelu napříč typy výpočetních prostředků. Spravované online koncové body slouží k odvozování, škálování, zabezpečení a monitorování modelů strojového učení.

    Další informace najdete v následující části tohoto článku o metodách nasazení.

  • Zajistěte konzistenci. Model je důležité nasazovat konzistentně napříč prostředími, jako je vývoj, příprava a produkční prostředí. K zajištění konzistence a zapouzdření prostředí použijte kontejnerizaci nebo virtualizační technologie, jako jsou počítače Učení prostředí.

  • Monitorujte výkon. Po nasazení modelu do produkčního prostředí byste měli sledovat metriky, jako je přesnost, latence a propustnost, a nastavit upozornění, která vás upozorní, když výkon klesne pod přijatelné úrovně. Pomocí služby Application Přehledy a integrovaných možností monitorování spravovaných koncových bodů můžete zobrazit metriky a vytvářet výstrahy.

  • Implementujte bezpečnostní opatření. Chraňte svá data a systémy. Můžete nastavit ověřování a řízení přístupu, šifrovat přenášená data a neaktivní uložená data, používat zabezpečení sítě a monitorovat podezřelé aktivity.

  • Vytvořte plán pro aktualizace. Modely strojového učení potřebují aktualizace, jakmile budou k dispozici nová data a nové algoritmy. Před nasazením do produkčního prostředí je důležité vytvořit proces pro testování a ověření aktualizovaného modelu. Modré/zelené nasazení je běžná strategie, která aktualizuje modely strojového učení v produkčním prostředí. S modrým nebo zeleným nasazením můžete model aktualizovat do nového prostředí, otestovat ho a po ověření přepnout na nový model. Modré nebo zelené nasazení zajišťuje, že potenciální problémy s aktualizovaným modelem neovlivní vaše zákazníky. Další informace naleznete v tématu Nativní modré/zelené nasazení.

Metody nasazení

Zvažte následující otázky k vyhodnocení modelu, porovnání dvou metod nasazení a výběru metody, která vyhovuje vašemu modelu:

  • Jak často se mají generovat předpovědi?
  • Jak brzy budete potřebovat výsledky?
  • Ukládají se predikce nebo se používají okamžitě?
  • Měly by se předpovědi generovat jednotlivě, v malých dávkách nebo ve velkých dávkách?
  • Očekává se latence z modelu?
  • Kolik výpočetního výkonu model potřebuje spustit?
  • Existují provozní důsledky a náklady na údržbu modelu?
  • Jak se aktivuje předpověď? Je založená na událostech nebo je naplánovaná?

Podívejte se na následující rozhodovací strom a určete, který model nasazení nejlépe vyhovuje vašemu případu použití:

A diagram of the real-time inference and batch inference decision tree.

Dávkové odvozování

Dávkové odvozování je jednoduchý proces, který umožňuje spouštění modelů v časových intervalech nebo na základě aktivačních událostí. Díky dávkovému odvození můžou obchodní aplikace ukládat předpovědi.

Zvažte následující osvědčené postupy pro odvozování dávek:

  • Spouštění dávkových operací pomocí rozhraní API Pomocí dávkových koncových bodů vytvořte trvalý koncový bod HTTPS, který aktivuje úlohu dávkového vyhodnocování pro plánované datové kanály nebo datové kanály založené na událostech. Rozhraní API se může integrovat s libovolnou platformou orchestrace dat, která podporuje vyvolání rozhraní REST API. Další informace najdete v bodech integrace služby Batch v této části a nasazení modelů pro bodování v dávkových koncových bodech.

  • Možnosti výpočetních prostředků. Procesy odvozování služby Batch obvykle neběží nepřetržitě, takže je vhodné automaticky spouštět, zastavovat a škálovat opakovaně použitelné clustery, které můžou zpracovávat celou řadu úloh. Různé modely často vyžadují různá prostředí. Vaše řešení musí nasadit konkrétní prostředí a po dokončení odvození ho odebrat. Automatizace zpřístupňuje výpočetní prostředky pro další model. Pokud chcete snížit náklady, použijte pro výpočetní uzly virtuální počítače s nízkou prioritou.

    Důležité

    Velikost výpočetních uzlů je důležitá. Pokud jsou uzly příliš malé, úloha odvození dávky trvá déle. Pokud jsou uzly příliš velké, je úloha dražší. Otestujte a monitorujte výpočetní uzly a určete správnou velikost modelu.

  • Zvažte potřeby škálovatelnosti. Pro zvýšení výkonu Učení počítač podporuje funkce, které umožňují škálovatelné zpracování. Počet výpočetních uzlů a maximální parametry souběžnosti jsou definovány během nasazení dávkového koncového bodu v Učení počítače. Parametry pro každou úlohu můžete přepsat, což zákazníkům poskytuje flexibilitu modulu runtime a předefinovaný paralelismus. Tyto funkce fungují s tabulkovou a souborovou odvozováním.

  • Problémy s odvozováním služby Batch Odvozování služby Batch je jednodušší způsob použití a nasazení modelu v produkčním prostředí, ale představuje vlastní sadu výzev.

    • V závislosti na frekvenci spuštění odvozování může být předpověď vygenerovaná v době, kdy se k ní přistupuje, irelevantní.

    • Nasazení do mnoha oblastí a návrh řešení pro vysokou dostupnost nejsou zásadními obavami ve scénáři dávkového odvozování, protože model není nasazený v regionálním prostředí. Úložiště dat ale může být potřeba nasadit se strategií vysoké dostupnosti v mnoha umístěních. Nasazení by mělo dodržovat návrh a strategii vysoké dostupnosti aplikace.

    • Data generovaná během dávkového odvozování můžou částečně selhat. Pokud například naplánovaný kanál aktivuje úlohu dávkového odvozování a kanál selže, můžou být data vygenerovaná úlohou odvozování dávky neúplná. Částečné restartování jsou běžným problémem s odvozováním dávek. Jedním z řešení je použití pracovní oblasti pro data a přesunutí dat do konečného cíle pouze po úspěšném dokončení úlohy odvozování dávky. Dalším řešením je udržovat záznam nebo transakci každého zpracovávaného souboru a porovnat tento záznam se vstupním seznamem souborů, aby nedocházelo k duplikaci. Tato metoda zahrnuje logiku do bodovacího skriptu. Toto řešení je složitější, ale logiku selhání můžete přizpůsobit, pokud úloha odvození dávky selže.

  • Požadavky na zabezpečení. Ověřování a autorizace slouží k řízení přístupu ke koncovému bodu dávky pro lepší zabezpečení.

    • Dávkový koncový bod s ochranou příchozího přenosu dat přijímá pouze žádosti o bodování od hostitelů ve virtuální síti. Nepřijímá žádosti o bodování z veřejného internetu. Dávkový koncový bod vytvořený v pracovním prostoru s podporou privátního propojení má ochranu příchozího přenosu dat. Další informace najdete v tématu Izolace sítě v dávkových koncových bodech.
    • K ověřování použijte tokeny Microsoft Entra.
    • Pro koncový bod použijte šifrování SSL, které je ve výchozím nastavení povolené pro vyvolání koncového bodu Učení počítače.
    • Koncové body služby Batch zajišťují, že k přečtení podkladových dat můžou vyvolat dávkové nasazení jenom autorizovaní uživatelé, ale jednotlivci můžou ke čtení podkladových dat použít jiné přihlašovací údaje. Referenční informace o úložištích dat a přihlašovacích údajích pro přístup k nim najdete v tabulce přístupu k datům.
  • Dávková integrace. Strojové Učení dávkové koncové body používají otevřené rozhraní API. Dávkové odvozování se může integrovat s dalšími službami Azure, jako jsou Azure Data Factory, Azure Databricks a Azure Synapse Analytics, které tvoří součást většího datového kanálu. Můžete například použít:

    • Data Factory pro orchestraci procesu odvozování dávek
    • Azure Databricks k přípravě dat na dávkové odvozování
    • Počítač Učení ke spuštění procesu dávkového odvození.
    • Azure Synapse Analytics k uložení následných předpovědí

    Koncové body služby Batch podporují ID Microsoft Entra pro autorizaci. Požadavek na rozhraní API vyžaduje správné ověření. Služby Azure, jako je například Data Factory, podporují použití instančního objektu nebo spravované identity k ověření v dávkových koncových bodech. Další informace najdete v tématu Spouštění dávkových koncových bodů ze služby Data Factory.

    Pokud chcete zvolit nejlepší metodu dávkového zpracování vstupu a výstupu, je důležité pochopit, jak se data procházejí fázemi datových kanálů. K datovým službám Azure můžete přistupovat přímo prostřednictvím skriptu bodování dávkového koncového bodu pomocí sad SDK, ale použití počítačů Učení registrovaných úložišť dat je jednodušší, bezpečnější a auditovatelné. Pro zdroje dat třetích stran použijte modul pro zpracování dat, jako je Data Factory, Azure Databricks nebo Azure Synapse Analytics, k přípravě dat na dávkové odvozování a použití následného zpracování odvozování.

  • MLflow. Během vývoje modelů použijte opensourcovou architekturu MLflow. Učení počítače podporuje bez kódu nasazení modelů, které vytváříte a protokolujete pomocí MLflow. Když nasadíte model MLflow do dávkového koncového bodu, nemusíte indikovat bodovací skript ani prostředí.

Odvozování v reálném čase

Odvozování v reálném čase je metoda, která umožňuje kdykoli aktivovat odvozování modelu a poskytuje okamžitou odpověď. Pomocí této metody můžete analyzovat streamovaná data nebo interaktivní data aplikací.

Zvažte následující osvědčené postupy pro odvozování v reálném čase:

  • Možnosti výpočetních prostředků. Nejlepším způsobem implementace odvozování v reálném čase je nasazení modelu, který je v online koncovém bodu do spravovaného online koncového bodu nebo online koncového bodu Kubernetes. Spravované online koncové body nasazují modely strojového učení okamžitě pomocí procesoru nebo počítačů GPU v Azure. Tato metoda je škálovatelná a plně spravovaná. Online koncové body Kubernetes nasazují modely a obsluhují online koncové body na plně nakonfigurovaný a spravovaný cluster Kubernetes. Další informace najdete v tématu Spravované online koncové body vs. Online koncové body Kubernetes.

  • Nasazení ve více oblastech a vysoká dostupnost Regionální nasazení a architektury s vysokou dostupností jsou příklady scénářů odvozování v reálném čase, protože latence a výkon modelu jsou kritické. Pokud chcete snížit latenci v nasazeních s více oblastmi, vyhledejte model co nejblíže bodu spotřeby. Pro model a podpůrnou infrastrukturu dodržujte zásady a strategii zotavení po havárii podniku s vysokou dostupností a zotavením po havárii.

  • Výzvy k odvození v reálném čase

    • Odvozování v reálném čase je složitější kvůli latenci a požadavkům na výkon. Jednoduchý systém v reálném čase přijímá vstup prostřednictvím požadavku HTTP a vrací předpověď. Složitý systém ale může potřebovat reagovat v 100 milisekundách nebo méně. Během této doby načte data, provede přípravu funkcí, provede odvozování, ověří a uloží výsledky modelu, spustí obchodní logiku a vrátí výsledky do systému nebo aplikace.
    • Přesměrování přípravy funkcí do úložiště dat s nízkou latencí, ukládání do mezipaměti nebo vyhrazeného úložiště funkcí Úložiště funkcí je centralizované úložiště, které datovým vědcům umožňuje vyhledávat a sdílet funkce. Úložiště funkcí zajišťuje, aby se pro trénování a odvozování modelů používal stejný kód, který se používá k výpočtu hodnot funkcí.
  • Požadavky na zabezpečení. Pokud chcete zvýšit zabezpečení, použijte ověřování a autorizaci k řízení přístupu k online koncovému bodu.

    • Online koncový bod s ochranou příchozího přenosu dat přijímá pouze žádosti o bodování od hostitelů ve virtuální síti. Nepřijímá žádosti o bodování z veřejného internetu. Online koncový bod vytvořený v pracovním prostoru s podporou privátního propojení má ochranu příchozího přenosu dat. Další informace najdete v tématu Použití izolace sítě se spravovanými online koncovými body.
    • K ověřování řídicí roviny použijte tokeny Microsoft Entra. Pro operace roviny dat se podporují přístupy založené na klíčích a tokenech. Preferuje se přístup založený na tokenech, protože platnost tokenů vyprší. Pomocí řízení přístupu na základě role v Azure (RBAC) omezte přístup a načtěte klíč nebo token pro online koncový bod.
    • Pro koncový bod použijte šifrování SSL, které je ve výchozím nastavení povolené pro vyvolání koncového bodu Učení počítače.
  • Integrace v reálném čase Integrujte odvozování v reálném čase s jinými službami Azure pomocí sad SDK pro různé jazyky a vyvoláním koncového bodu pomocí rozhraní REST API. Online koncový bod můžete vyvolat jako součást kódu aplikace.

  • MLflow. Během vývoje modelů použijte opensourcovou architekturu MLflow. Učení počítače podporuje bez kódu nasazení modelů, které vytváříte a protokolujete pomocí MLflow. Když nasadíte model MLflow do online koncového bodu, nemusíte označit bodovací skript ani prostředí.

  • Sejf zavedení. Nasaďte postupné aktualizace modelů strojového učení, abyste zajistili, že model funguje podle očekávání. Pomocí strategie strojového Učení bezpečného zavedení nasaďte model do koncového bodu, proveďte testování modelu a postupně zvyšte provoz na nový model. Využijte zrcadlený provoz, abyste zrcadlili procento živého provozu do nového modelu pro dodatečné ověření. Zrcadlení provozu, označované také jako stínování, nemění výsledky vrácené klientům. Všechny požadavky stále proudí do původního modelu. Další informace najdete v tématu Sejf zavedení online koncových bodů.

Další aspekty

Mějte tyto aspekty na paměti při nasazování modelů strojového učení v produkčních prostředích.

ONNX

K optimalizaci odvozování modelů strojového učení použijte Open Neural Network Exchange (ONNX). Při optimalizacimodelůchm modelům může být náročné plně využívat hardwarové funkce ( například cloud/ hraniční zařízení nebo PROCESOR/GPU). Nový model můžete vytrénovat nebo převést existující model z jiného formátu na ONNX.

Scénář M:N

Jednotný model nemusí zachytit složitou povahu reálných problémů. Například supermarkety mají demografické údaje, značky, skladové položky a další funkce, které se mezi oblastmi liší, což představuje výzvu k vytvoření jednoho modelu předpovědi prodeje. Podobně mohou regionální varianty představovat výzvu pro model prediktivní údržby inteligentního měřiče. Pomocí mnoha modelů můžete zaznamenávat regionální data nebo vztahy na úrovni úložiště, abyste zajistili vyšší přesnost než jeden model. Přístup m:N předpokládá, že pro tuto úroveň členitosti je k dispozici dostatek dat.

Scénář S mnoha modely má tři fáze: zdroj dat, datové vědy a mnoho modelů.

A diagram that shows the stages of the many-models scenario.

  • Zdroj dat. Ve fázi zdroje dat je důležité data segmentovat pouze do několika prvků. Například nefaktorujte ID produktu nebo čárový kód do hlavního oddílu, protože vytváří příliš mnoho segmentů a může inhibovat smysluplné modely. Značka, skladová položka nebo lokalita jsou vhodnější prvky. Je důležité zjednodušit data odebráním anomálií, které by mohly distribuci dat zkosit.

  • Datové vědy. Ve fázi datových věd se několik experimentů spouští paralelně s každým datovým segmentem. Experimentování mnoha modelů je iterativní proces, který vyhodnocuje modely, aby bylo možné určit ten nejlepší.

  • Mnoho modelů. Nejlepší modely pro každý segment nebo kategorii jsou registrovány v registru modelů. Přiřaďte modelům smysluplné názvy, aby byly zjistitelnější pro odvozování. V případě potřeby seskupte model do konkrétních kategorií pomocí značek.

Dávkové odvozování pro mnoho modelů

U mnoha modelů jsou během dávkového odvozování předpovědi v pravidelném plánu a můžou zpracovávat objemová data, která se spouští současně. Na rozdíl od scénáře s jedním modelem dochází k odvozování mnoha modelů současně.

Mnoho modelů pro dávkové odvozování používá více nasazení na jednom spravovaném koncovém bodu. Dávkové odvozování pro konkrétní modely vyvolá název nasazení během volání REST nebo sady SDK. Další informace najdete v tématu Nasazení více modelů do jednoho nasazení.

Odvozování v reálném čase pro mnoho modelů

Do jednoho spravovaného online koncového bodu můžete nasadit více modelů, které můžete vyvolat prostřednictvím rozhraní REST API nebo sady SDK. Při vytváření nasazení zaregistrujte více modelů jako jeden zaregistrovaný model v Azure. Do stejného adresáře zahrňte více modelů a předejte ho jako cestu k jednomu modelu. Modely se načtou do slovníku, který je na jejich jménech klíčovaný. Po přijetí požadavku REST se požadovaný model načte z datové části JSON a příslušná část modelu vyhodnotí datovou část.

Modely načtené v nasazení s více modely pomocí této techniky musí sdílet stejnou verzi Pythonu a nemají konfliktní závislosti. Jejich knihovny se musí importovat současně, i když nemají výhradně stejné závislosti.

Příklad najdete v tématu Vytvoření vícemodelového nasazení pomocí vlastního kontejneru.

Další kroky