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ů strojového učení nebo kanálů nebo nalezených modelů z našeho katalogu modelů, které vyhovují vašim potřebám, je potřeba je nasadit do produkčního prostředí, aby je mohli ostatní používat 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ů.
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 jedno nebo několik nasazení (s výjimkou bezserverových koncových bodů rozhraní API ). Nasazení můžou hostovat nezávislé prostředky a využívat různé prostředky na základě potřeb prostředků. Koncové body mají navíc mechanismus směrování, který může směrovat požadavky na konkrétní nasazení v koncovém bodu.
Některé typy koncových bodů ve službě Azure Machine Učení spotřebovávají vyhrazené prostředky v nasazeních. Aby se tyto koncové body mohly spouštět, musíte mít ve svém předplatném kvótu výpočetních prostředků. Některé modely ale podporují bezserverové nasazení , které místo toho spotřebovávají žádnou kvótu z vašeho předplatného, a to na základě využití.
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.
Představme si, ž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: bezserverové rozhraní API, online a batch
Azure Machine Učení umožňuje implementovat koncové body bezserverového rozhraní API, online koncové body a dávkové koncové body. Koncové body rozhraní API bez serveru a 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. Bezserverové koncové body rozhraní API nevyužívají kvótu z vašeho předplatného; místo toho se fakturují pomocí fakturace s průběžnými platbami.
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žívat bezserverové rozhraní API, online a dávkové koncové body
Koncové body bezserverového rozhraní API:
Pomocí koncových bodů bezserverového rozhraní API můžete využívat velké základní modely pro odvozování odvozování v reálném čase nebo k jeho vyladění. Ne všechny modely jsou k dispozici pro nasazení do koncových bodů bezserverového rozhraní API. Tento režim nasazení doporučujeme použít v těchto případech:
- Váš model je základní model nebo jemně vyladěná verze je k dispozici pro nasazení bezserverového rozhraní API.
- Můžete využít výhod nasazení bez kvóty.
- Ke spuštění modelu nemusíte přizpůsobovat zásobník odvozování, který se používá ke spuštění modelu.
Online koncové body:
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:
- Váš model je základní nebo jemně vyladěná verze, ale nepodporuje se v koncových bodech bezserverového rozhraní API.
- 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ů.
Dávkové koncové body:
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í bezserverového rozhraní API, online a dávkových koncových bodů
Všechny bezserverové rozhraní API, online a dávkové koncové body jsou založené na myšlence koncových bodů, které vám pomůžou snadno přejít z jednoho na druhý. Online a dávkové koncové body také představují možnost správy více nasazení pro stejný koncový bod. Následující část vysvětluje různé funkce jednotlivých možností nasazení:
Koncové body
Následující tabulka obsahuje souhrn různých funkcí dostupných pro bezserverové rozhraní API, online a dávkové koncové body.
Funkce | Koncové body bezserverového rozhraní API | Online koncové body | Koncové body služby Batch |
---|---|---|---|
Stabilní adresa URL pro vyvolání | Ano | Ano | Yes |
Podpora více nasazení | No | Ano | Yes |
Směrování nasazení | Nic | Rozdělení provozu | Přepnout na výchozí |
Zrcadlový provoz pro bezpečné zavedení | No | Ano | No |
Podpora Swaggeru | Ano | Ano | No |
Ověřování | Klíč | Klíč a Id Microsoft Entra (Preview) | Microsoft Entra ID |
Podpora privátní sítě (starší verze) | No | Ano | Yes |
Izolace spravované sítě | Ano | Yes | Ano (viz požadovaná další konfigurace) |
Klíče spravované zákazníkem | Není k dispozici | Ano | Yes |
Základ nákladů | Za koncový bod za minutu1 | Nic | Nic |
1Za koncové body bezserverového rozhraní API za minutu se účtuje malý zlomek. V části Nasazení najdete poplatky související se spotřebou, které se účtují podle tokenu.
Nasazení
Následující tabulka obsahuje souhrn různých funkcí dostupných pro bezserverové rozhraní API, online a dávkové koncové body na úrovni nasazení. Tyto koncepty platí pro každé nasazení v rámci koncového bodu (pro online a dávkové koncové body) a platí pro koncové body bez serveru (kde je koncept nasazení integrovaný do koncového bodu).
Funkce | Koncové body bezserverového rozhraní API | Online koncové body | Koncové body služby Batch |
---|---|---|---|
Typy nasazení | Modely | Modely | Modely a součásti kanálu |
Nasazení modelu MLflow | Ne, pouze konkrétní modely v katalogu | Ano | Yes |
Nasazení vlastního modelu | Ne, pouze konkrétní modely v katalogu | Ano, s bodovacím skriptem | Ano, s bodovacím skriptem |
Nasazení balíčku modelu 1 | Integrovaný | Ano (Preview) | No |
Odvozovat server 2 | Rozhraní API pro odvozování modelů Azure AI | – Azure Machine Učení Serveru odvozování -Triton – Vlastní (pomocí FUNKCE BYOC) |
Odvození dávky |
Spotřebovaný výpočetní prostředek | Žádné (bez serveru) | Instance nebo podrobné prostředky | Instance clusteru |
Typ výpočetních prostředků | Žádné (bez serveru) | 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 | NA | No | Ano |
Škálování výpočetních prostředků na nulu | Integrovaný | No | Ano |
Automatické škálování výpočetních prostředků3 | Integrovaný | Ano, na základě zatížení prostředků | Ano, na základě počtu úloh |
Správa nadměrné kapacity | Omezování | Omezování | Služby message queuing |
Základnákladů 4 | Na tokeny | 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í | No | Ano | 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 nejsou spojené žádné náklady spojené s samotným nasazením. Všimněte si, že ani úlohy ve frontě 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.