Megosztás a következőn keresztül:


AI-modell üzembe helyezése az Azure Kubernetes Service-ben (AKS) az AI eszközlánc-operátorral (előzetes verzió)

Az AI-eszközlánc operátor (KAITO) az AKS felügyelt bővítménye, amely leegyszerűsíti az OSS AI-modellek AKS-fürtökön való futtatásának élményét. Az AI-eszközlánc-operátor automatikusan kiépíti a szükséges GPU-csomópontokat, és végpontkiszolgálóként beállítja a kapcsolódó következtetési kiszolgálót az AI-modellekhez. A bővítmény használata csökkenti a bevezetési időt, és lehetővé teszi, hogy az infrastruktúra beállítása helyett az AI-modellek használatára és fejlesztésére összpontosítson.

Ez a cikk bemutatja, hogyan engedélyezheti az AI-eszközlánc-operátor bővítményét, és hogyan helyezhet üzembe egy AI-modellt az AKS-en.

Fontos

Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióit részben az ügyfélszolgálat fedezi a legjobb munkamennyiség alapján. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:

Mielőtt elkezdené

  • Ez a cikk a Kubernetes-fogalmak alapszintű megértését feltételezi. További információ: Kubernetes alapfogalmak az AKS-hez.
  • Az összes üzemeltetett modell következtetési rendszerképével és az infrastruktúra javasolt beállításával kapcsolatban tekintse meg a KAITO GitHub-adattárat.
  • Az AI eszközlánc-operátor bővítménye jelenleg a KAITO 0.1.0-s verzióját támogatja, jegyezze fel ezt a kaito-modell adattárából választott modell figyelembe vételével.

Előfeltételek

Az Azure CLI előzetes verziós bővítményének telepítése

  1. Telepítse az Azure CLI előzetes verziójú bővítményét az az extension add paranccsal.

    az extension add --name aks-preview
    
  2. Frissítse a bővítményt, és győződjön meg arról, hogy a legújabb verzióval rendelkezik az az extension update paranccsal.

    az extension update --name aks-preview
    

Az AI-eszközlánc operátor bővítményfunkció-jelzőjének regisztrálása

  1. Regisztrálja az AIToolchainOperatorPreview funkciójelzőt az az feature register paranccsal.

    az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
    

    A regisztráció végrehajtása néhány percet vesz igénybe.

  2. Ellenőrizze a regisztrációt az az feature show paranccsal.

    az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
    

Környezeti változók exportálása

  • A cikkben ismertetett konfigurációs lépések egyszerűsítése érdekében az alábbi parancsokkal határozhatja meg a környezeti változókat. Ügyeljen arra, hogy a helyőrző értékeket cserélje le a sajátjára.

    export AZURE_SUBSCRIPTION_ID="mySubscriptionID"
    export AZURE_RESOURCE_GROUP="myResourceGroup"
    export AZURE_LOCATION="myLocation"
    export CLUSTER_NAME="myClusterName"
    

AI-eszközlánc-operátor bővítményének engedélyezése AKS-fürtön

A következő szakaszok bemutatják, hogyan hozhat létre AKS-fürtöt az AI eszközlánc-operátor bővítményével, és hogyan helyezhet üzembe egy alapértelmezett üzemeltetett AI-modellt.

AKS-fürt létrehozása az AI eszközlánc-operátor bővítményének engedélyezésével

  1. Azure-erőforráscsoport létrehozása az az group create paranccsal.

    az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
    
  2. Hozzon létre egy AKS-fürtöt, amelyen engedélyezve van az AI-eszközlánc-operátor bővítmény az az aks create paranccsal és a --enable-ai-toolchain-operator --enable-oidc-issuer jelzőkkel.

    az aks create --location ${AZURE_LOCATION} \
        --resource-group ${AZURE_RESOURCE_GROUP} \
        --name ${CLUSTER_NAME} \
        --enable-oidc-issuer \
        --enable-ai-toolchain-operator \
        --generate-ssh-keys
    

    Feljegyzés

    Az AKS az AI eszközlánc-operátor bővítményének engedélyezése után létrehoz egy felügyelt identitást. A felügyelt identitás gpu-csomópontkészletek létrehozásához használható a felügyelt AKS-fürtben. A megfelelő engedélyeket manuálisan kell beállítani a következő szakaszokban ismertetett lépések végrehajtásával.

    Az AI-eszközlánc-operátor engedélyezéséhez engedélyezni kell az OIDC-kiállítót.

  3. Egy meglévő AKS-fürtön engedélyezheti az AI eszközlánc-operátor bővítményét az az aks update paranccsal.

    az aks update --name ${CLUSTER_NAME} \
            --resource-group ${AZURE_RESOURCE_GROUP} \
            --enable-oidc-issuer \
            --enable-ai-toolchain-operator
    

