Share via


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-Tanulás 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 Tanulás 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 Tanulás.

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:

  • 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 Tanulás munkaterület nevére.
  • 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

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

Ez a szakasz bemutatja, hogyan helyezhet üzembe egy felügyelt online végponton az Azure CLI-vel a Machine Tanulás 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.

  1. 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
    
  2. 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`
    
  3. 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
    
  4. 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 typetriton_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

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

  1. 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
    
  2. 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

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (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.

  1. 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%/*}
    
  2. 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)
    
  3. 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

ÉRVÉNYES:Azure CLI ml-bővítmény 2-es verzió (aktuális)

  1. Ha végzett a végponttal, törölje a következő paranccsal:

    az ml online-endpoint delete -n $ENDPOINT_NAME --yes
    
  2. 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: