Freigeben über


Bereitstellen eines KI-Modells auf Azure Kubernetes Service (AKS) mit dem KI-Toolkettenoperator-Add-On

Bereitstellung in Azure

In diesem Artikel erfahren Sie, wie Sie das KI-Toolkette-Operator-Add-On verwenden, um große Sprachmodelle auf Kubernetes effizient selbst zu hosten, Kosten und Ressourcenkomplexität zu reduzieren, Anpassungen zu verbessern und die vollständige Kontrolle über Ihre Daten aufrechtzuerhalten.

Informationen zu KAITO

Self-Hosting großer Sprachmodelle (LLMs) auf Kubernetes gewinnt an Dynamik bei Organisationen mit Rückschlussarbeitslasten im Großen und Ganzen, z. B. Batchverarbeitung, Chatbots, Agents und KI-gesteuerte Anwendungen. Diese Organisationen haben häufig Zugriff auf kommerzielle GPUs und suchen nach Alternativen zu teuren API-Preismodellen pro Token, die schnell außer Kontrolle stehen können. Viele erfordern auch die Möglichkeit, ihre Modelle zu optimieren oder anzupassen, eine Funktion, die in der Regel durch Anbieter der geschlossenen Quell-API eingeschränkt ist. Darüber hinaus priorisieren Unternehmen, die sensible oder proprietäre Daten behandeln – insbesondere in regulierten Bereichen wie Finanzen, Gesundheitswesen oder Verteidigung – selbsthosting, um die strenge Kontrolle über Daten aufrechtzuerhalten und die Gefährdung durch Drittanbietersysteme zu verhindern.

Um diese Anforderungen und vieles mehr zu erfüllen, vereinfacht der Kubernetes AI Toolchain Operator (KAITO), ein Cloud Native Computing Foundation (CNCF) Sandbox-Projekt, den Prozess der Bereitstellung und Verwaltung von Open-Source-LLM-Workloads auf Kubernetes. KAITO integriert sich in vLLM, ein Modul mit hohem Durchsatz, das für die effiziente Bereitstellung großer Sprachmodelle entwickelt wurde. vLLM als Ableitungsmodul trägt dazu bei, arbeitsspeicher- und GPU-Anforderungen zu reduzieren, ohne die Genauigkeit erheblich zu beeinträchtigen.

Basierend auf dem Open-Source-KAITO-Projekt bietet das vom KI-Toolkette verwaltete Add-On ein modulares, Plug-and-Play-Setup, mit dem Teams Modelle schnell bereitstellen und über produktionsfähige APIs verfügbar machen können. Es enthält integrierte Features wie OpenAI-kompatible APIs, Eingabeaufforderungsformatierung und Streamingantwortunterstützung. Wenn sie auf einem AKS-Cluster bereitgestellt wird, stellt KAITO sicher, dass Daten in der kontrollierten Umgebung Ihrer Organisation verbleiben und eine sichere, kompatible Alternative zu in der Cloud gehosteten LLM-APIs bieten.

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.
  • Alle gehosteten modellvoreingestellten Bilder und die Standardressourcenkonfiguration finden Sie im KAITO GitHub-Repository.
  • Das KI-Toolkette-Operator-Add-On unterstützt derzeit KAITO Version 0.6.0. Bitte notieren Sie sich dies, wenn Sie ihre Auswahl des Modells aus dem KAITO-Modell-Repository berücksichtigen.

Einschränkungen

  • AzureLinux und Windows die Betriebssystem-SKU wird derzeit nicht unterstützt.
  • AMD-GPU-VM-Größen werden in einem KAITO-Arbeitsbereich nicht unterstützt instanceType .
  • Das KI-Toolkettenoperator-Add-On wird in öffentlichen Azure-Regionen unterstützt.

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

      Ihr Azure-Abonnement muss über ein GPU-VM-Kontingent verfügen, das für Ihre Modellbereitstellung in derselben Azure-Region wie Ihre AKS-Ressourcen empfohlen wird.

  • Version 2.76.0 oder höher der Azure-CLI muss installiert und konfiguriert sein. 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.

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

  1. Erstellen Sie mit dem Befehl az group create eine Azure-Ressourcengruppe.

    az group create --name $AZURE_RESOURCE_GROUP --location $AZURE_LOCATION
    
  2. 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-ai-toolchain-operator \
        --enable-oidc-issuer \
        --generate-ssh-keys
    
  3. 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-ai-toolchain-operator \
            --enable-oidc-issuer
    

Herstellen einer Clusterverbindung

  1. Mit dem Befehl kubectl können Sie für die Verbindungsherstellung mit Ihrem Cluster konfigurieren.

    az aks get-credentials --resource-group $AZURE_RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Überprüfen Sie die Verbindung mit dem Cluster mithilfe des Befehls kubectl get.

    kubectl get nodes
    