Csatlakozás a fürthöz

  1. Konfigurálja kubectl a fürthöz való csatlakozást az az aks get-credentials paranccsal.

    az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
    
  2. Ellenőrizze a fürthöz való kapcsolatot a kubectl get paranccsal.

    kubectl get nodes
    

Környezeti változók exportálása

  • Exportálja a környezeti változókat az MC-erőforráscsoporthoz, a főazonosító-identitáshoz és a KAITO-identitáshoz a következő parancsokkal:

    export MC_RESOURCE_GROUP=$(az aks show --resource-group ${AZURE_RESOURCE_GROUP} \
        --name ${CLUSTER_NAME} \
        --query nodeResourceGroup \
        -o tsv)
    export PRINCIPAL_ID=$(az identity show --name "ai-toolchain-operator-${CLUSTER_NAME}" \
        --resource-group "${MC_RESOURCE_GROUP}" \
        --query 'principalId' \
        -o tsv)
    export KAITO_IDENTITY_NAME="ai-toolchain-operator-${CLUSTER_NAME}"
    

Az AKS OpenID Connect (OIDC) kiállítójának lekérése

  • Kérje le az AKS OIDC-kiállító URL-címét, és exportálja környezeti változóként:

    export AKS_OIDC_ISSUER=$(az aks show --resource-group "${AZURE_RESOURCE_GROUP}" \
        --name "${CLUSTER_NAME}" \
        --query "oidcIssuerProfile.issuerUrl" \
        -o tsv)
    

Szerepkör-hozzárendelés létrehozása a szolgáltatásnévhez

  • Hozzon létre egy új szerepkör-hozzárendelést a szolgáltatásnévhez az az role assignment create paranccsal.

    az role assignment create --role "Contributor" \
        --assignee "${PRINCIPAL_ID}" \
        --scope "/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourcegroups/${AZURE_RESOURCE_GROUP}"
    

Összevont identitás hitelesítő adatainak létrehozása

  • Hozza létre az összevont identitás hitelesítő adatait a felügyelt identitás, az AKS OIDC-kiállító és a tulajdonos között az az identity federated-credential create paranccsal.

    az identity federated-credential create --name "kaito-federated-identity" \
        --identity-name "${KAITO_IDENTITY_NAME}" \
        -g "${MC_RESOURCE_GROUP}" \
        --issuer "${AKS_OIDC_ISSUER}" \
        --subject system:serviceaccount:"kube-system:kaito-gpu-provisioner" \
        --audience api://AzureADTokenExchange
    

Ellenőrizze, hogy fut-e az üzembe helyezés

  1. Indítsa újra a KAITO GPU-kiépítési üzembe helyezését a podokon a kubectl rollout restart következő paranccsal:

    kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
    
  2. Ellenőrizze, hogy az üzembe helyezés fut-e a kubectl get következő paranccsal:

    kubectl get deployment -n kube-system | grep kaito
    

Alapértelmezett üzemeltetett AI-modell üzembe helyezése

  1. Helyezze üzembe a Falcon 7B-instruktor modellt a KAITO-modell adattárából a kubectl apply paranccsal.

    kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
    
  2. Kövesse nyomon a munkaterület élő erőforrásváltozásait a kubectl get paranccsal.

    kubectl get workspace workspace-falcon-7b-instruct -w
    

    Feljegyzés

    A munkaterület élő erőforrás-változásainak nyomon követése során vegye figyelembe, hogy a gép készenléte akár 10 percet is igénybe vehet, a munkaterület készenléte pedig akár 20 percet is igénybe vehet.

  3. Ellenőrizze a szolgáltatást, és kérje le a szolgáltatás IP-címét a kubectl get svc parancs használatával.

    export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
    
  4. Futtassa a Falcon 7B-instruktúramodellt egy tetszőleges mintabemenettel a következő curl paranccsal:

    kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- curl -X POST http://$SERVICE_IP/chat -H "accept: application/json" -H "Content-Type: application/json" -d "{\"prompt\":\"YOUR QUESTION HERE\"}"
    

Az erőforrások eltávolítása

Ha már nincs szüksége ezekre az erőforrásokra, törölheti őket, hogy elkerülje a többlet Azure-díjakat.

  • Törölje az erőforráscsoportot és a hozzá tartozó erőforrásokat az az group delete paranccsal.

    az group delete --name "${AZURE_RESOURCE_GROUP}" --yes --no-wait
    

Következő lépések

További következtetési modellbeállításokért tekintse meg a KAITO GitHub-adattárat.