Koncové body pro odvozování v produkčním prostředí
PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)
Po trénování modelů nebo kanálů strojového učení je potřeba je nasadit do produkčního prostředí, aby je ostatní mohli použít k odvozování. Odvození je proces použití nových vstupních dat na model strojového učení nebo kanál pro generování výstupů. I když se tyto výstupy obvykle označují jako "předpovědi", lze použít k vygenerování výstupů pro jiné úlohy strojového učení, jako je klasifikace a clustering. Ve službě Azure Machine Učení provádíte odvozování pomocí koncových bodů a nasazení. Koncové body a nasazení umožňují oddělit rozhraní produkční úlohy od implementace, která ji obsluhuje.
Intuice
Předpokládejme, že pracujete na aplikaci, která předpovídá typ a barvu auta vzhledem k jeho fotce. Pro tuto aplikaci uživatel s určitými přihlašovacími údaji vytvoří požadavek HTTP na adresu URL a v rámci požadavku poskytne obrázek auta. Ve vrácených hodnotách získá uživatel odpověď, která obsahuje typ a barvu auta jako řetězcové hodnoty. V tomto scénáři adresa URL slouží jako koncový bod.
Kromě toho řekněme, že odborník na data, Alice, pracuje na implementaci aplikace. Alice ví hodně o TensorFlow a rozhodne se implementovat model pomocí sekvenčního klasifikátoru Keras s architekturou RestNet z TensorFlow Hubu. Po otestování modelu je Alice spokojená s výsledky a rozhodne se použít model k vyřešení problému predikce auta. Model je velký a ke spuštění vyžaduje 8 GB paměti se 4 jádry. V tomto scénáři model Alice a prostředky, jako je kód a výpočetní prostředky, které jsou potřeba ke spuštění modelu, tvoří nasazení v rámci koncového bodu.
Nakonec si představme, že po několika měsících organizace zjistí, že aplikace na obrázcích s méně než ideálními podmínkami osvětlení funguje špatně. Bob, další datový vědec, ví hodně o technikách rozšiřování dat, které pomáhají modelu vytvářet robustnost na daném faktoru. Bob ale cítí pohodlnější použití Torch k implementaci modelu a trénování nového modelu pomocí Torch. Bob chce tento model vyzkoušet v produkčním prostředí postupně, dokud nebude organizace připravená vyřadit starý model. Nový model také ukazuje lepší výkon při nasazení do GPU, takže nasazení musí obsahovat GPU. V tomto scénáři bobův model a prostředky, jako je kód a výpočetní prostředky, které jsou potřeba ke spuštění modelu, tvoří další nasazení ve stejném koncovém bodu.
Koncové body a nasazení
Koncový bod je stabilní a odolná adresa URL, která se dá použít k vyžádání nebo vyvolání modelu. Do koncového bodu zadáte požadované vstupy a vrátíte výstupy. Koncový bod poskytuje:
- stabilní a odolná adresa URL (například endpoint-name.region.inference.ml.azure.com),
- ověřovací mechanismus a
- autorizační mechanismus.
Nasazení je sada prostředků a výpočetních prostředků potřebných k hostování modelu nebo komponenty, která provádí skutečné odvozování. Jeden koncový bod může obsahovat více nasazení. Tato nasazení mohou hostovat nezávislé prostředky a využívat různé prostředky na základě potřeb prostředků. Koncové body mají mechanismus směrování, který může směrovat požadavky na konkrétní nasazení v koncovém bodu.
Aby každý koncový bod fungoval správně, musí mít aspoň jedno nasazení. Koncové body a nasazení jsou nezávislé prostředky Azure Resource Manageru, které se zobrazují na webu Azure Portal.
Online a dávkové koncové body
Azure Machine Učení umožňuje implementovat online koncové body a dávkové koncové body. Online koncové body jsou navržené pro odvozování v reálném čase – při vyvolání koncového bodu se výsledky vrátí v odpovědi koncového bodu. Koncové body batch jsou na druhou stranu navržené pro dlouhotrvající dávkové odvozování. Při každém vyvolání dávkového koncového bodu vygenerujete dávkovou úlohu, která provede skutečnou práci.
Kdy použít online koncový bod vs. batch pro váš případ použití
Pomocí online koncových bodů zprovozníte modely pro odvozování v reálném čase v synchronních požadavcích s nízkou latencí. Doporučujeme je používat v následujících případech:
- Máte požadavky na nízkou latenci.
- Váš model může na žádost odpovědět v relativně krátkém časovém intervalu.
- Vstupy modelu se vejdou do datové části požadavku HTTP.
- Potřebujete vertikálně navýšit kapacitu z hlediska počtu požadavků.
Používejte dávkové koncové body k zprovoznění modelů nebo kanálů pro dlouhotrvající asynchronní odvozování. Doporučujeme je používat v následujících případech:
- Máte nákladné modely nebo kanály, které vyžadují delší dobu, než se spustí.
- Chcete zprovoznit kanály strojového učení a znovu použít komponenty.
- Musíte provést odvozování nad velkým množstvím dat distribuovaných ve více souborech.
- Nemáte požadavky na nízkou latenci.
- Vstupy modelu se ukládají do účtu úložiště nebo do datového prostředku Azure Machine Učení.
- Můžete využít paralelizaci.
Porovnání online a dávkových koncových bodů
Online i dávkové koncové body jsou založené na myšlence koncových bodů a nasazení, které vám pomůžou snadno přejít z jednoho na druhý. Při přechodu mezi sebou ale existují určité rozdíly, které je důležité vzít v úvahu. Některé z těchto rozdílů jsou způsobeny povahou práce:
Koncové body
Následující tabulka obsahuje souhrn různých funkcí dostupných pro online a dávkové koncové body.
Funkce | Online koncové body | Koncové body služby Batch |
---|---|---|
Stabilní adresa URL pro vyvolání | Ano | Yes |
Podpora více nasazení | Ano | Yes |
Směrování nasazení | Rozdělení provozu | Přepnout na výchozí |
Zrcadlový provoz pro bezpečné zavedení | Yes | No |
Podpora Swaggeru | Yes | No |
Ověřování | Klíč a token | Microsoft Entra ID |
Podpora privátní sítě | Ano | Yes |
Izolace spravované sítě | Ano | Ano (viz požadovaná další konfigurace) |
Klíče spravované zákazníkem | Ano | Yes |
Základ nákladů | Nic | Nic |
Nasazení
Následující tabulka ukazuje souhrn různých funkcí dostupných pro online a dávkové koncové body na úrovni nasazení. Tyto koncepty platí pro každé nasazení v rámci koncového bodu.
Funkce | Online koncové body | Koncové body služby Batch |
---|---|---|
Typy nasazení | Modely | Modely a součásti kanálu |
Nasazení modelu MLflow | Ano | Yes |
Nasazení vlastního modelu | Ano, s bodovacím skriptem | Ano, s bodovacím skriptem |
Nasazení balíčku modelu 1 | Ano (Preview) | No |
Odvozovat server 2 | – Azure Machine Učení Serveru odvozování -Triton – Vlastní (pomocí FUNKCE BYOC) |
Odvození dávky |
Spotřebovaný výpočetní prostředek | Instance nebo podrobné prostředky | Instance clusteru |
Typ výpočetních prostředků | Spravované výpočetní prostředky a Kubernetes | Spravované výpočetní prostředky a Kubernetes |
Výpočetní prostředky s nízkou prioritou | No | Ano |
Škálování výpočetních prostředků na nulu | No | Ano |
Automatické škálování výpočetních prostředků3 | Ano, na základě zatížení prostředků | Ano, na základě počtu úloh |
Správa nadměrné kapacity | Omezování | Služby message queuing |
Základnákladů 4 | Na nasazení: spuštěné výpočetní instance | Na úlohu: výpočetní instance spotřebovaná v úloze (omezena na maximální počet instancí clusteru). |
Místní testování nasazení | Yes | No |
1 Nasazení modelů MLflow do koncových bodů bez odchozího připojení k internetu nebo privátních sítí vyžaduje nejprve zabalení modelu .
2Server odvozování odkazuje na obslužnou technologii, která přijímá požadavky, zpracovává je a vytváří odpovědi. Server odvozování také určuje formát vstupu a očekávaných výstupů.
3Automatické škálování je schopnost dynamicky vertikálně navýšit nebo snížit kapacitu přidělených prostředků nasazení na základě jejího zatížení. Online a dávková nasazení používají různé strategie automatického škálování. Zatímco online nasazení vertikálně navyšují a snižuje kapacitu na základě využití prostředků (například procesoru, paměti, požadavků atd.), kapacitu koncových bodů služby Batch vertikálně navyšte nebo snižte na základě počtu vytvořených úloh.
4 Online i dávkové nasazení se účtují podle spotřebovaných prostředků. V online nasazeních se prostředky zřizují v době nasazení. V dávkovém nasazení se ale v době nasazení nevyužívají žádné prostředky, ale při spuštění úlohy. Proto neexistují žádné náklady spojené s samotným nasazením. Všimněte si, že úlohy ve frontě ani nevyužívají prostředky.
Vývojářská rozhraní
Koncové body jsou navržené tak, aby organizacím pomohly zprovoznit úlohy na úrovni produkčního prostředí ve službě Azure Machine Učení. Koncové body jsou robustní a škálovatelné prostředky a poskytují nejlepší možnosti pro implementaci pracovních postupů MLOps.
Pomocí několika vývojářských nástrojů můžete vytvářet a spravovat dávkové a online koncové body:
- Azure CLI a Python SDK
- Azure Resource Manager / REST API
- webový portál studio Azure Machine Learning
- Azure Portal (IT/Správa)
- Podpora kanálů CI/CD MLOps pomocí rozhraní Azure CLI a rozhraní REST/ARM
Další kroky
- Nasazení online koncových bodů pomocí Azure CLI a sady Python SDK
- Nasazení modelů pomocí dávkových koncových bodů
- Nasazení kanálů pomocí dávkových koncových bodů
- Jak používat online koncové body se sadou Studio
- Monitorování spravovaných online koncových bodů
- Správa a navýšení kvót pro prostředky s využitím služby Azure Machine Learning.