Bereitstellen eines standardmäßig gehosteten KI-Modells

KAITO bietet eine Reihe kleiner bis großer Sprachmodelle, die als öffentliche Containerimages gehostet werden und in einem Schritt mithilfe eines KAITO-Arbeitsbereichs bereitgestellt werden können. Sie können die vordefinierten LLM-Images durchsuchen, die in der KAITO-Modellregistrierungverfügbar sind. In diesem Abschnitt verwenden wir das leistungsstarke Microsoft Phi-4-Minisprachmodell als Beispiel:

  1. Stellen Sie die Phi-4-mini-Anweisungsmodellvoreinstellung für Rückschlüsse aus dem KAITO-Modell-Repository mithilfe des kubectl apply Befehls bereit.

    kubectl apply -f https://raw.githubusercontent.com/kaito-project/kaito/refs/heads/main/examples/inference/kaito_workspace_phi_4_mini.yaml
    
  2. Verfolgen Sie die Änderungen der Liveressourcen in Ihrem Arbeitsbereich mithilfe des kubectl get-Befehls.

    kubectl get workspace workspace-phi-4-mini -w
    

    Hinweis

    Beachten Sie beim Nachverfolgen der KAITO-Arbeitsbereichsbereitstellung, dass die Computerbereitschaft bis zu 10 Minuten dauern kann und die Arbeitsbereichsbereitschaft je nach Größe Ihres Modells bis zu 20 Minuten dauern kann.

  3. Überprüfen Sie Ihren Rückschlussdienst, und rufen Sie die DIENST-IP-Adresse mithilfe des kubectl get svc Befehls ab.

    export SERVICE_IP=$(kubectl get svc workspace-phi-4-mini -o jsonpath='{.spec.clusterIP}')
    
  4. Testen Sie den Phi-4-Mini-Ableitungsdienst mit einer Beispieleingabe Ihrer Wahl mithilfe des OpenAI-Chat-Abschluss-API-Formats:

    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": "phi-4-mini-instruct",
            "prompt": "How should I dress for the weather today?",
            "max_tokens": 10
           }'
    

Bereitstellen eines benutzerdefinierten oder domänenspezifischen LLM

Open-Source-LLMs werden häufig in verschiedenen Kontexten und Domänen trainiert, und die Voreinstellungen des gehosteten Modells entsprechen möglicherweise nicht immer den Anforderungen Ihrer Anwendung oder Ihrer Daten. In diesem Fall unterstützt KAITO auch die Ableitung der Bereitstellung neuerer oder domänenspezifischer Sprachmodelle von HuggingFace. Probieren Sie anhand dieses Artikels eine benutzerdefinierte Modellrückschlussbereitstellung mit KAITO aus.

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.

  1. Löschen Sie den KAITO-Arbeitsbereich mithilfe des kubectl delete workspace Befehls.

    kubectl delete workspace workspace-phi-4-mini
    
  2. Sie müssen die gpu-Knotenpools, die von der KAITO-Bereitstellung bereitgestellt werden, manuell löschen. Verwenden Sie die von Phi-4-mini erstellte Knotenbezeichnung, um den Namen des Knotenpools mithilfe des az aks nodepool list Befehls abzurufen. In diesem Beispiel lautet die Knotenbezeichnung "kaito.sh/workspace": "workspace-phi-4-mini".

    az aks nodepool list --resource-group $AZURE_RESOURCE_GROUP --cluster-name $CLUSTER_NAME
    
  3. Löschen Sie den Knotenpool mit diesem Namen aus Ihrem AKS-Cluster, und wiederholen Sie die Schritte in diesem Abschnitt für jeden KAITO-Arbeitsbereich, der entfernt wird.

Häufige Problembehandlungsszenarien

Nach dem Anwenden des KAITO-Modell-Inferenz-Arbeitsbereichs könnten Ihre Ressourcenbereitschaft und Arbeitsbereichsbedingungen aus den folgenden Gründen möglicherweise nicht zu True aktualisiert werden:

  • Ihr Azure-Abonnement verfügt nicht über ein Kontingent für den minimalen GPU-Instanztyp, der in Ihrem KAITO-Arbeitsbereich angegeben ist. Sie müssen eine Kontingenterhöhung für die GPU-VM-Familie in Ihrem Azure-Abonnement anfordern.
  • Der GPU-Instanztyp ist in Ihrer AKS-Region nicht verfügbar. Bestätigen Sie die Verfügbarkeit der GPU-Instanz in Ihrer spezifischen Region , und wechseln Sie zur Azure-Region, wenn Ihre GPU-VM-Familie nicht verfügbar ist.

Nächste Schritte

Weitere Informationen zu den Bereitstellungsoptionen des KAITO-Modells finden Sie unten: