Végpontok az éles környezetben való következtetéshez
ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)
Miután betanított gépi tanulási modelleket vagy folyamatokat, vagy megtalálta a modellkatalógusban az igényeinek megfelelő modelleket, üzembe kell helyeznie őket az éles környezetben, hogy mások következtetésre használhassák őket. A következtetés az új bemeneti adatok gépi tanulási modellre vagy folyamatra 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ó. Az Azure Machine Tanulás végpontok használatával végez következtetést.
Végpontok és üzemelő példányok
A végpont egy stabil és tartós URL-cím, amely modell kérésére vagy meghívására használható. Adja meg a végponthoz szükséges bemeneteket, és kérje vissza a kimeneteket. A végpontok a következőket biztosítják:
- stabil és tartós URL-cím (például endpoint-name.region.inference.ml.azure.com),
- hitelesítési mechanizmust, és
- engedélyezési mechanizmust.
Az üzembe helyezés a tényleges következtetést okozó modell vagy összetevő üzemeltetéséhez szükséges erőforrások és számítások készlete. Egyetlen végpont tartalmazhat egy vagy több üzembe helyezést (kivéve a kiszolgáló nélküli API-végpontokat ). Az üzemelő példányok önálló eszközöket üzemeltethetnek, és az eszközök igényeinek megfelelően különböző erőforrásokat használhatnak fel. Ezenkívül a végpontok olyan útválasztási mechanizmussal rendelkeznek, amely a végpont adott üzemelő példányaihoz irányíthatja a kéréseket.
Az Azure Machine egyes végponttípusai Tanulás dedikált erőforrásokat használnak fel az üzemelő példányaikon. Ahhoz, hogy ezek a végpontok fussanak, számítási kvótával kell rendelkeznie az előfizetésében. Bizonyos modellek azonban támogatják a kiszolgáló nélküli üzembe helyezést – amely nem használ kvótát az előfizetésből –, ehelyett a használat alapján kell fizetnie.
Intuíció
Tegyük fel, hogy egy olyan alkalmazáson dolgozik, amely előrejelzi az autó típusát és színét a fényképe alapján. Ebben az alkalmazásban egy bizonyos hitelesítő adatokkal rendelkező felhasználó HTTP-kérést küld egy URL-címre, és a kérés részeként képet ad egy autóról. Cserébe a felhasználó olyan választ kap, amely sztringértékekként tartalmazza az autó típusát és színét. Ebben a forgatókönyvben az URL-cím végpontként szolgál.
Azt is tegyük fel, hogy egy adattudós, Alice dolgozik az alkalmazás implementálásán. Alice sokat tud a TensorFlow-ról, és úgy dönt, hogy keras szekvenciális osztályozóval implementálja a modellt a TensorFlow Hub RestNet-architektúrájával. A modell tesztelése után Alice elégedett az eredményeivel, és úgy dönt, hogy a modellt használja az autó előrejelzési problémájának megoldásához. A modell mérete nagy, és 8 GB memóriát igényel 4 mag futtatásához. Ebben a forgatókönyvben Alice modellje és az erőforrások, például a kód és a számítás, amelyek a modell futtatásához szükségesek, egy üzembe helyezést alkotnak a végpont alatt.
Tegyük fel, hogy néhány hónap elteltével a szervezet felfedezi, hogy az alkalmazás rosszul teljesít a kevésbé ideális megvilágítási feltételekkel rendelkező képeken. Bob, egy másik adattudós, sokat tud az adatnagyobbítási technikákról, amelyek segítenek a modellnek ezen a tényezőn robusztusságot építeni. Bob azonban kényelmesebben használja a Torch-ot a modell implementálásához, és betanítanak egy új modellt a Torch-tal. Bob fokozatosan szeretné kipróbálni ezt a modellt éles környezetben, amíg a szervezet nem áll készen a régi modell kivonására. Az új modell jobb teljesítményt is mutat a GPU-ra való üzembe helyezéskor, így az üzembe helyezésnek GPU-t is tartalmaznia kell. Ebben a forgatókönyvben Bob modellje és az erőforrások, például a kód és a számítás, amelyek a modell futtatásához szükségesek, egy másik üzembe helyezést alkotnak ugyanazon végpont alatt.
Végpontok: kiszolgáló nélküli API, online és köteg
Az Azure Machine Tanulás lehetővé teszi kiszolgáló nélküli API-végpontok, online végpontok és kötegelt végpontok implementálását. A kiszolgáló nélküli API-végpontok és az online végpontok valós idejű következtetésre vannak tervezve – a végpont meghívásakor az eredmények a végpont válaszában jelennek meg. A kiszolgáló nélküli API-végpontok nem használnak kvótát az előfizetésből; ehelyett használatalapú fizetéses számlázással számlázzák őket.
A Batch-végpontok viszont hosszú ideig futó kötegkövetkeztetéshez vannak kialakítva. Minden alkalommal, amikor meghív egy kötegvégpontot, létrehoz egy kötegelt feladatot, amely végrehajtja a tényleges munkát.
Mikor érdemes kiszolgáló nélküli API-t, online és kötegvégpontokat használni?
Kiszolgáló nélküli API-végpontok:
Kiszolgáló nélküli API-végpontok használatával nagy alapmodelleket használhat a valós idejű következtetéshez a polcon kívülre, vagy finomhangolhatja az ilyen modelleket. Nem minden modell érhető el a kiszolgáló nélküli API-végpontokon való üzembe helyezéshez. Ezt az üzembe helyezési módot a következő esetekben javasoljuk:
- A modell egy alapszintű modell, vagy annak egy finomhangolt verziója érhető el kiszolgáló nélküli API-üzemelő példányokhoz.
- A kvóta nélküli üzembe helyezés előnyeit élvezheti.
- Nem kell testre szabnia a modell futtatásához használt következtetési vermet.
Online végpontok:
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:
- A modell egy alapmodell vagy annak finomhangolt verziója, de kiszolgáló nélküli API-végpontokban nem támogatott.
- Alacsony késési követelményekkel rendelkezik.
- A modell viszonylag rövid idő alatt meg tudja válaszolni a kérést.
- A modell bemenetei illeszkednek a kérelem HTTP-hasznos adataihoz.
- Fel kell skáláznia a kérések számát.
Batch-végpontok:
Batch-végpontok használatával üzembe helyezi a modelleket vagy folyamatokat a hosszú ideig futó aszinkron következtetéshez. Javasoljuk, hogy a következő esetekben használja őket:
- Drága modellekkel vagy folyamatokkal rendelkezik, amelyek futtatásához hosszabb idő szükséges.
- Szeretné üzembe helyezni a gépi tanulási folyamatokat és újra felhasználni az összetevőket.
- Nagy mennyiségű, több fájlban elosztott adatra kell következtetnie.
- Nem rendelkezik alacsony késési követelményekkel.
- A modell bemenetei egy tárfiókban vagy egy Azure Machine-Tanulás adategységben vannak tárolva.
- Kihasználhatja a párhuzamosítás előnyeit.
Kiszolgáló nélküli API-k, online és kötegelt végpontok összehasonlítása
Minden kiszolgáló nélküli API, online és kötegvégpont a végpontok ötletén alapul, ami megkönnyíti a váltást egyikről a másikra. Az online és a kötegvégpontok emellett lehetővé mutatják, hogy ugyanazon végponton több üzembe helyezést is kezelhessen. Az alábbi szakasz az egyes üzembehelyezési lehetőségek különböző funkcióit ismerteti:
Végpontok
Az alábbi táblázat összefoglalja a kiszolgáló nélküli API- és online- és kötegelt végpontok számára elérhető különböző funkciókat.
Szolgáltatás | Kiszolgáló nélküli API-végpontok | Online végpontok | Batch-végpontok |
---|---|---|---|
Stabil meghívási URL-cím | Igen | Igen | Igen |
Több üzembe helyezés támogatása | Nem | Igen | Igen |
Az üzembe helyezés útválasztása | Egyik sem | Forgalom felosztása | Váltás alapértelmezettre |
Forgalom tükrözése a biztonságos bevezetés érdekében | Nem | Igen | Nem |
Swagger-támogatás | Igen | Igen | Nem |
Hitelesítés | Kulcs | Kulcs és Microsoft Entra-azonosító (előzetes verzió) | Microsoft Entra ID |
Magánhálózat támogatása (örökölt) | Nem | Igen | Igen |
Felügyelt hálózatelkülönítés | Igen | Igen | Igen (lásd a szükséges további konfigurációt) |
Felhasználó által kezelt kulcsok | N.a. | Igen | Igen |
Költségalap | Végpontonként, percenként1 | Egyik sem | Egyik sem |
1A kiszolgáló nélküli API-végpontokért percenként egy kis törtrészt kell fizetni. A használattal kapcsolatos, jogkivonatonként számlázott díjakért tekintse meg az üzembe helyezési szakaszt.
Központi telepítés
Az alábbi táblázat összefoglalja a kiszolgáló nélküli API, az online és a kötegelt végpontok számára elérhető különböző funkciókat az üzembe helyezés szintjén. Ezek a fogalmak a végpont alatti minden üzembe helyezésre vonatkoznak (online és kötegelt végpontok esetén), valamint a kiszolgáló nélküli API-végpontokra (ahol az üzembe helyezés fogalma a végpontba van beépítve).
Szolgáltatás | Kiszolgáló nélküli API-végpontok | Online végpontok | Batch-végpontok |
---|---|---|---|
Üzembehelyezési típusok | Modellek | Modellek | Modellek és folyamatösszetevők |
MLflow-modell üzembe helyezése | Nem, csak adott modellek a katalógusban | Igen | Igen |
Egyéni modell üzembe helyezése | Nem, csak adott modellek a katalógusban | Igen, pontozási szkripttel | Igen, pontozási szkripttel |
Modellcsomag üzembe helyezése 1 | Beépítve | Igen (előzetes verzió) | Nem |
Következtetési kiszolgáló 2 | Azure AI-modell következtetési API | - Azure Machine Tanulás Következtetési kiszolgáló -Triton - Egyéni (BYOC használatával) |
Batch-következtetés |
Felhasznált számítási erőforrás | Nincs (kiszolgáló nélküli) | Példányok vagy részletes erőforrások | Fürtpéldányok |
Számítási típus | Nincs (kiszolgáló nélküli) | Felügyelt számítás és Kubernetes | Felügyelt számítás és Kubernetes |
Alacsony prioritású számítás | N.a. | Nem | Igen |
Számítás skálázása nullára | Beépítve | Nem | Igen |
3. számításautomatikus skálázása | Beépítve | Igen, az erőforrások terhelése alapján | Igen, a feladatok száma alapján |
Kapacitásfelesenlítés kezelése | Szabályozás | Szabályozás | Queuing |
Költségalap4 | Jogkivonatonként | Üzemelő példányonként: futó számítási példányok | Feladatonként: a feladatban felhasznált számítási példány (a fürt példányainak maximális számára van megfeleltetve). |
Az üzemelő példányok helyi tesztelése | Nem | Igen | Nem |
1 Az MLflow-modellek kimenő internetkapcsolat vagy magánhálózatok nélküli végpontokon való üzembe helyezéséhez először be kell csomagolni a modellt .
2Az Inference-kiszolgáló azt a kiszolgálói technológiát jelenti, amely kéréseket vesz fel, feldolgoz és válaszokat hoz létre. A következtetési kiszolgáló a bemenet formátumát és a várt kimeneteket is meghatározza.
3Az automatikus skálázás lehetővé teszi, hogy a terhelés alapján dinamikusan felskálázza vagy leskálázza az üzembe helyezés lefoglalt erőforrásait. Az online és a kötegelt üzembe helyezés különböző stratégiákat használ az automatikus skálázáshoz. Míg az online üzemelő példányok az erőforrás-kihasználtság (például processzor, memória, kérések stb.) alapján fel- és leskálázhatók, a batch-végpontok a létrehozott feladatok száma alapján fel- vagy leskálázhatók.
4 Az online és a kötegelt üzembe helyezést is a felhasznált erőforrások terhelik. Az online üzemelő példányokban az erőforrások üzembe helyezéskor lesznek kiépítve. A kötegelt üzembe helyezés során azonban a rendszer nem használ fel erőforrásokat az üzembe helyezéskor, hanem a feladat futtatásakor. Ezért az üzembe helyezés nem jár költségekkel. Figyelje meg, hogy az üzenetsorba helyezett feladatok sem használnak erőforrásokat.
Fejlesztői felületek
A végpontok célja, hogy segítsék a szervezeteket az éles szintű számítási feladatok üzembe helyezésében az Azure Machine Tanulás. A végpontok robusztus és méretezhető erőforrások, és a lehető legjobb képességeket biztosítják az MLOps-munkafolyamatok implementálásához.
Több fejlesztői eszközzel hozhat létre és kezelhet köteg- és online végpontokat:
- Az Azure CLI és a Python SDK
- Azure Resource Manager/REST API
- Azure Machine Tanulás Studio webportál
- Azure Portal (IT/Rendszergazda)
- CI/CD MLOps-folyamatok támogatása az Azure CLI-felület és REST/ARM interfészek használatával
Következő lépések
- Online végpontok üzembe helyezése az Azure CLI-vel és a Python SDK-val
- Modellek üzembe helyezése kötegelt végpontokkal
- Folyamatok üzembe helyezése kötegelt végpontokkal
- Online végpontok használata a studióval
- Felügyelt online végpontok monitorozása
- Az erőforráskvóták kezelése és növelése az Azure Machine Learninggel