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.

Diagram znázorňující koncept koncového bodu

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.

Diagram znázorňující koncept nasazení

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.

Diagram znázorňující koncept koncového bodu s několika nasazeními

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