Online végpontok és üzembe helyezések valós idejű következtetéshez

ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

Az Azure Machine Tanulás lehetővé teszi az adatok valós idejű következtetését az online végpontokon üzembe helyezett modellek használatával. A következtetés az új bemeneti adatok gépi tanulási modellre történő alkalmazásának folyamata kimenetek létrehozásához. Bár ezeket a kimeneteket általában "előrejelzéseknek" is nevezik, a következtetés más gépi tanulási feladatok, például besorolás és fürtözés kimeneteinek létrehozására használható.

Online végpontok

Az online végpontok olyan modelleket helyeznek üzembe egy webkiszolgálón, amely a HTTP protokoll alapján képes előrejelzéseket visszaadni. Online végpontok használatával valós idejű következtetési modelleket lehet üzembe helyezni szinkron kis késésű kérelmekben. Javasoljuk, hogy a következő esetekben használja őket:

  • Alacsony késési követelményekkel rendelkezik
  • A modell viszonylag rövid idő alatt válaszolhat a kérésre
  • A modell bemenetei illeszkednek a kérelem HTTP-hasznos adataihoz
  • Fel kell skálázni a kérelmek számát

Végpont definiálásához meg kell adnia a következőket:

  • Végpont neve: Ennek a névnek egyedinek kell lennie az Azure-régióban. Az elnevezési szabályokkal kapcsolatos további információkért tekintse meg a végpontkorlátokat.
  • Hitelesítési mód: Választhat a kulcsalapú hitelesítési mód, az Azure Machine Tanulás a jogkivonatalapú hitelesítési mód vagy a Microsoft Entra tokenalapú hitelesítés (előzetes verzió) közül a végponthoz. A hitelesítéssel kapcsolatos további információkért lásd : Hitelesítés online végponton.

Az Azure Machine Tanulás lehetővé teszi a felügyelt online végpontok használatát a gépi tanulási modellek kulcsrakész üzembe helyezéséhez. Ez az online végpontok használatának ajánlott módja az Azure Machine Tanulás. A felügyelt online végpontok skálázható, teljes mértékben felügyelt módon működnek együtt a nagy teljesítményű processzorral és GPU-val rendelkező Azure-beli gépekkel. Ezek a végpontok gondoskodnak a modellek kiszolgálásáról, skálázásáról, biztonságáról és monitorozásáról is, hogy megszabadítson a mögöttes infrastruktúra beállításának és kezelésének többletterhelésétől. A felügyelt online végpontok definiálásáról további információt a végpont definiálása című témakörben talál.

Miért érdemes felügyelt online végpontokat választani az ACI vagy az AKS(v1) használatával?

A felügyelt online végpontok használata ajánlott módszer az online végpontok Azure Machine-Tanulás való használatára. Az alábbi táblázat a felügyelt online végpontok fő attribútumait emeli ki az Azure Machine Tanulás SDK/CLI v1-megoldásokhoz (ACI és AKS(v1)) képest.

Attribútumok Felügyelt online végpontok (v2) ACI vagy AKS(v1)
Hálózati biztonság/elkülönítés Egyszerű bejövő/kimenő vezérlő gyors váltógombbal A virtuális hálózat nem támogatott, vagy összetett manuális konfigurációt igényel
Felügyelt szolgáltatás – Teljes körűen felügyelt számítási kiépítés/skálázás
- Hálózati konfiguráció az adatkiszivárgás megelőzéséhez
- Gazdagép operációs rendszerének frissítése, a helyszíni frissítések szabályozott bevezetése
– A skálázás az 1. verzióban korlátozott
– A hálózati konfigurációt vagy frissítést a felhasználónak kell felügyelnie
Végpont/üzembe helyezés fogalma A végpont és az üzembe helyezés megkülönböztetése olyan összetett forgatókönyveket tesz lehetővé, mint a modellek biztonságos bevezetése A végpont fogalma nem
Diagnosztika és figyelés – Helyi végpont hibakeresése lehetséges a Docker és a Visual Studio Code használatával
– Speciális metrikák és naplóelemzés diagramokkal/lekérdezésekkel az üzembe helyezések összehasonlítása érdekében
– Költséglebontás üzembe helyezési szintig
Nincs egyszerű helyi hibakeresés
Méretezhetőség Korlátlan, rugalmas és automatikus skálázás - Az ACI nem méretezhető
- Az AKS (v1) csak a fürtön belüli skálázást támogatja, és méretezhetőségi konfigurációt igényel
Alkalmasság vállalati használatra Privát kapcsolat, ügyfél által kezelt kulcsok, Microsoft Entra-azonosító, kvótakezelés, számlázási integráció, SLA Nem támogatott
Speciális gépi tanulási funkciók – Modelladatok gyűjtése
- Modellfigyelés
- Champion-challenger modell, biztonságos bevezetés, forgalomtükrözés
- Felelős AI-bővíthetőség
Nem támogatott

Ha inkább a Kubernetes-t szeretné használni a modellek üzembe helyezéséhez és végpontok kiszolgálásához, és jól kezeli az infrastruktúra követelményeit, használhatja a Kubernetes online végpontjait. Ezek a végpontok lehetővé teszik modellek üzembe helyezését és online végpontok kiszolgálását a teljes mértékben konfigurált és felügyelt Kubernetes-fürtön bárhol, PROCESSZORokkal vagy GPU-kkal.

