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.

A diagram showing the concept of an endpoint.

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.

A diagram showing the concept of a deployment.

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.

A diagram showing the concept of an endpoint with multiple deployments.

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