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í)
Jakmile vytrénujete modely nebo kanály strojového učení nebo najdete modely z katalogu modelů, které vyhovují vašim potřebám, musíte je nasadit do produkčního prostředí, aby je ostatní mohli použít k odvozování. Odvozování je proces použití nových vstupních dat na model strojového učení nebo kanálu 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 Learning 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. Azure Machine Learning umožňuje implementovat bezserverové koncové body rozhraní API, online koncové body a dávkové koncové body. 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í. Koncový bod obsahuje nasazení a pro online a dávkové koncové body může jeden koncový bod obsahovat několik nasazení. Nasazení můžou hostovat nezávislé prostředky a využívat různé prostředky na základě potřeb prostředků. Koncový bod má navíc mechanismus směrování, který může směrovat požadavky na jakékoli z jeho nasazení.
Některé typy koncových bodů ve službě Azure Machine Learning na jedné straně 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 Azure kvótu výpočetních prostředků. Na druhou stranu některé modely podporují bezserverové nasazení, což jim umožňuje využívat žádnou kvótu z vašeho předplatného. U bezserverového nasazení se vám účtuje 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 Learning umožňuje implementovat bezserverové koncové body rozhraní API, online koncové body a dávkové koncové body.
Koncové body bezserverového rozhraní API a online koncové body jsou navržené pro odvozování v reálném čase. Při každém 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 služby Batch jsou navržené pro dlouhotrvající dávkové odvozování. Pokaždé, když vyvoláte koncový bod dávky, 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 vyladění těchto modelů. 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 základního modelu, který 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 základního modelu, 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í v účtu úložiště nebo v datovém assetu služby Azure Machine Learning.
- 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ů, takže můžete snadno přejít z jednoho na druhé. Online a dávkové koncové body jsou také schopné spravovat více nasazení pro stejný koncový bod.
Koncové body
Následující tabulka ukazuje souhrn různých funkcí dostupných pro bezserverové rozhraní API, online a dávkové koncové body na úrovni koncového bodu.
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 |
1Malý zlomek se účtuje za koncové body bezserverového rozhraní API za minutu. 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 2 | Integrovaný | Ano (Preview) | No |
Odvozovat server 3 | Rozhraní API pro odvozování modelů Azure AI | – Server odvozování služby Azure Machine Learning -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ů4 | Integrovaný | Ano, na základě použití prostředků | Ano, na základě počtu úloh |
Správa nadměrné kapacity | Omezování | Omezování | Řazení do fronty |
Základnákladů 5 | Per token | Na nasazení: spuštěné výpočetní instance | Pro ú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 |
2 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 .
3 Server 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ů.
4 Automatické š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.
5 Poplatky za online i dávková nasazení spotřebovanými prostředky. V online nasazeních se prostředky zřizují v době nasazení. V dávkovém nasazení se prostředky nevyužívají v době nasazení, ale v době spuštění úlohy. Proto nejsou spojené žádné náklady na samotné dávkové nasazení. Stejně tak ú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 Learning. Koncové body jsou robustní a škálovatelné prostředky a poskytují nejlepší možnosti pro implementaci pracovních postupů MLOps.
Dávkové a online koncové body můžete vytvářet a spravovat pomocí několika vývojářských nástrojů:
- Azure CLI a Python SDK
- Azure Resource Manager / REST API
- webový portál studio Azure Machine Learning
- Azure Portal (IT/Správce)
- Podpora kanálů CI/CD MLOps pomocí rozhraní Azure CLI a rozhraní REST/ARM