Miért érdemes felügyelt online végpontokat választani az AKS(v2)-en keresztül?

A felügyelt online végpontok megkönnyítik az üzembe helyezési folyamatot, és az alábbi előnyöket biztosítják a Kubernetes online végpontjaival szemben:

  • Felügyelt infrastruktúra

    • Automatikusan kiépíti a számítást, és üzemelteti a modellt (csak meg kell adnia a virtuális gép típusát és méretezési beállításait)
    • A mögöttes gazdagép operációs rendszer lemezképének automatikus frissítése és javítása
    • Automatikusan végrehajtja a csomópont helyreállítását rendszerhiba esetén
  • Figyelés és naplók

    • A modell rendelkezésre állásának, teljesítményének és SLA-jának monitorozása az Azure Monitor natív integrációjával.
    • Az üzembe helyezéseket a naplókkal és az Azure Log Analytics natív integrációjával hibakereséssel végezheti el.

    Képernyőkép a végpontkésés Azure Monitor-grafikonról.

  • Költségek megtekintése

    Képernyőkép egy végpont és az üzembe helyezés költségdiagramról.

    Feljegyzés

    A felügyelt online végpontok az Azure Machine Tanulás számításán alapulnak. Felügyelt online végpont használata esetén a számítási és hálózatkezelési díjakat kell fizetnie. Nincs további felár. A díjszabással kapcsolatos további információkért tekintse meg az Azure díjkalkulátorát.

    Ha Azure Machine Tanulás virtuális hálózatot használ a felügyelt online végpont kimenő forgalmának védelméhez, a felügyelt virtuális hálózat által használt Azure-beli privát kapcsolat és teljes tartománynév kimenő szabályaiért kell fizetnie. További információ: Felügyelt virtuális hálózat díjszabása.

Felügyelt online végpontok és kubernetes online végpontok

Az alábbi táblázat a felügyelt online végpontok és a Kubernetes online végpontok közötti főbb különbségeket emeli ki.

Felügyelt online végpontok Kubernetes online végpontok (AKS(v2))
Javasolt felhasználók Felügyelt modell üzembe helyezését és továbbfejlesztett MLOps-funkciókat igénylő felhasználók A Kubernetest előnyben részesítő és az infrastruktúra-követelmények önálló kezelésére képes felhasználók
Csomópontok kiépítése Felügyelt számítási kiépítés, frissítés, eltávolítás Felhasználói felelősség
Csomópont karbantartása Felügyelt gazdagép operációsrendszer-rendszerképének frissítései és biztonsági megkeményedése Felhasználói felelősség
Fürtméretezés (méretezés) Felügyelt manuális és automatikus skálázás, további csomópontok kiépítésének támogatása Manuális és automatikus skálázás, amely támogatja a replikák számának skálázását a rögzített fürthatárokon belül
Számítási típus A szolgáltatás kezeli Ügyfél által felügyelt Kubernetes-fürt (Kubernetes)
Kezelt identitás Támogatott Támogatott
Virtuális hálózat (VNet) Támogatott kezelt hálózati elkülönítés Felhasználói felelősség
Házon kívül figyelés > naplózás Az Azure Monitor és a Log Analytics alapú (a végpontokhoz és üzembe helyezésekhez szükséges főbb metrikákat és naplótáblákat tartalmazza) Felhasználói felelősség
Naplózás alkalmazás Elemzések (örökölt) Támogatott Támogatott
Költségek megtekintése Részletes végpont/üzembe helyezési szint Fürtszint
A költség az adott költségre vonatkozik Az üzemelő példányokhoz rendelt virtuális gépek A fürthöz rendelt virtuális gépek
Tükrözött forgalom Támogatott Támogatott
Kód nélküli üzembe helyezés Támogatott (MLflow - és Triton-modellek ) Támogatott (MLflow - és Triton-modellek )

Online üzemelő példányok

Az üzembe helyezés a tényleges következtetést okozó modell üzemeltetéséhez szükséges erőforrások és számítások készlete. Egyetlen végpont több különböző konfigurációval rendelkező üzembe helyezést is tartalmazhat. Ez a beállítás segít leválasztani a végpont által bemutatott felületet az üzembe helyezésben található megvalósítási részletekről. Az online végpont olyan útválasztási mechanizmussal rendelkezik, amely a végpont adott üzemelő példányaihoz irányíthatja a kéréseket.

Az alábbi ábra egy online végpontot mutat be, amely két üzembe helyezéssel rendelkezik, kék és zöld. A kék üzembe helyezés cpu-termékváltozattal rendelkező virtuális gépeket használ, és egy modell 1. verzióját futtatja. A zöld üzembe helyezés GPU-termékváltozattal rendelkező virtuális gépeket használ, és a modell 2. verzióját futtatja. A végpont úgy van konfigurálva, hogy a bejövő forgalom 90%-át a kék üzembe helyezésre irányozza, míg a zöld üzembe helyezés megkapja a fennmaradó 10%-ot.

