Een AI-model implementeren in Azure Kubernetes Service (AKS) met de AI-toolchainoperator (preview)
De AI-toolchainoperator (KAITO) is een beheerde invoegtoepassing voor AKS die de ervaring van het uitvoeren van OSS AI-modellen op uw AKS-clusters vereenvoudigt. De operator ai-hulpprogrammaketen richt automatisch de benodigde GPU-knooppunten in en stelt de bijbehorende deductieserver in als een eindpuntserver voor uw AI-modellen. Als u deze invoegtoepassing gebruikt, vermindert u de onboardingtijd en kunt u zich richten op het gebruik en de ontwikkeling van AI-modellen in plaats van de installatie van de infrastructuur.
In dit artikel leest u hoe u de invoegtoepassing ai-hulpprogrammaketenoperator inschakelt en een AI-model implementeert in AKS.
Belangrijk
AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals is' en 'als beschikbaar' en ze worden uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
Voordat u begint
- In dit artikel wordt ervan uitgegaan dat u basiskennis hebt van Kubernetes-concepten. Zie Kubernetes-kernconcepten voor AKS voor meer informatie.
- Zie de KAITO GitHub-opslagplaats voor alle gehoste modeldeductieinstallatiekopieën en aanbevolen infrastructuurinstallatiekopieën.
- De invoegtoepassing voor de AI-hulpprogrammaketenoperator ondersteunt momenteel KAITO-versie 0.1.0. Noteer dit in overweging nemend bij uw keuze uit de KAITO-modelopslagplaats.
Vereisten
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Als u meerdere Azure-abonnementen hebt, moet u ervoor zorgen dat u het juiste abonnement selecteert waarin de resources worden gemaakt en in rekening worden gebracht met behulp van de opdracht az account set .
Notitie
Het abonnement dat u gebruikt, moet een GPU-VM-quotum hebben voor de implementatie van het model dat u kiest.
Azure CLI versie 2.47.0 of hoger geïnstalleerd en geconfigureerd. Voer
az --version
uit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.De Kubernetes-opdrachtregelclient, kubectl, geïnstalleerd en geconfigureerd. Zie Kubectl installeren voor meer informatie.
Installeer de Preview-extensie van Azure CLI AKS.
Registreer de invoegtoepassingsvlag voor de AI-hulpprogrammaketenoperator.
De Preview-extensie van Azure CLI installeren
Installeer de Azure CLI Preview-extensie met behulp van de opdracht az extension add .
az extension add --name aks-preview
Werk de extensie bij om ervoor te zorgen dat u de nieuwste versie hebt met behulp van de opdracht az extension update .
az extension update --name aks-preview
De invoegtoepassingsvlag voor de AI-toolchainoperator registreren
Registreer de functievlag AIToolchainOperatorPreview met behulp van de opdracht az feature register .
az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Het duurt enkele minuten voordat de registratie is voltooid.
Controleer de registratie met behulp van de opdracht az feature show .
az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Omgevingsvariabelen exporteren
Om de configuratiestappen in dit artikel te vereenvoudigen, kunt u omgevingsvariabelen definiëren met behulp van de volgende opdrachten. Zorg ervoor dat u de waarden van de tijdelijke aanduiding vervangt door uw eigen waarden.
export AZURE_SUBSCRIPTION_ID="mySubscriptionID" export AZURE_RESOURCE_GROUP="myResourceGroup" export AZURE_LOCATION="myLocation" export CLUSTER_NAME="myClusterName"
De invoegtoepassing voor de AI-hulpprogrammaketenoperator inschakelen op een AKS-cluster
In de volgende secties wordt beschreven hoe u een AKS-cluster maakt met de invoegtoepassing AI-hulpprogrammaketenoperator ingeschakeld en een standaard gehost AI-model implementeert.
Een AKS-cluster maken waarvoor de invoegtoepassing AI-hulpprogrammaketenoperator is ingeschakeld
Maak een Azure-resourcegroep met behulp van de opdracht az group create .
az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
Maak een AKS-cluster met de invoegtoepassing AI-hulpprogrammaketenoperator ingeschakeld met behulp van de opdracht az aks create met de
--enable-ai-toolchain-operator
en--enable-oidc-issuer
vlaggen.az aks create --location ${AZURE_LOCATION} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --name ${CLUSTER_NAME} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator \ --generate-ssh-keys
Notitie
AKS maakt een beheerde identiteit zodra u de invoegtoepassing voor de AI-hulpprogrammaketenoperator inschakelt. De beheerde identiteit wordt gebruikt om GPU-knooppuntgroepen te maken in het beheerde AKS-cluster. De juiste machtigingen moeten hiervoor handmatig worden ingesteld door de stappen in de volgende secties te volgen.
Op een bestaand AKS-cluster kunt u de invoegtoepassing ai-hulpprogrammaketenoperator inschakelen met behulp van de opdracht az aks update .
az aks update --name ${CLUSTER_NAME} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator
Verbinding maken met uw cluster
Configureer
kubectl
deze om verbinding te maken met uw cluster met behulp van de opdracht az aks get-credentials .az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
Controleer de verbinding met uw cluster met behulp van de
kubectl get
opdracht.kubectl get nodes
Omgevingsvariabelen exporteren
Exporteer omgevingsvariabelen voor de MC-resourcegroep, principal-id en KAITO-identiteit met behulp van de volgende opdrachten:
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}"
De verlener van AKS OpenID Connect (OIDC) ophalen
Haal de URL van de AKS OIDC Issuer op en exporteer deze als een omgevingsvariabele:
export AKS_OIDC_ISSUER=$(az aks show --resource-group "${AZURE_RESOURCE_GROUP}" \ --name "${CLUSTER_NAME}" \ --query "oidcIssuerProfile.issuerUrl" \ -o tsv)
Roltoewijzing maken voor de service-principal
Maak een nieuwe roltoewijzing voor de service-principal met behulp van de opdracht az role assignment create .
az role assignment create --role "Contributor" \ --assignee "${PRINCIPAL_ID}" \ --scope "/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourcegroups/${AZURE_RESOURCE_GROUP}"
Een federatieve identiteitsreferentie instellen
Maak de federatieve identiteitsreferentie tussen de beheerde identiteit, de AKS OIDC-verlener en het onderwerp met behulp van de opdracht 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
Notitie
Voordat deze stap is voltooid, blijft de
gpu-provisioner
controllerpod de status van de crashlus behouden. Zodra de federatieve referentie is gemaakt, bereikt degpu-provisioner
controllerpod een actieve status en kunt u controleren of de implementatie wordt uitgevoerd in de volgende stappen.
Controleer of uw implementatie wordt uitgevoerd
Start de IMPLEMENTATIE van de KAITO GPU-inrichting opnieuw op uw pods met behulp van de
kubectl rollout restart
opdracht:kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
Controleer of de implementatie wordt uitgevoerd met behulp van de
kubectl get
opdracht:kubectl get deployment -n kube-system | grep kaito
Een standaard gehost AI-model implementeren
Implementeer het Falcon 7B-instruct-model vanuit de KAITO-modelopslagplaats met behulp van de
kubectl apply
opdracht.kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
Houd de wijzigingen in de live-resource in uw werkruimte bij met behulp van de
kubectl get
opdracht.kubectl get workspace workspace-falcon-7b-instruct -w
Notitie
Wanneer u de wijzigingen in de liveresource in uw werkruimte bijhoudt, moet u er rekening mee houden dat de gereedheid van de machine maximaal 10 minuten kan duren en dat de gereedheid van de werkruimte maximaal 20 minuten kan duren.
Controleer uw service en haal het IP-adres van de service op met behulp van de
kubectl get svc
opdracht.export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
Voer het Falcon 7B-instruct-model uit met een voorbeeldinvoer van uw keuze met behulp van de volgende
curl
opdracht: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\"}"
Resources opschonen
Als u deze resources niet meer nodig hebt, kunt u ze verwijderen om te voorkomen dat er extra Azure-rekenkosten in rekening worden gebracht.
Verwijder de KAITO-werkruimte en de bijbehorende resources met behulp van de
kubectl delete workspace
opdracht.kubectl delete workspace workspace-falcon-7b-instruct
Volgende stappen
Zie de upstream KAITO GitHub-opslagplaats voor meer modelimplementatieopties.
- MLOps voor AI- en machine learning-werkstromen op AKS verkennen
- Meer informatie over best practices voor MLOps voor uw AI-pijplijnen in AKS
- Meer informatie over het implementeren van GPU-workloads op AKS
Azure Kubernetes Service