Bereitstellen eines KI-Modells auf Azure Kubernetes Service (AKS) mit dem KI-Toolchain-Betreiber (Vorschau)
Der KI-Toolkette-Operator (KAITO) ist ein verwaltetes Add-On für AKS, das die Ausführung von OSS-KI-Modellen auf Ihren AKS-Clustern vereinfacht. Der KI-Toolkette-Operator stellt automatisch die erforderlichen GPU-Knoten bereit und richtet den zugeordneten Ableitungsserver als Endpunktserver für Ihre KI-Modelle ein. Die Verwendung dieses Add-Ons reduziert Ihre Onboardingzeit und ermöglicht es Ihnen, sich auf die Nutzung und Entwicklung von KI-Modellen und nicht auf die Infrastruktureinrichtung zu konzentrieren.
In diesem Artikel erfahren Sie, wie Sie das KI-Toolkette-Operator-Add-On aktivieren und ein KI-Modell auf AKS bereitstellen.
Wichtig
AKS-Previewfunktionen stehen gemäß dem Self-Service- und Aktivierungsprinzip zur Verfügung. Vorschauversionen werden „wie besehen“ und „wie verfügbar“ bereitgestellt und sind von Service Level Agreements und der Herstellergarantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:
Voraussetzungen
- Für diesen Artikel werden Grundkenntnisse in Bezug auf die Kubernetes-Konzepte vorausgesetzt. Weitere Informationen finden Sie unter Grundlegende Kubernetes-Konzepte für AKS.
- Informationen zu allen gehosteten Modellrückschlussbildern und empfohlener Infrastruktureinrichtung finden Sie im KAITO GitHub-Repository.
- Das Add-On „KI-Toolchain-Betreiber“ unterstützt derzeit die KAITO-Version 0.0.1.0. Berücksichtigen Sie dies, wenn Sie sich für ein Modell aus dem KAITO-Modellrepository entscheiden.
Voraussetzungen
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Wenn Sie über mehrere Azure-Abonnements verfügen, stellen Sie sicher, dass Sie das richtige Abonnement auswählen, in dem die Ressourcen mit dem Befehl az account set erstellt und in Rechnung gestellt werden.
Hinweis
Das verwendete Abonnement muss über ein GPU-VM-Kontingent für die Bereitstellung des von Ihnen ausgewählten Modells verfügen.
Version 2.47.0 oder höher der Azure CLI installiert und konfiguriert. Führen Sie
az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI.Installation und Konfiguration des Kubernetes-Befehlszeilenclients kubectl. Weitere Informationen finden Sie unter Installieren von kubectl.
Registrieren Sie die KI-Toolchain-Betreiber Add-On Feature-Flag.
Installieren Sie die Azure CLI-Vorschauerweiterung
Installieren Sie die Azure CLI Vorschauerweiterung mithilfe des Befehls az extension add.
az extension add --name aks-preview
Aktualisieren Sie die Erweiterung, um sicherzustellen, dass Sie die neueste Version haben, indem Sie den Befehl az extension update verwenden.
az extension update --name aks-preview
Registrieren der Add-On-Featureflagge für den KI-Toolchain-Betreibers
Registrieren Sie die Feature-Flag AIToolchainOperatorPreview mithilfe des Befehls az feature register.
az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Es dauert einige Minuten, bis die Registrierung abgeschlossen ist.
Verifizieren Sie die Registrierung mithilfe des Befehls az feature show.
az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Exportieren von Umgebungsvariablen
Um die Konfigurationsschritte in diesem Artikel zu vereinfachen, können Sie Umgebungsvariablen mithilfe der folgenden Befehle definieren. Ersetzen Sie die Platzhalterwerte durch Ihre eigenen Werte.
export AZURE_SUBSCRIPTION_ID="mySubscriptionID" export AZURE_RESOURCE_GROUP="myResourceGroup" export AZURE_LOCATION="myLocation" export CLUSTER_NAME="myClusterName"
Aktivieren des KI-Toolkette-Operator-Add-Ons auf einem AKS-Cluster
In den folgenden Abschnitten wird beschrieben, wie Sie ein AKS-Cluster mit aktiviertem KI-Toolchain-Betreiber-Add-On erstellen und ein standardmäßiges gehostetes KI-Modell bereitstellen.
Erstellen eines AKS-Clusters mit aktiviertem KI-Toolchain-Betreiber-Add-On
Erstellen Sie mit dem Befehl az group create eine Azure-Ressourcengruppe.
az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
Erstellen Sie einen AKS-Cluster mit aktiviertem KI-Toolchain-Betreiber-Add-On mithilfe des Befehls az aks create mit den Flags
--enable-ai-toolchain-operator
und--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
Hinweis
AKS erstellt eine verwaltete Identität, nachdem Sie das KI-Toolkette-Operator-Add-On aktiviert haben. Die verwaltete Identität wird verwendet, um GPU-Knotenpools im verwalteten AKS-Cluster zu erstellen. Die richtigen Berechtigungen müssen manuell festgelegt werden, wenn Sie die in den folgenden Abschnitten eingeführten Schritte ausführen.
Auf einem vorhandenen AKS-Cluster können Sie das KI-Toolchain-Betreiber-Add-On mit dem Befehl az aks update aktivieren.
az aks update --name ${CLUSTER_NAME} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator
Herstellen einer Clusterverbindung
Mit dem Befehl az aks get-credentials können Sie
kubectl
für die Verbindungsherstellung mit Ihrem Cluster konfigurieren.az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
Überprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls
kubectl get
.kubectl get nodes
Exportieren von Umgebungsvariablen
Exportieren Sie Umgebungsvariablen für die MC-Ressourcengruppe, Prinzipal-ID-Identität und die KAITO-ID-Identität mithilfe der folgenden Befehle:
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}"
Abrufen des AKS OpenID Connect (OIDC)-Ausstellers
Rufen Sie die AKS OIDC Aussteller-URL ab, und exportieren Sie sie als Umgebungsvariable:
export AKS_OIDC_ISSUER=$(az aks show --resource-group "${AZURE_RESOURCE_GROUP}" \ --name "${CLUSTER_NAME}" \ --query "oidcIssuerProfile.issuerUrl" \ -o tsv)
Erstellen einer Rollenzuweisung für den Dienstprinzipal
Erstellen Sie mithilfe des Befehls az role assignment create eine neue Rollenzuweisung für den Dienstprinzipal.
az role assignment create --role "Contributor" \ --assignee "${PRINCIPAL_ID}" \ --scope "/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourcegroups/${AZURE_RESOURCE_GROUP}"
Einrichten von Anmeldeinformationen für eine Verbundidentität
Erstellen Sie mit dem Befehl az identity federated-credential create die Verbundidentitätsberechtigung zwischen der verwalteten Identität, dem AKS-OIDC-Aussteller und dem Antragsteller.
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
Hinweis
Bevor dieser Schritt abgeschlossen ist, verbleibt der
gpu-provisioner
-Controller-Pod in einem Absturzschleifenstatus. Nachdem die Verbundanmeldeinformationen erstellt wurden, erreicht dergpu-provisioner
-Controller-Pod einen ausgeführten Zustand, und Sie können überprüfen, ob die Bereitstellung in den folgenden Schritten ausgeführt wird.
Vergewissern Sie sich, dass Ihre Bereitstellung ausgeführt wird
Starten Sie die KAITO GPU Provisioner-Bereitstellung auf Ihren Pods neu, indem Sie den Befehl
kubectl rollout restart
verwenden:kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
Stellen Sie sicher, dass die Bereitstellung mit dem Befehl
kubectl get
ausgeführt wird:kubectl get deployment -n kube-system | grep kaito
Bereitstellen eines standardmäßig gehosteten KI-Modells
Stellen Sie mithilfe des
kubectl apply
-Befehls das Modell „falcon-7b-instruct“ aus dem KAITO-Modellrepository bereit.kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
Verfolgen Sie die Änderungen der Liveressourcen in Ihrem Arbeitsbereich mithilfe des
kubectl get
-Befehls.kubectl get workspace workspace-falcon-7b-instruct -w
Hinweis
Wenn Sie die Änderungen der Liveressourcen in Ihrem Arbeitsbereich nachverfolgen, beachten Sie, dass die Computerbereitschaft bis zu 10 Minuten und die Arbeitsbereichsbereitschaft bis zu 20 Minuten erfordern kann.
Überprüfen Sie Ihren Dienst und rufen Sie die IP-Adresse des Diensts mithilfe des
kubectl get svc
-Befehls ab.export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
Führen Sie das Modell „falcon-7b-instruct“ unter Verwendung des folgenden
curl
-Befehls mit einer Beispieleingabe Ihrer Wahl aus: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\"}"
Bereinigen von Ressourcen
Wenn Sie diese Ressourcen nicht mehr benötigen, können Sie sie löschen, um zusätzliche Azure-Computegebühren zu vermeiden.
Löschen Sie den KAITO-Arbeitsbereich und die zugehörigen Ressourcen mithilfe des
kubectl delete workspace
-Befehls.kubectl delete workspace workspace-falcon-7b-instruct
Nächste Schritte
Weitere Modellbereitstellungsoptionen finden Sie im Upstream KAITO GitHub-Repository.
- Erkunden von MLOps für KI- und Machine Learning-Workflows auf AKS
- Informationen zu bewährten MLOps-Methoden für Ihre KI-Pipelines auf AKS
- Erfahren Sie, wie Sie GPU-Workloads auf AKS bereitstellen
Azure Kubernetes Service