A forgalmat két üzembe helyezésre felosztó végpontot ábrázoló ábra.

Modell üzembe helyezéséhez a következővel kell rendelkeznie:

  • Modellfájlok (vagy a munkaterületen már regisztrált modell neve és verziója).
  • Egy pontozó szkript, vagyis egy kód, amely egy adott bemeneti kérésen hajtja végre a modellt. A pontozó szkript fogadja az üzembe helyezett webszolgáltatásnak küldött adatokat, és átadja azokat a modellnek. A szkript ezután végrehajtja a modellt, és visszaadja válaszát az ügyfélnek. A pontozási szkript a modellre jellemző, és ismernie kell azokat az adatokat, amelyeket a modell bemenetként vár el, és kimenetként ad vissza.
  • Olyan környezet , amelyben a modell fut. A környezet lehet Egy Docker-rendszerkép Conda-függőségekkel vagy Docker-fájlokkal.
  • Gépház a példánytípus és a skálázási kapacitás megadásához.

Az üzembe helyezés fő attribútumai

Az alábbi táblázat az üzembe helyezés fő attribútumait ismerteti:

Attribútum Ismertetés
Név Az üzembe helyezés neve.
Végpont neve Az üzembe helyezés létrehozásához szükséges végpont neve.
1. modell Az üzembe helyezéshez használni kívánt modell. Ez az érték lehet a munkaterület egy meglévő verziójú modelljére való hivatkozás, vagy egy beágyazott modell specifikációja. A modell elérési útjának nyomon követéséről és megadásáról további információt a modell elérési útjának AZUREML_MODEL_DIRazonosítása a következővel kapcsolatban talál:
Kód elérési útja A helyi fejlesztési környezet könyvtárának elérési útja, amely tartalmazza a modell pontozásához szükséges Összes Python-forráskódot. Beágyazott könyvtárakat és csomagokat is használhat.
Pontozási szkript A forráskód könyvtárában található pontozófájl relatív elérési útja. Ennek a Python-kódnak egy függvénysel init() és egy függvénnyel kell rendelkeznie run() . A init() függvény a modell létrehozása vagy frissítése után lesz meghívva (használhatja például a modell gyorsítótárazására a memóriában). A run() függvényt a rendszer a végpont minden meghívásánál meghívja, hogy elvégezhesse a tényleges pontozást és előrejelzést.
1. környezet A modellt és a kódot üzemeltető környezet. Ez az érték hivatkozhat a munkaterület meglévő verziójú környezetére, vagy egy beágyazott környezeti specifikációra. Megjegyzés: A Microsoft rendszeresen frissíti az alaprendszerképeket az ismert biztonsági rések miatt. A javított rendszerkép használatához újra üzembe kell helyeznie a végpontot. Ha saját rendszerképet ad meg, ön a felelős a frissítéséért. További információ: Képjavítás.
Példány típusa Az üzembe helyezéshez használandó virtuálisgép-méret. A támogatott méretek listáját a Felügyelt online végpontok termékváltozata című témakörben találja.
Példányok száma Az üzembe helyezéshez használandó példányok száma. Alapozza az értéket a várt számítási feladatra. A magas rendelkezésre állás érdekében javasoljuk, hogy állítsa be az értéket legalább 3. A frissítések végrehajtásához további 20%-ot foglalunk le. További információkért tekintse meg a virtuális gépek központi telepítésre vonatkozó kvótafoglalását.

1 Néhány megjegyzés a modellről és a környezetről:

  • A modellre és a tárolórendszerképre (a környezetben definiált módon) bármikor hivatkozhat az üzembe helyezés, amikor az üzembe helyezés mögötti példányok biztonsági javításokon és/vagy más helyreállítási műveleteken mennek keresztül. Ha az Azure Container Registryben regisztrált modellt vagy tárolórendszerképet használ az üzembe helyezéshez, és eltávolítja a modellt vagy a tárolórendszerképet, az ezen eszközökre támaszkodó üzembe helyezések sikertelenek lehetnek az újraképezés során. Ha eltávolítja a modellt vagy a tárolórendszerképet, győződjön meg arról, hogy a függő üzemelő példányok újra lettek létrehozva vagy frissítve egy másik modellel vagy tárolórendszerképpel.
  • A környezet által hivatkozott tárolóregisztrációs adatbázis csak akkor lehet privát, ha a végponti identitás rendelkezik hozzáféréssel a Microsoft Entra-hitelesítéssel és az Azure RBAC-vel. Ugyanezen okból az Azure Container Registryen kívüli privát Docker-regisztrációs adatbázisok nem támogatottak.

Az online végpontok parancssori felülettel, SDK-val, studióval és ARM-sablonnal történő üzembe helyezéséről további információt az ML-modell üzembe helyezése online végponttal című témakörben talál.

Modell elérési útjának azonosítása a AZUREML_MODEL_DIR

