Dela via


Distribuera en AI-modell på Azure Kubernetes Service (AKS) med AI-verktygskedjans operator (förhandsversion)

AI-verktygskedjan (KAITO) är ett hanterat tillägg för AKS som förenklar upplevelsen av att köra OSS AI-modeller på dina AKS-kluster. AI-verktygskedjans operator etablerar automatiskt de nödvändiga GPU-noderna och konfigurerar den associerade slutsatsdragningsservern som en slutpunktsserver till dina AI-modeller. Med det här tillägget minskar din registreringstid och gör att du kan fokusera på användning och utveckling av AI-modeller i stället för installation av infrastruktur.

Den här artikeln visar hur du aktiverar AI-verktygskedjans operatörstillägg och distribuerar en AI-modell på AKS.

Viktigt!

AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och anmäl dig. Förhandsversioner tillhandahålls "som är" och "som tillgängliga", och de undantas från serviceavtalen och den begränsade garantin. AKS-förhandsversioner omfattas delvis av kundsupport på bästa sätt. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:

Innan du börjar

  • Den här artikeln förutsätter en grundläggande förståelse av Kubernetes-begrepp. Mer information finns i Kubernetes grundläggande begrepp för AKS.
  • Alla värdbaserade modellinferensbilder och rekommenderad infrastrukturkonfiguration finns i KAITO GitHub-lagringsplatsen.
  • Ai-verktygskedjans operatörstillägg stöder för närvarande KAITO-version v0.1.0. Anteckna detta när du överväger att välja modell från KAITO-modelllagringsplatsen.

Förutsättningar

Installera azure CLI-förhandsgranskningstillägget

  1. Installera azure CLI-förhandsgranskningstillägget med kommandot az extension add .

    az extension add --name aks-preview
    
  2. Uppdatera tillägget så att du har den senaste versionen med kommandot az extension update .

    az extension update --name aks-preview
    

Registrera ai-verktygskedjans funktionsflagga för operatörstillägg

  1. Registrera funktionsflaggan AIToolchainOperatorPreview med kommandot az feature register .

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

    Det tar några minuter innan registreringen har slutförts.

  2. Kontrollera registreringen med kommandot az feature show .

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

Exportera miljövariabler

  • För att förenkla konfigurationsstegen i den här artikeln kan du definiera miljövariabler med hjälp av följande kommandon. Ersätt platshållarvärdena med dina egna.

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

Aktivera AI-verktygskedjans operatörstillägg i ett AKS-kluster

I följande avsnitt beskrivs hur du skapar ett AKS-kluster med AI-verktygskedjans tillägg aktiverat och distribuerar en standardbaserad AI-modell.

Skapa ett AKS-kluster med AI-verktygskedjans operatörstillägg aktiverat

  1. Skapa en Azure-resursgrupp med kommandot az group create .

    az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
    
  2. Skapa ett AKS-kluster med ai-verktygskedjans operatörstillägg aktiverat med kommandot az aks create med flaggorna --enable-ai-toolchain-operator och --enable-oidc-issuer .

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

    Kommentar

    AKS skapar en hanterad identitet när du aktiverar ai-verktygskedjans operatörstillägg. Den hanterade identiteten används för att skapa GPU-nodpooler i det hanterade AKS-klustret. Rätt behörigheter måste anges för den manuellt genom att följa stegen som beskrivs i följande avsnitt.

    Aktivering av AI-verktygskedja kräver aktivering av OIDC-utfärdare.

  3. I ett befintligt AKS-kluster kan du aktivera ai-verktygskedjans operatörstillägg med hjälp av kommandot az aks update .

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

Ansluta till klustret

  1. Konfigurera kubectl för att ansluta till klustret med kommandot az aks get-credentials .

    az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
    
  2. Kontrollera anslutningen till klustret med hjälp av kubectl get kommandot .

    kubectl get nodes
    

Exportera miljövariabler

  • Exportera miljövariabler för MC-resursgruppen, huvud-ID-identiteten och KAITO-identiteten med hjälp av följande kommandon:

    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}"
    

Hämta utfärdaren av AKS OpenID Connect (OIDC)

  • Hämta URL:en för AKS OIDC-utfärdaren och exportera den som en miljövariabel:

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

Skapa rolltilldelning för tjänstens huvudnamn

  • Skapa en ny rolltilldelning för tjänstens huvudnamn med kommandot az role assignment create .

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

Upprätta en federerad identitetsautentiseringsuppgift

  • Skapa den federerade identitetsautentiseringsuppgiften mellan den hanterade identiteten, AKS OIDC-utfärdaren och ämnet med kommandot az identity federated-credential create .

    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
    

Kontrollera att distributionen körs

  1. Starta om KAITO GPU-etableringsdistributionen på dina poddar med kommandot kubectl rollout restart :

    kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
    
  2. Kontrollera att distributionen körs med kommandot kubectl get :

    kubectl get deployment -n kube-system | grep kaito
    

Distribuera en standardbaserad AI-modell

  1. Distribuera Modellen Falcon 7B-instruct från KAITO-modelllagringsplatsen med kommandot kubectl apply .

    kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
    
  2. Spåra ändringarna i live-resursen på arbetsytan med hjälp av kubectl get kommandot .

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

    Kommentar

    Observera att maskinberedskap kan ta upp till 10 minuter och arbetsytans beredskap upp till 20 minuter när du spårar ändringar i liveresursen på din arbetsyta.

  3. Kontrollera tjänsten och hämta tjänstens IP-adress med hjälp av kubectl get svc kommandot .

    export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
    
  4. Kör Falcon 7B-instruera-modellen med valfria exempelindata med hjälp av följande curl kommando:

    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\"}"
    

Rensa resurser

Om du inte längre behöver dessa resurser kan du ta bort dem för att undvika extra Azure-avgifter.

  • Ta bort resursgruppen och dess associerade resurser med kommandot az group delete .

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

Nästa steg

Fler alternativ för slutsatsdragningsmodeller finns i KAITO GitHub-lagringsplatsen.