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
Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Om du har flera Azure-prenumerationer kontrollerar du att du väljer rätt prenumeration där resurserna ska skapas och debiteras med kommandot az account set .
Kommentar
Den prenumeration som du använder måste ha GPU VM-kvot.
Azure CLI version 2.47.0 eller senare installerad och konfigurerad. Kör
az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.Kubernetes kommandoradsklient, kubectl, installerad och konfigurerad. Mer information finns i Installera kubectl.
Registrera funktionsflaggan för AI-verktygskedjans operatör.
Installera azure CLI-förhandsgranskningstillägget
Installera azure CLI-förhandsgranskningstillägget med kommandot az extension add .
az extension add --name aks-preview
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
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.
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
Skapa en Azure-resursgrupp med kommandot az group create .
az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
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.
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
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}
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
Starta om KAITO GPU-etableringsdistributionen på dina poddar med kommandot
kubectl rollout restart
:kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
Kontrollera att distributionen körs med kommandot
kubectl get
:kubectl get deployment -n kube-system | grep kaito
Distribuera en standardbaserad AI-modell
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
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.
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}')
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.
Azure Kubernetes Service