Amikor üzembe helyezi a modellt az Azure Machine Tanulás, meg kell adnia az üzembe helyezni kívánt modell helyét az üzembe helyezési konfiguráció részeként. Az Azure Machine Tanulás a modell elérési útját a AZUREML_MODEL_DIR környezeti változó követi nyomon. A modell elérési útjának azonosításával AZUREML_MODEL_DIRüzembe helyezhet egy vagy több, a számítógépen helyben tárolt modellt, vagy üzembe helyezhet egy, az Azure Machine Tanulás-munkaterületen regisztrált modellt.

Illusztrációként a következő helyi mappastruktúrára hivatkozunk az első két esetben, amikor egyetlen modellt helyez üzembe, vagy több helyileg tárolt modellt helyez üzembe:

Képernyőkép egy több modellt tartalmazó mappastruktúráról.

Egyetlen helyi modell használata az üzembe helyezésben

Ha egyetlen olyan modellt szeretne használni, amelyet a helyi gépen használ egy üzembe helyezés során, adja meg az pathmodel üzembe helyezési YAML-ben szereplő modellt. Íme egy példa az üzembe helyezési YAML-ra az elérési úttal /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: 
  path: /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

Az üzembe helyezés létrehozása után a környezeti változó AZUREML_MODEL_DIR arra a tárolóhelyre mutat az Azure-ban, ahol a modell tárolása történik. Például /var/azureml-app/azureml-models/81b3c48bbf62360c7edbbe9b280b9025/1 tartalmazni fogja a modellt sample_m1.pkl.

A pontozószkripten (score.py) belül betöltheti a modellt (ebben a példában sample_m1.pkl) a init() függvénybe:

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "sample_m1.pkl") 
    model = joblib.load(model_path) 

Több helyi modell használata az üzembe helyezésben

Bár az Azure CLI, a Python SDK és más ügyféleszközök lehetővé teszik, hogy üzembe helyezésenként csak egy modellt adjon meg az üzembe helyezés definíciójában, az üzembe helyezésben több modellt is használhat egy olyan modellmappa regisztrálásával, amely az összes modellt fájlként vagy alkönyvtárként tartalmazza.

Az előző példamappák struktúrájában láthatja, hogy a mappában models több modell is található. Az üzembehelyezési YAML-ben az alábbiak szerint adhatja meg a models mappa elérési útját:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: 
  path: /Downloads/multi-models-sample/models/ 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

Az üzembe helyezés létrehozása után a környezeti változó AZUREML_MODEL_DIR arra a tárolási helyre mutat az Azure-ban, ahol a modelleket tárolják. Például /var/azureml-app/azureml-models/81b3c48bbf62360c7edbbe9b280b9025/1 tartalmazni fogja a modelleket és a fájlstruktúrát.

Ebben a példában a mappa tartalma a AZUREML_MODEL_DIR következőképpen fog kinézni:

Képernyőkép a több modell tárolási helyének mappaszerkezetéről.

A pontozási szkripten (score.py) belül betöltheti a modelleket a init() függvénybe. A következő kód betölti a sample_m1.pkl modellt:

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "models","model_1","v1", "sample_m1.pkl ") 
    model = joblib.load(model_path) 

Ha több modellt szeretne üzembe helyezni egy üzemelő példányon, olvassa el a Több modell üzembe helyezése egy üzembe helyezésre (CLI-példa) és több modell üzembe helyezése egy üzembe helyezésre (SDK-példa) című témakört.

Tipp.

Ha több mint 1500 fájlt szeretne regisztrálni, fontolja meg a fájlok vagy alkönyvtárak .tar.gz tömörítését a modellek regisztrálásakor. A modellek használatához megszüntetheti a függvényben lévő fájlokat vagy alkönyvtárakat a init() pontozószkriptből. Másik lehetőségként a modellek regisztrálásakor állítsa a azureml.unpack tulajdonságot Truea fájlok vagy alkönyvtárak automatikus kibontásához. Mindkét esetben az inicializálási szakaszban egyszer megtörténik a kihangsúlyzás.

Azure Machine Tanulás-munkaterületen regisztrált modellek használata üzembe helyezés során

Az Azure Machine Tanulás-munkaterületen regisztrált egy vagy több modell használatához az üzembe helyezés során adja meg a regisztrált modell(ek) nevét az üzembe helyezési YAML-ben. A következő üzembehelyezési YAML-konfiguráció például a regisztrált model nevet azureml:local-multimodel:3adja meg:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: azureml:local-multimodel:3 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

Ebben a példában vegye figyelembe local-multimodel:3 a következő modellösszetevőket, amelyeket az Azure Machine Tanulás studio Modellek lapján tekinthet meg:

Képernyőkép a mappastruktúráról, amelyen a regisztrált modell modellösszetevői láthatók.

Az üzembe helyezés létrehozása után a környezeti változó AZUREML_MODEL_DIR arra a tárolási helyre mutat az Azure-ban, ahol a modelleket tárolják. Például /var/azureml-app/azureml-models/local-multimodel/3 tartalmazni fogja a modelleket és a fájlstruktúrát. AZUREML_MODEL_DIR a modellösszetevők gyökerét tartalmazó mappára mutat. A példa alapján a mappa tartalma a AZUREML_MODEL_DIR következőképpen fog kinézni:

Képernyőkép a több modellt ábrázoló mappastruktúráról.

