Nagy teljesítményű kiszolgálás a Triton Inference Serverrel
ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)
Megtudhatja, hogyan használhatja az NVIDIA Triton Inference Servert az Azure Machine Learningben online végpontokkal.
A Triton több keretrendszeres, nyílt forráskódú szoftver, amely következtetésre van optimalizálva. Olyan népszerű gépi tanulási keretrendszereket támogat, mint a TensorFlow, az ONNX Runtime, a PyTorch, az NVIDIA TensorRT stb. A processzor- vagy GPU-számítási feladatokhoz használható.
A Triton-modellek online végponton való üzembe helyezésekor alapvetően két módszer használható: kód nélküli üzembe helyezés vagy teljes kódos (Saját tároló használata) üzembe helyezés.
- A Triton-modellek kód nélküli üzembe helyezése egyszerű módszer az üzembe helyezésükre, mivel csak Triton-modelleket kell üzembe helyeznie.
- A Triton-modellek teljes kódú üzembe helyezése (saját tároló használata) fejlettebb módja az üzembe helyezésüknek, mivel teljes mértékben szabályozhatja a Triton következtetési kiszolgálóhoz elérhető konfigurációk testreszabását.
Mindkét beállítás esetében a Triton következtetési kiszolgáló az NVIDIA által meghatározott Triton-modell alapján végez következtetést. Az együttesmodellek például speciálisabb forgatókönyvekhez is használhatók.
A Triton támogatott mind a felügyelt online végpontokban, mind a Kubernetes online végpontjaiban.
Ebben a cikkben megtudhatja, hogyan helyezhet üzembe egy modellt a Triton kód nélküli üzembe helyezésével egy felügyelt online végponton. A parancssori felület (parancssor), a Python SDK v2 és az Azure Machine Learning Studio használatával kapcsolatos információk. Ha közvetlenül a Triton-következtetési kiszolgáló konfigurációjával szeretne további testreszabást végezni, tekintse meg az Egyéni tároló használata modell üzembe helyezéséhez és a Triton BYOC-példáját (üzembehelyezési definíció és végpontok közötti szkript).
Feljegyzés
Az NVIDIA Triton Inference Server tárolójának használatát az NVIDIA AI Enterprise Software licencszerződés szabályozza, és 90 napig használható nagyvállalati termék-előfizetés nélkül. További információ: NVIDIA AI Enterprise az Azure Machine Learningben.
Előfeltételek
A cikkben ismertetett lépések végrehajtása előtt győződjön meg arról, hogy rendelkezik a következő előfeltételekkel:
Az Azure CLI és az
ml
Azure CLI bővítménye. További információ: A parancssori felület (v2) telepítése, beállítása és használata.Fontos
A jelen cikkben szereplő CLI-példák feltételezik, hogy a Bash (vagy kompatibilis) rendszerhéjat használja. Például linuxos rendszerből vagy Linuxos Windows-alrendszer.
Egy Azure Machine Learning-munkaterület. Ha nincs ilyenje, a telepítés, a beállítás és a parancssori felület (v2) lépéseit követve hozzon létre egyet.
Egy működő Python 3.8(vagy újabb) környezet.
A pontozáshoz további Python-csomagokat kell telepítenie, és az alábbi kóddal telepítheti őket. Ezek közé tartoznak például az alábbiak:
- Numpy – Tömb- és numerikus számítástechnikai kódtár
- Triton Inference Server-ügyfél – A Triton Inference Server felé irányuló kérések megkönnyítése
- Párna – Képműveletek könyvtára
- Gevent – A Triton-kiszolgálóhoz való csatlakozáskor használt hálózati kódtár
pip install numpy
pip install tritonclient[http]
pip install pillow
pip install gevent
Hozzáférés az Azure-előfizetéshez tartozó NCv3-sorozatú virtuális gépekhez.
Fontos
Előfordulhat, hogy a virtuális gépek sorozatának használatához kvótanövelést kell kérnie az előfizetéséhez. További információ: NCv3-sorozat.
Az NVIDIA Triton Inference Serverhez egy adott modelladattár-struktúra szükséges, ahol minden modellhez és alkönyvtárhoz van egy könyvtár a modellverzióhoz. Az egyes modellverzió-alkönyvtárak tartalmát a modell típusa és a modellt támogató háttérrendszer követelményei határozzák meg. Az összes modelladattár-struktúra megtekintése https://github.com/triton-inference-server/server/blob/main/docs/user_guide/model_repository.md#model-files
A dokumentumban szereplő információk egy ONNX formátumban tárolt modellen alapulnak, így a modelladattár könyvtárszerkezete az <model-repository>/<model-name>/1/model.onnx
. Ez a modell képazonosítást végez.
A cikkben szereplő információk az azureml-examples adattárban található kódmintákon alapulnak . Ha helyileg szeretné futtatni a parancsokat a YAML és más fájlok másolása/beillesztése nélkül, klónozza az adattárat, majd módosítsa a címtárakat az cli
adattár könyvtárára:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples
cd cli
Ha még nem állította be az Azure CLI alapértelmezett beállításait, mentse az alapértelmezett beállításokat. Az előfizetés, a munkaterület és az erőforráscsoport értékeinek többszöri átadásának elkerülése érdekében használja az alábbi parancsokat. Cserélje le a következő paramétereket az adott konfiguráció értékeire:
- Cserélje le a
<subscription>
értékét a saját Azure-előfizetése azonosítójára. - Cserélje le
<workspace>
az Azure Machine Learning-munkaterület nevét. - Cserélje le
<resource-group>
a munkaterületet tartalmazó Azure-erőforráscsoportra. - Cserélje le
<location>
a munkaterületet tartalmazó Azure-régióra.
Tipp.
A parancs használatával az configure -l
megtekintheti az aktuális alapértelmezett beállításokat.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Az üzembehelyezési konfiguráció meghatározása
A KÖVETKEZŐRE VONATKOZIK: Azure CLI ml-bővítmény v2 (aktuális)
Ez a szakasz bemutatja, hogyan helyezhet üzembe egy felügyelt online végponton az Azure CLI-vel a Machine Learning bővítmény (v2) használatával.
Fontos
A Triton no-code-deployment esetében a helyi végpontokon végzett tesztelés jelenleg nem támogatott.
Ha szeretné elkerülni, hogy több parancs elérési útjának beírása legyen, az alábbi paranccsal állítson be egy környezeti változót
BASE_PATH
. Ez a változó arra a könyvtárra mutat, amelyben a modell és a kapcsolódó YAML-konfigurációs fájlok találhatók:BASE_PATH=endpoints/online/triton/single-model
A következő paranccsal állítsa be a létrehozandó végpont nevét. Ebben a példában véletlenszerű név jön létre a végponthoz:
export ENDPOINT_NAME=triton-single-endpt-`echo $RANDOM`
Hozzon létre egy YAML-konfigurációs fájlt a végponthoz. Az alábbi példa a végpont nevét és hitelesítési módját konfigurálja. A következő parancsokban használt az azureml-examples adattárban található
/cli/endpoints/online/triton/single-model/create-managed-endpoint.yml
, amelyet korábban klónozott:create-managed-endpoint.yaml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineEndpoint.schema.json name: my-endpoint auth_mode: aml_token
Hozzon létre egy YAML-konfigurációs fájlt az üzembe helyezéshez. Az alábbi példa egy kék nevű üzembe helyezést konfigurál az előző lépésben definiált végpontra. A következő parancsokban használt az azureml-examples adattárban található
/cli/endpoints/online/triton/single-model/create-managed-deployment.yml
, amelyet korábban klónozott:Fontos
A Triton kód nélküli üzembe helyezésének (NCD) működéséhez a beállítás
type
triton_model
szükséges.type: triton_model
További információ: CLI (v2) YAML-sémamodell.Ez az üzembe helyezés egy Standard_NC6s_v3 virtuális gépet használ. Előfordulhat, hogy a virtuális gép használatához kvótanövelést kell kérnie az előfizetéséhez. További információ: NCv3-sorozat.
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json name: blue endpoint_name: my-endpoint model: name: sample-densenet-onnx-model version: 1 path: ./models type: triton_model instance_count: 1 instance_type: Standard_NC6s_v3
Üzembe helyezés az Azure-ban
A KÖVETKEZŐRE VONATKOZIK: Azure CLI ml-bővítmény v2 (aktuális)
Ha új végpontot szeretne létrehozni a YAML-konfigurációval, használja a következő parancsot:
az ml online-endpoint create -n $ENDPOINT_NAME -f $BASE_PATH/create-managed-endpoint.yaml
Az üzembe helyezés YAML-konfigurációval történő létrehozásához használja a következő parancsot:
az ml online-deployment create --name blue --endpoint $ENDPOINT_NAME -f $BASE_PATH/create-managed-deployment.yaml --all-traffic
A végpont tesztelése
A KÖVETKEZŐRE VONATKOZIK: Azure CLI ml-bővítmény v2 (aktuális)
Az üzembe helyezés befejezése után az alábbi paranccsal küldjön pontozási kérelmet az üzembe helyezett végpontra.
Tipp.
A rendszer az azureml-examples adattárban található fájlt /cli/endpoints/online/triton/single-model/triton_densenet_scoring.py
használja a pontozáshoz. A végpontnak átadott képnek előfeldolgozásra van szüksége a méretre, a típusra és a formátumra vonatkozó követelményeknek való megfeleléshez, valamint az utófeldolgozáshoz az előrejelzett címke megjelenítéséhez. A triton_densenet_scoring.py
kódtár használatával tritonclient.http
kommunikál a Triton következtetési kiszolgálóval. Ez a fájl az ügyféloldalon fut.
A végpont pontozási URI-jának lekéréséhez használja a következő parancsot:
scoring_uri=$(az ml online-endpoint show -n $ENDPOINT_NAME --query scoring_uri -o tsv) scoring_uri=${scoring_uri%/*}
Hitelesítési kulcs lekéréséhez használja a következő parancsot:
auth_token=$(az ml online-endpoint get-credentials -n $ENDPOINT_NAME --query accessToken -o tsv)
Az adatok végponttal való pontozásához használja az alábbi parancsot. Elküldi a páva (https://aka.ms/peacock-pic) képét a végpontnak:
python $BASE_PATH/triton_densenet_scoring.py --base_url=$scoring_uri --token=$auth_token --image_path $BASE_PATH/data/peacock.jpg
A szkript válasza hasonló a következő szöveghez:
Is server ready - True Is model ready - True /azureml-examples/cli/endpoints/online/triton/single-model/densenet_labels.txt 84 : PEACOCK
A végpont és a modell törlése
A KÖVETKEZŐRE VONATKOZIK: Azure CLI ml-bővítmény v2 (aktuális)
Ha végzett a végponttal, törölje a következő paranccsal:
az ml online-endpoint delete -n $ENDPOINT_NAME --yes
A modell archiválásához használja a következő parancsot:
az ml model archive --name $MODEL_NAME --version $MODEL_VERSION
Következő lépések
További információért tekintse át az alábbi cikkeket:
- Modellek üzembe helyezése REST használatával
- Felügyelt online végpontok létrehozása és használata a studióban
- Biztonságos bevezetés online végpontokhoz
- Felügyelt online végpontok automatikus méretezése
- Felügyelt online Azure Machine Learning-végpont költségeinek megtekintése
- Azure-erőforrások elérése felügyelt online végponttal és felügyelt identitással
- Felügyelt online végpontok üzembe helyezésének hibaelhárítása