Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’opérateur de chaîne d’outils IA (KAITO) est un module complémentaire managé qui simplifie l’expérience d’exécution de modèles IA open source et privés sur votre cluster AKS. KAITO réduit le temps nécessaire pour intégrer des modèles et approvisionner des ressources, ce qui permet un prototypage et un développement de modèles IA plus rapides plutôt que la gestion de l’infrastructure.
Cet article vous montre comment activer le module complémentaire de gestionnaire de chaîne d'outils IA et déployer un modèle d'IA pour l'inférence sur AKS.
Important
Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les préversions sont fournies « en l’état » et « en fonction des disponibilités », et sont exclues des contrats de niveau de service et de la garantie limitée. Les préversions AKS sont, dans la mesure du possible, partiellement couvertes par le service clientèle. Telles quelles, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :
Avant de commencer
- Cet article suppose une compréhension élémentaire des concepts liés à Kubernetes. Pour plus d’informations, consultez Concepts de base de Kubernetes pour AKS.
- Pour toutes les images prédéfinies de modèle hébergé et la configuration des ressources par défaut, consultez le référentiel GitHub KAITO.
- Le module complémentaire d’opérateur de chaîne d’outils IA prend actuellement en charge KAITO version 0.4.4. Notez cette remarque en tenant compte de votre choix de modèle à partir du référentiel de modèles KAITO.
Prérequis
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Si vous disposez de plusieurs abonnements Azure, assurez-vous de sélectionner le bon abonnement dans lequel les ressources seront créées et facturées à l’aide de la commande ensemble de comptes az.
Remarque
Votre abonnement Azure doit avoir un quota de machines virtuelles GPU recommandé pour votre déploiement de modèle dans la même région Azure que vos ressources AKS.
Azure CLI version 2.47.0 ou ultérieure installé et configuré. Exécutez
az --version
pour trouver la version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.Le client de ligne de commande Kubernetes, kubectl, installé et configuré. Pour plus d’informations, consultez Install kubectl.
Inscrire l’indicateur de fonctionnalité de module complémentaire de la chaîne d’outils IA.
Installer l’extension Azure CLI en préversion
Installez l’extension azure CLI en préversion à l’aide de la commande az extension ajouter .
az extension add --name aks-preview
Mettez à jour l’extension pour vous assurer que vous disposez de la dernière version à l’aide de la commande mise à jour de l'extension az .
az extension update --name aks-preview
Enregistrez l’indicateur de fonctionnalité complémentaire de l’opérateur de la chaîne d’outils AI
Inscrivez l’indicateur de fonctionnalité AIToolchainOperatorPreview à l’aide de la commande registre des fonctionnalités az .
az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
L’inscription peut prendre quelques minutes.
Vérifiez l’enregistrement à l’aide de la commande émission de fonctionnalités az.
az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Exporter des variables d’environnement
Pour simplifier les étapes de configuration de cet article, vous pouvez définir des variables d’environnement à l’aide des commandes suivantes. Assurez-vous de remplacer les valeurs d’espace réservé par les vôtres.
export AZURE_SUBSCRIPTION_ID="mySubscriptionID" export AZURE_RESOURCE_GROUP="myResourceGroup" export AZURE_LOCATION="myLocation" export CLUSTER_NAME="myClusterName"
Activer le module complémentaire d’opérateur de chaîne d’outils d’IA sur un cluster AKS
Les sections suivantes décrivent comment créer un cluster AKS avec le module complémentaire d'opérateur de chaîne d'outils IA activé et déployer un modèle IA hébergé par défaut.
Créer un cluster AKS avec le module complémentaire d'opérateur de chaîne d'outils AI activé
Créez un groupe de ressources Azure en utilisant la commande az group create.
az group create --name $AZURE_RESOURCE_GROUP --location $AZURE_LOCATION
Créez un cluster AKS avec le module complémentaire d’opérateur de chaîne d’outils AI activé à l’aide de la commande az aks créer avec les indicateurs
--enable-ai-toolchain-operator
et--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
Remarque
AKS crée une identité managée une fois que vous avez activé le module complémentaire d’opérateur de chaîne d’outils d’IA. L'identité gérée est utilisée pour créer des pools de nœuds GPU dans le cluster AKS géré. Les autorisations appropriées doivent être définies manuellement en suivant les étapes présentées dans les sections suivantes.
Sur un cluster AKS existant, vous pouvez activer le module complémentaire d’opérateur de chaîne d’outils AI à l’aide de la commande az aks mise à jour.
az aks update --name $CLUSTER_NAME \ --resource-group $AZURE_RESOURCE_GROUP \ --enable-oidc-issuer \ --enable-ai-toolchain-operator
Se connecter au cluster
Configurez
kubectl
pour vous connecter à votre cluster à l’aide de la commande az aks obtenir les informations d'identification.az aks get-credentials --resource-group $AZURE_RESOURCE_GROUP --name $CLUSTER_NAME
Pour vérifier la connexion à votre cluster, exécutez la commande
kubectl get
.kubectl get nodes
Exporter des variables d’environnement
Exportez les variables d'environnement pour le groupe de ressources MC, l'identité de l'ID principal et l'identité KAITO à l'aide des commandes suivantes :
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}"
Obtenez l'émetteur AKS OpenID Connect (OIDC)
Obtenez l’URL de l’émetteur AKS OIDC et exportez-la en tant que variable d’environnement :
export AKS_OIDC_ISSUER=$(az aks show --resource-group $AZURE_RESOURCE_GROUP \ --name $CLUSTER_NAME \ --query "oidcIssuerProfile.issuerUrl" \ -o tsv)
Créer une attribution de rôle pour le principal de service
Créez une attribution de rôle pour le principal de service à l’aide de la commande az attribution de rôle créer .
az role assignment create --role "Contributor" \ --assignee $PRINCIPAL_ID \ --scope "/subscriptions/$AZURE_SUBSCRIPTION_ID/resourcegroups/$AZURE_RESOURCE_GROUP"
Établissez une identité fédérée à l’aide d’informations d’identification
Créez les informations d’identification d’identité fédérée entre l’identité managée, l’émetteur AKS OIDC et le sujet à l’aide de la commande az identité création d'informations d'identification fédérées.
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
Remarque
Avant de terminer cette étape, le pod de contrôleur
gpu-provisioner
doit rester dans un état de boucle d’incident. Une fois les informations d’identification fédérées créées, le pod de contrôleurgpu-provisioner
doit être dans un état en cours d’exécution. Vous pourrez vérifier que le déploiement fonctionne dans les étapes suivantes.
Vérifiez que votre déploiement est en cours d'exécution
Redémarrez le déploiement du fournisseur de GPU KAITO sur vos pods à l'aide de la commande
kubectl rollout restart
:kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
Vérifiez que le déploiement du provisionneur GPU est en cours d’exécution à l’aide de la
kubectl get
commande :kubectl get deployment -n kube-system | grep kaito
Déployer un modèle d’IA hébergé par défaut
Déployez le modèle prédéfini Falcon 7B-instruct depuis le référentiel de modèles KAITO en utilisant la commande
kubectl apply
.kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
Suivez les modifications des ressources en direct dans votre espace de travail à l’aide de la commande
kubectl get
.kubectl get workspace workspace-falcon-7b-instruct -w
Remarque
Lorsque vous suivez le déploiement de l’espace de travail KAITO, notez que la préparation de l’ordinateur peut prendre jusqu’à 10 minutes et que la préparation de l’espace de travail peut prendre jusqu’à 20 minutes en fonction de la taille de votre modèle.
Vérifiez votre service d’inférence et obtenez l’adresse IP du service à l’aide de la
kubectl get svc
commande.export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
Testez le service d’inférence Falcon 7B-instruct avec un exemple d’entrée de votre choix à l’aide du format d’API d’auto-complétion de conversation OpenAI :
kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- curl -X POST http://$SERVICE_IP/v1/completions -H "Content-Type: application/json" \ -d '{ "model": "falcon-7b-instruct", "prompt": "What is Kubernetes?", "max_tokens": 10 }'
Nettoyer les ressources
Si vous n’avez plus besoin de ces ressources, supprimez-les pour éviter des frais de calcul Azure supplémentaires inutiles.
Supprimez l’espace de travail KAITO à l’aide de la
kubectl delete workspace
commande.kubectl delete workspace workspace-falcon-7b-instruct
Vous devez supprimer manuellement les pools de nœuds GPU approvisionnés par le déploiement KAITO. Utilisez l'étiquette de nœud créée par l'espace de travail Falcon-7b instruct pour obtenir le nom du pool de nœuds à l'aide de la commande
az aks nodepool list
. Dans cet exemple, l’étiquette de nœud est « kaito.sh/workspace » : « workspace-falcon-7b-instruct ».az aks nodepool list --resource-group $AZURE_RESOURCE_GROUP --cluster-name $CLUSTER_NAME
Supprimez le pool de nœuds avec ce nom de votre cluster AKS et répétez les étapes décrites dans cette section pour chaque espace de travail KAITO qui sera supprimé.
Scénarios courants de résolution des problèmes
Après avoir appliqué l’espace de travail d’inférence du modèle KAITO, la préparation de vos ressources et les conditions de votre espace de travail peuvent ne pas être mises à jour à True
pour les raisons suivantes :
Vous ne disposez peut-être pas des autorisations suffisantes pour fonctionner sur le cluster AKS. Vérifiez que l’identité
ai-toolchain-operator-$CLUSTER_NAME
a été affectée au rôleContributor
à votre groupe de ressources Azure. Exécutez laaz role assignment list
commande et vérifiez que le résultat n’est pas vide :az role assignment list --scope /subscriptions/$AZURE_SUBSCRIPTION_ID/resourceGroups/$AZURE_RESOURCE_GROUP
Votre abonnement Azure n’a pas de quota pour le type d’instance GPU minimal spécifié dans votre espace de travail KAITO. Vous devez demander une augmentation de quota pour la famille de machines virtuelles GPU dans votre abonnement Azure.
Le type d’instance GPU n’est pas disponible dans votre région AKS. Vérifiez la disponibilité de l’instance GPU dans votre région spécifique et changez la région Azure si votre famille de machines virtuelles GPU n’est pas disponible.
Étapes suivantes
En savoir plus sur les options de déploiement de modèle KAITO ci-dessous :
- Ajustez un modèle avec le module complémentaire de chaîne d’outils IA sur AKS.
- Découvrir plus d’informations sur les meilleures pratiques MLOps pour vos pipelines d’IA sur AKS
- Intégrez un modèle personnalisé pour l’inférence KAITO sur AKS.
Azure Kubernetes Service