A pontozási szkripten (score.py) belül betöltheti a modelleket a init() függvénybe. Töltse be például a diabetes.sav modellt:

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR"), "models", "diabetes", "1", "diabetes.sav") 
    model = joblib.load(model_path) 

Virtuálisgép-kvóta kiosztása üzembe helyezéshez

Felügyelt online végpontok esetén az Azure Machine Tanulás a számítási erőforrások 20%-át lefoglalja bizonyos virtuálisgép-termékváltozatok frissítéséhez. Ha adott számú példányt kér a virtuálisgép-termékváltozatokhoz egy üzembe helyezés során, a hiba elkerülése érdekében rendelkeznie kell egy rendelkezésre álló kvótával ceil(1.2 * number of instances requested for deployment) * number of cores for the VM SKU . Ha például egy Standard_DS3_v2 virtuális gép 10 példányát kéri le (amely négy maggal rendelkezik), akkor 48 magra (12 instances * 4 cores) vonatkozó kvótával kell rendelkeznie. Ez a többletkvóta a rendszer által kezdeményezett műveletekre, például az operációs rendszer frissítésére és a virtuális gépek helyreállítására van fenntartva, és csak akkor merül fel költség, ha az ilyen műveletek futnak.

Vannak bizonyos virtuálisgép-termékváltozatok, amelyek mentesülnek a többletkvóta-foglalás alól. A teljes lista megtekintéséhez tekintse meg a felügyelt online végpontok termékváltozatainak listáját.

A használat megtekintéséhez és a kvótanövelések kéréséhez tekintse meg a használatot és a kvótákat az Azure Portalon. A felügyelt online végpontok futtatásának költségeinek megtekintéséhez tekintse meg a felügyelt online végpont költségeinek megtekintése című témakört.

Az Azure Machine Tanulás egy megosztott kvótakészletet biztosít, amelyből minden felhasználó hozzáférhet a kvótához, hogy korlátozott ideig tesztelhessen. Ha a studióval lámamodelleket helyez üzembe (a modellkatalógusból) egy felügyelt online végponton, az Azure Machine Tanulás lehetővé teszi, hogy rövid ideig elérhesse ezt a megosztott kvótát.

Llama-2-70b vagy Llama-2-70b csevegőmodell üzembe helyezéséhez azonban Nagyvállalati Szerződés előfizetéssel kell rendelkeznie, mielőtt üzembe helyezheti a megosztott kvótát. A megosztott kvótának az online végpontok üzembe helyezéséhez való használatával kapcsolatos további információkért lásd : Alapmodellek üzembe helyezése a studióval.

Az Azure Machine Tanulás erőforrásaira vonatkozó kvótákkal és korlátokkal kapcsolatos további információkért lásd: Az Azure Machine Tanulás az erőforrások kvótáinak és korlátainak kezelése és növelése.

Üzembe helyezés kódolókhoz és nem kódolókhoz

Az Azure Machine Tanulás támogatja a modell online végpontokra történő üzembe helyezését a kódolók és a nem kódolók számára egyaránt, ha lehetőséget biztosít a kód nélküli üzembe helyezésre, az alacsony kódszámú üzembe helyezésre és a Saját tároló (BYOC) üzembe helyezésére.

  • A kód nélküli üzembe helyezés beépített következtetést biztosít a közös keretrendszerekhez (például scikit-learn, TensorFlow, PyTorch és ONNX) az MLflow és a Triton használatával.
  • Az alacsony kódszámú üzembe helyezés lehetővé teszi minimális kód megadását a gépi tanulási modellel együtt az üzembe helyezéshez.
  • A BYOC üzembe helyezése lehetővé teszi, hogy gyakorlatilag bármilyen tárolót hozzon létre az online végpont futtatásához. Az MLOps-folyamatok kezeléséhez használhatja az Azure Machine Tanulás összes platformfunkcióját, például az automatikus skálázást, a GitOpst, a hibakeresést és a biztonságos bevezetést.

Az alábbi táblázat az online üzembe helyezési lehetőségek főbb szempontjait emeli ki:

Kód nélküli Alacsony kód BYOC
Összefoglalás Beépített következtetést használ olyan népszerű keretrendszerekhez, mint a scikit-learn, a TensorFlow, a PyTorch és az ONNX, az MLflow és a Triton használatával. További információ: MLflow-modellek üzembe helyezése online végpontokon. Biztonságos, nyilvánosan közzétett válogatott képeket használ a népszerű keretrendszerekhez, és kéthetente frissítéseket használ a biztonsági rések kezelésére. Pontozószkriptet és/vagy Python-függőségeket biztosít. További információ: Azure Machine Tanulás Válogatott környezetek. A teljes vermet az Azure Machine Tanulás egyéni rendszerképekhez nyújtott támogatásával adhatja meg. További információ: Modell üzembe helyezése egy online végponton egyéni tároló használatával.
Egyéni alaprendszerkép Nem, a válogatott környezet biztosítja ezt az egyszerű üzembe helyezéshez. Igen és Nem, használhat válogatott vagy testre szabott képet. Igen, hozzon létre egy akadálymentes tárolórendszerkép-helyet (például docker.io, Azure Container Registry (ACR) vagy Microsoft Container Registry (MCR)) vagy egy Dockerfile-t, amelyet az ACR-vel hozhat létre vagy küldhet le a tárolóhoz.
Egyéni függőségek Nem, a válogatott környezet biztosítja ezt az egyszerű üzembe helyezéshez. Igen, hozza létre az Azure Machine Tanulás környezetet, amelyben a modell fut; vagy egy Docker-rendszerképet Conda-függőségekkel, vagy egy dockerfile-t. Igen, ez szerepelni fog a tároló lemezképében.
Egyéni kód Nem, a pontozási szkript automatikusan létre lesz hozva az egyszerű üzembe helyezés érdekében. Igen, hozza el a pontozó szkriptet. Igen, ez szerepelni fog a tároló lemezképében.

