Modellcsomagok üzembe helyezéshez (előzetes verzió)

Miután betanított egy gépi tanulási modellt, üzembe kell helyeznie, hogy mások is felhasználhassák az előrejelzéseit. A modellek üzembe helyezéséhez azonban nem csak a súlyok vagy a modell összetevőire van szükség. A modellcsomagok az Azure Machine Tanulás egyik képessége, amely lehetővé teszi, hogy összegyűjtse a gépi tanulási modellek kiszolgálóplatformon való üzembe helyezéséhez szükséges összes függőséget. A csomagokat áthelyezheti munkaterületek között, és akár az Azure Machine-Tanulás kívül is.

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.

For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Mi az a modellcsomag?

A modell üzembe helyezése előtt ajánlott eljárásként a modell sikeres futtatásához szükséges összes függőséget összegyűjteni és feloldani kell, hogy reprodukálható és robusztus módon lehessen üzembe helyezni a modellt.

Screenshot that shows the dependencies collected during a model package operation.

A modell függőségei általában a következők:

  • Alaprendszerkép vagy környezet, amelyben a modell végrehajtásra kerül.
  • Azon Python-csomagok és függőségek listája, amelyektől a modell függ a megfelelő működéshez.
  • További adategységek, amelyekre a modellnek következtetést kell generálnia. Ezek az eszközök tartalmazhatnak címketérképeket és előfeldolgozási paramétereket.
  • A következtetési kiszolgálóhoz szükséges szoftver a kérések kiszolgálásához; például a Flask Server vagy a TensorFlow-kiszolgáló.
  • Következtetési rutin (ha szükséges).

Ezeket az elemeket össze kell gyűjteni, hogy aztán üzembe helyezhetők legyenek a kiszolgáló infrastruktúrában. Az összes függőség összegyűjtése után létrehozott objektumot modellcsomagnak nevezzük.

A csomagolási modellek előnyei

A csomagolási modellek az üzembe helyezés előtt az alábbi előnyökkel járnak:

  • Reprodukálhatóság: A rendszer az üzembe helyezési idő helyett minden függőséget a csomagolási időben gyűjt. A függőségek feloldása után a csomagot szükség szerint bármennyi alkalommal üzembe helyezheti, miközben garantálhatja, hogy a függőségek már feloldva lettek.
  • Gyorsabb ütközésfeloldás: Az Azure Machine Tanulás észleli a függőségekkel kapcsolatos esetleges helytelen konfigurációkat, például egy hiányzó Python-csomagot, miközben a modellt csomagolja. Az ilyen problémák felderítéséhez nem kell üzembe helyeznie a modellt.
  • Egyszerűbb integráció a következtetési kiszolgálóval: Mivel a használt következtetési kiszolgálónak bizonyos szoftverkonfigurációkra (például Torch Serve csomagra) lehet szüksége, az ilyen szoftverek ütközéseket okozhatnak a modell függőségeivel. Az Azure Machine modellcsomagjai Tanulás injektálják a következtetési kiszolgáló által igényelt függőségeket, hogy segítsenek észlelni az ütközéseket a modell üzembe helyezése előtt.
  • Hordozhatóság: Adatbázisokkal áthelyezheti az Azure Machine Tanulás modellcsomagokat egyik munkaterületről a másikra. Olyan csomagokat is létrehozhat, amelyek az Azure Machine Tanulás kívül is üzembe helyezhetők.
  • MLflow-támogatás magánhálózatokkal: MLflow-modellek esetén az Azure Machine Tanulás internetkapcsolatot igényel a modellek futtatásához szükséges Python-csomagok dinamikus telepítéséhez. Az MLflow-modellek csomagolásával ezek a Python-csomagok feloldódnak a modell csomagolási művelete során, így az MLflow-modellcsomag nem igényel internetkapcsolatot.

Tipp.

Az MLflow-modell üzembe helyezése előtt történő csomagolása erősen ajánlott, és még olyan végpontokhoz is szükséges, amelyek nem rendelkeznek kimenő hálózati kapcsolattal. Az MLflow-modellek magukban a modellben jelzik a függőségeit, így a csomagok dinamikus telepítését igénylik. Az MLflow-modell csomagolásakor a rendszer ezt a dinamikus telepítést az üzembe helyezési idő helyett csomagolási időpontban hajtja végre.

Modellcsomagok üzembe helyezése

Modellcsomagokat adhat meg bemenetként az online végpontokhoz. A modellcsomagok használata megkönnyíti az MLOps-munkafolyamatokat azáltal, hogy csökkenti a hibák esélyét az üzembe helyezéskor, mivel a csomagolási művelet során minden függőség összegyűjtve lett volna. A modellcsomagot úgy is konfigurálhatja, hogy docker-rendszerképeket hozzon létre, hogy az Azure Machine Tanulás kívül bárhol üzembe helyezhető legyen a helyszínen vagy a felhőben.

Screenshot that shows all the possible targets for a model package.

Csomag üzembe helyezés előtt

A modellcsomagok használatával történő üzembe helyezés legegyszerűbb módja az, ha megadja az Azure Machine Tanulás a modellcsomag üzembe helyezését, mielőtt végrehajtja az üzembe helyezést. Ha az Azure CLI, az Azure Machine Tanulás SDK vagy az Azure Machine Tanulás Studio használatával hoz létre üzembe helyezést egy online végponton, az alábbiak szerint adhatja meg a modellcsomagoló használatát:

Az üzembe helyezés létrehozásakor használja a --with-package jelzőt:

az ml online-deployment create --with-package -f model-deployment.yml -e $ENDPOINT_NAME

Az Azure Machine Tanulás először csomagba csomagolja a modellt, majd végrehajtja az üzembe helyezést.

Megjegyzés:

Csomagok használatakor, ha egy alapkörnyezetet conda jelöl vagy pip függőségeket tartalmaz, akkor nem kell belefoglalnia a következtetési kiszolgáló (azureml-inference-server-http) függőségeit. Ehelyett ezek a függőségek automatikusan hozzáadódnak Önhöz.

Csomagolt modell üzembe helyezése

A közvetlenül online végpontra csomagolt modellt üzembe helyezheti. Ez a gyakorlat biztosítja az eredmények reprodukálhatóságát, és ez az ajánlott eljárás. Lásd: Modellek csomagolása és üzembe helyezése online végpontokon.

Ha az Azure Machine-Tanulás kívül szeretné üzembe helyezni a csomagot, tekintse meg a modellek Azure Machine-Tanulás kívüli csomagolását és üzembe helyezését.

Következő lépés