Feljegyzés

Az AutoML-futtatások automatikusan létrehoznak egy pontozószkriptet és függőségeket a felhasználók számára, így bármilyen AutoML-modellt üzembe helyezhet anélkül, hogy további kódot kellene létrehoznia (kód nélküli üzembe helyezéshez), vagy módosíthatja az automatikusan létrehozott szkripteket az üzleti igényeinek megfelelően (alacsony kódszámú üzembe helyezés esetén). Az AutoML-modellekkel való üzembe helyezésről további információt az AutoML-modell üzembe helyezése online végponttal című témakörben talál.

Online végpont hibakeresése

Javasoljuk, hogy az Azure-ban való üzembe helyezés előtt tesztelje helyileg a végpontot a kód és a konfiguráció ellenőrzéséhez és hibakereséséhez. Az Azure CLI és a Python SDK támogatja a helyi végpontokat és üzembe helyezéseket, míg az Azure Machine Tanulás studio- és ARM-sablon nem.

Az Azure Machine Tanulás különböző módszereket kínál az online végpontok helyi és tárolónaplók használatával történő hibakeresésére.

Helyi hibakeresés az Azure Machine Tanulás következtetési HTTP-kiszolgálóval

A pontozószkript helyi hibakereséséhez használja az Azure Machine Tanulás következtetési HTTP-kiszolgálót. A HTTP-kiszolgáló egy Python-csomag, amely HTTP-végpontként teszi elérhetővé a pontozási függvényt, és a Flask-kiszolgáló kódját és függőségeit egy egyedi csomagba csomagolja. Ez szerepel az előre összeállított Docker-rendszerképekben a modell Azure Machine-Tanulás való üzembe helyezésekor használt következtetés érdekében. Ha egyedül használja a csomagot, helyileg üzembe helyezheti a modellt éles környezetben, és a pontozási (belépési) szkriptet is egyszerűen érvényesítheti egy helyi fejlesztési környezetben. Ha probléma van a pontozási szkripttel, a kiszolgáló hibát ad vissza, és azt a helyet, ahol a hiba történt. A Visual Studio Code használatával hibakeresést is végezhet az Azure Machine Tanulás következtetési HTTP-kiszolgálóval.

Tipp.

Az Azure Machine Tanulás következtetési HTTP-kiszolgáló Python-csomagjával helyileg, Docker Engine nélkül is hibakeresést végezhet a pontozószkriptben. A következtetési kiszolgálóval végzett hibakeresés segít a pontozószkript hibakeresésében, mielőtt üzembe helyeznénk a helyi végpontokon, hogy az üzembehelyezési tároló konfigurációi ne befolyásolhassák a hibakeresést.

A HTTP-kiszolgálóval végzett hibakeresésről további információt az Azure Machine Tanulás következtetési HTTP-kiszolgálóval végzett hibakeresési pontozási szkriptben talál.

Helyi hibakeresés helyi végponttal

A helyi hibakereséshez helyi üzembe helyezésre van szükség, vagyis egy helyi Docker-környezetben üzembe helyezett modellre. Ezt a helyi üzembe helyezést használhatja tesztelésre és hibakeresésre a felhőben való üzembe helyezés előtt. A helyi üzembe helyezéshez telepítenie és futtatnia kell a Docker-motort . Az Azure Machine Tanulás ezután létrehoz egy helyi Docker-rendszerképet, amely az Azure Machine Tanulás rendszerképet utánozza. Az Azure Machine Tanulás helyi telepítéseket hoz létre és futtat, és gyorsítótárazza a rendszerképet a gyors iterációkhoz.

Tipp.

A Docker Engine általában a számítógép indításakor indul el. Ha nem, a Docker Engine hibaelhárítását is elvégezheti. Az ügyféloldali eszközök, például a Docker Desktop segítségével hibakeresést végezhet a tárolóban.

A helyi hibakeresés lépései általában a következők:

  • Annak ellenőrzése, hogy a helyi üzembe helyezés sikeres volt-e
  • A helyi végpont meghívása a következtetéshez
  • A meghívási művelet kimenetének naplóinak áttekintése

Feljegyzés

A helyi végpontok a következő korlátozásokkal rendelkeznek:

  • Nem támogatják a forgalmi szabályokat, a hitelesítést és a mintavételi beállításokat.
  • Végpontonként csak egy üzembe helyezést támogatnak.
  • Csak helyi Conda-fájlokkal támogatják a helyi modellfájlokat és környezetet. Ha tesztelni szeretné a regisztrált modelleket, először töltse le őket a parancssori felület vagy az SDK használatával, majd használja path az üzembehelyezési definícióban a szülőmappára való hivatkozáshoz. Ha regisztrált környezeteket szeretne tesztelni, ellenőrizze a környezet környezetét az Azure Machine Tanulás Studióban, és készítsen elő egy helyi conda-fájlt.

A helyi hibakereséssel kapcsolatos további információkért lásd a helyi végpontok helyi használatával történő üzembe helyezését és hibakeresését.

Helyi hibakeresés helyi végponttal és Visual Studio Code-tal (előzetes verzió)

Fontos

Ez a funkció jelenleg nyilvános előzetes verzióban érhető el. Ez az előzetes verzió szolgáltatásszintű szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik.

További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

A helyi hibakereséshez hasonlóan először telepítenie és futtatnia kell a Docker-motort , majd telepítenie kell egy modellt a helyi Docker-környezetben. Helyi üzembe helyezés után az Azure Machine Tanulás helyi végpontok Docker- és Visual Studio Code-fejlesztői tárolókat (fejlesztői tárolókat) használnak helyi hibakeresési környezetek létrehozásához és konfigurálásához. A fejlesztői tárolókkal kihasználhatja a Visual Studio Code funkcióit, például az interaktív hibakeresést egy Docker-tárolóból.

Az online végpontok VS Code-ban történő interaktív hibakereséséről a Visual Studio Code helyi online végpontjainak hibakeresése című témakörben olvashat bővebben.

Hibakeresés tárolónaplókkal

Üzembe helyezés esetén nem kaphat közvetlen hozzáférést ahhoz a virtuális géphez, amelyben a modell üzembe van helyezve. Lekérhet azonban naplókat a virtuális gépen futó egyes tárolókból. Kétféle tárolóból szerezheti be a naplókat:

  • Következtetési kiszolgáló: A naplók tartalmazzák a konzolnaplót (a következtetési kiszolgálóról), amely a pontozószkriptből (score.pykódból) származó nyomtatási/naplózási függvények kimenetét tartalmazza.
  • Tároló inicializáló: A naplók információkat tartalmaznak arról, hogy a kód- és modelladatok sikeresen le lettek-e töltve a tárolóba. A tároló a következtetési kiszolgáló tárolójának futtatása előtt fut.

A tárolónaplók hibakereséséről további információt a Tárolónaplók lekérése című témakörben talál.

Forgalomirányítás és tükrözés online üzembe helyezések számára

Ne feledje, hogy egyetlen online végpont több üzembe helyezéssel is rendelkezhet. Mivel a végpont bejövő forgalmat (vagy kéréseket) fogad, a forgalom százalékos arányát irányíthatja az egyes üzemelő példányokra, a natív kék/zöld üzembe helyezési stratégiában használt módon. Tükrözheti (vagy másolhatja) az egyik üzembe helyezésből a másikba érkező forgalmat, más néven forgalomtükrözést vagy árnyékolást.

Forgalomirányítás kék/zöld üzembe helyezéshez

A kék/zöld üzembe helyezés egy olyan üzembehelyezési stratégia, amely lehetővé teszi, hogy a teljes üzembe helyezés előtt egy új üzembe helyezést (a zöld üzembe helyezést) helyezzen üzembe a felhasználók vagy kérések egy kis részhalmazában. A végpont terheléselosztást valósíthat meg az egyes üzemelő példányok forgalmának bizonyos százalékainak lefoglalásához, és az összes üzembe helyezés teljes lefoglalása akár 100%-ot is elérheti.

Tipp.

A kérések megkerülhetik a konfigurált forgalom terheléselosztását a HTTP fejlécének azureml-model-deploymentbeírásával. Állítsa a fejléc értékét annak az üzemelő példánynak a nevére, amelyhez a kérést irányítani szeretné.

Az alábbi képen az Azure Machine Tanulás Studio beállításai láthatók a kék és a zöld környezet közötti forgalom elosztásához.

Képernyőkép a csúszka felületről az üzemelő példányok közötti forgalomfoglalás beállításához.

Ez a forgalomfoglalás az alábbi képen látható módon irányítja át a forgalmat, a forgalom 10%-a a zöld üzembe helyezésre, a forgalom 90%-a pedig a kék üzembe helyezésre megy.

A forgalmat két üzembe helyezésre felosztó végpontot ábrázoló ábra.

Forgalomtükrözés online üzemelő példányokra

A végpont tükrözheti (vagy másolhatja) az egyik üzemelő példányból egy másik üzembe helyezésbe érkező forgalmat. A forgalomtükrözés (más néven árnyéktesztelés) akkor hasznos, ha éles forgalommal szeretne tesztelni egy új üzembe helyezést anélkül, hogy hatással lenne az ügyfelek által a meglévő üzemelő példányokból kapott eredményekre. Ha például egy kék/zöld üzembe helyezést hajt végre, ahol a forgalom 100%-a kékre van irányítva, és 10%-a a zöld üzembe helyezéshez lesz tükrözve , a zöld üzembe helyezés felé irányuló tükrözött forgalom eredményei nem lesznek visszaadva az ügyfeleknek, de a metrikák és a naplók rögzítve lesznek.

Egy üzembehelyezési forgalmat tükröző végpontot ábrázoló ábra.

A forgalomtükrözés használatáról az online végpontok Széf bevezetéséről olvashat.

Az online végpontok további képességei az Azure Machine Tanulás

Hitelesítés és titkosítás

  • Hitelesítés: Kulcs- és Azure Machine-Tanulás-jogkivonatok
  • Felügyelt identitás: Felhasználó és hozzárendelt rendszer
  • SSL alapértelmezés szerint a végpontok meghívásához

Automatikus skálázás

Az automatikus skálázás automatikusan a megfelelő mennyiségű erőforrást futtatja az alkalmazásra háruló terhelés kezeléséhez. A felügyelt végpontok támogatják az automatikus skálázást az Azure Monitor automatikus skálázási funkciójával való integrációval. Konfigurálhat metrikákon alapuló skálázást (például 70%-os processzorkihasználtságot >), ütemezésalapú skálázást (például a csúcsidőre vonatkozó skálázási szabályokat) vagy egy kombinációt.

Képernyőkép arról, hogy az automatikus skálázás rugalmasan biztosít a minimális és a maximális példány között, a szabályoktól függően.

Az automatikus skálázás konfigurálásának megismeréséhez tekintse meg az online végpontok automatikus méretezését ismertető cikket.

Felügyelt hálózatelkülönítés

Ha gépi tanulási modellt helyez üzembe egy felügyelt online végponton, privát végpontok használatával biztonságossá teheti az online végponttal való kommunikációt.

A bejövő pontozási kérelmek és a munkaterülettel és más szolgáltatásokkal folytatott kimenő kommunikáció biztonságát külön konfigurálhatja. A bejövő kommunikáció az Azure Machine Tanulás-munkaterület privát végpontját használja. A kimenő kommunikáció a munkaterület felügyelt virtuális hálózatához létrehozott privát végpontokat használja.

További információ: Hálózatelkülönítés felügyelt online végpontokkal.

Online végpontok és üzemelő példányok monitorozása

Az Azure Machine Tanulás végpontok monitorozása az Azure Monitorral való integrációval lehetséges. Ez az integráció lehetővé teszi a diagramok metrikáinak megtekintését, a riasztások konfigurálását, a naplótáblákból való lekérdezést, az Alkalmazás Elemzések használatával a felhasználói tárolók eseményeinek elemzését stb.

  • Metrikák: Az Azure Monitor használatával nyomon követheti a különböző végpontmetrikákat, például a kérelmek késését, és lehatolást az üzembe helyezésre vagy az állapotszintre. Nyomon követheti az üzembe helyezési szintű metrikákat is, például a PROCESSZOR-/GPU-kihasználtságot, és lehatolást a példány szintjére. Az Azure Monitor segítségével nyomon követheti ezeket a metrikákat a diagramokban, és irányítópultokat és riasztásokat állíthat be a további elemzéshez.

  • Naplók: Metrikák küldése a Log Analytics-munkaterületre, ahol naplókat kérdezhet le a Kusto lekérdezési szintaxisával. A további feldolgozáshoz metrikákat is küldhet a tárfiókba és/vagy az Event Hubsba. Emellett dedikált naplótáblákat is használhat az online végponttal kapcsolatos eseményekhez, forgalomhoz és tárolónaplókhoz. A Kusto-lekérdezés lehetővé teszi több tábla összekapcsolása összetett elemzést.

  • Alkalmazáselemzések: A válogatott környezetek közé tartozik az alkalmazás Elemzések integrációja, és online üzembe helyezés létrehozásakor engedélyezheti vagy letilthatja. A beépített metrikákat és naplókat a rendszer elküldi az Application Insightsnak, és további elemzésekhez használhatja a beépített funkciókat, például az élő metrikákat, a tranzakciókeresést, a hibákat és a teljesítményt.

A monitorozásról további információt az online végpontok monitorozása című témakörben talál.

Titkos injektálás online üzemelő példányokban (előzetes verzió)

Az online üzembe helyezés kontextusában a titkos kulcsok injektálásának folyamata titkos kulcsok (például API-kulcsok) titkos tárolókból való lekérése, és az online üzembe helyezésen belül futó felhasználói tárolóba való injektálása. A titkos kódok végül elérhetőek lesznek a környezeti változókon keresztül, így biztonságos módot biztosítanak számukra a pontozási szkriptet futtató következtetési kiszolgáló vagy a BYOC (saját tároló) üzembe helyezési megközelítésével létrehozott következtetési verem használatával.

Kétféleképpen lehet titkos kulcsokat beszúrni. Titkos kulcsokat saját maga is beszúrhat felügyelt identitások használatával, vagy használhatja a titkos kódok injektálási funkcióját. A titkos kódok injektálásának módjairól további információt az online végpontokban (előzetes verzióban) található Titkos kódok injektálása című témakörben talál.

Következő lépések