Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Als KI-Techniker oder Entwickler müssen Sie möglicherweise KI-Workloads mit unterschiedlichen Modellgewichten prototypieren und bereitstellen. AKS bietet die Möglichkeit, Inferenz-Workloads mithilfe von Open-Source-Voreinstellungen bereitzustellen, die der KAITO-Modellkatalog standardmäßig unterstützt und verwaltet, oder Modelle zur Laufzeit dynamisch aus der HuggingFace-Registry auf Ihren AKS-Cluster herunterzuladen.
In diesem Artikel erfahren Sie, wie Sie ein Beispiel-HuggingFace-Modell für das Ableiten mit dem KI-Toolkette-Operator-Add-On integrieren, ohne benutzerdefinierte Bilder auf Azure Kubernetes Service (AKS) verwalten zu müssen.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Falls Sie kein Konto besitzen, können Sie kostenlos eines erstellen.
Ein AKS-Cluster mit aktiviertem KI-Toolchain-Betreiber-Add-On. Weitere Informationen finden Sie unter Aktivieren von KAITO auf einem AKS-Cluster.
Kontingent für die
Standard_NVadsA10_v5VM-Familie (Virtual Machine) in Ihrem Azure-Abonnement. Wenn Sie kein Kontingent für diese VM-Familie haben, fordern Sie eine Kontingenterhöhung an.Hinweis
Derzeit unterstützt nur die HuggingFace-Laufzeit die Ableitung mit der benutzerdefinierten KAITO-Modellbereitstellungsvorlage.
Auswählen eines Open-Source-Sprachmodells aus HuggingFace
In diesem Beispiel verwenden wir das kleine Sprachmodell HuggingFaceTB SmolLM2-1.7B-Instruct. Alternativ können Sie aus Tausenden von Textgenerierungsmodellen wählen, die auf HuggingFace unterstützt werden.
Stellen Sie mithilfe des Befehls
az aks get-credentialseine Verbindung mit Ihrem AKS-Cluster her.az aks get-credentials --resource-group <resource-group-name> --name <aks-cluster-name>Klonen Sie das KAITO-Projekt GitHub-Repository mit dem
git cloneBefehl.git clone https://github.com/kaito-project/kaito.git
Stellen Sie Ihre Modellrückschluss-Workload mithilfe der KAITO-Arbeitsbereichsvorlage bereit.
Navigieren Sie zum
kaitoVerzeichnis, und kopieren Sie das YAML-Manifest der Beispielbereitstellung . Ersetzen Sie die Standardwerte in den folgenden Feldern durch die Anforderungen Ihres Modells:-
instanceType: Die VM-Größe für Ihre Inference-Dienstbereitstellung. Bei größeren Modellgrößen können Sie einen virtuellen Computer in derStandard_NCads_A100_v4Familie mit einer höheren Speicherkapazität auswählen. -
MODEL_ID: Der spezifische HuggingFace-Bezeichner Ihres Modells, der nachhttps://huggingface.co/der Modellkarten-URL gefunden werden kann. -
"--torch_dtype": Auf"bfloat16"festgelegt, was von allen GPU-SKUs unterstützt wird, die von KAITO unterstützt werden. - Verwenden Sie
Standard_NV36ads_A10_v5in diesem Beispiel als Instanztyp und als HuggingFaceTB SmolLM2-1.7B-Instruct-Modell .
apiVersion: kaito.sh/v1beta1 kind: Workspace metadata: name: workspace-custom-llm resource: instanceType: "Standard_NV36ads_A10_v5" # Required VM SKU based on model requirements labelSelector: matchLabels: apps: custom-llm inference: template: spec: containers: - name: custom-llm-container image: mcr.microsoft.com/aks/kaito/kaito-base:0.2.0 # KAITO base image which includes hf runtime livenessProbe: failureThreshold: 3 httpGet: path: /health port: 5000 scheme: HTTP initialDelaySeconds: 600 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 readinessProbe: failureThreshold: 3 httpGet: path: /health port: 5000 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: requests: nvidia.com/gpu: 1 # Request 1 GPU; adjust as needed limits: nvidia.com/gpu: 1 # Optional: Limit to 1 GPU command: - "accelerate" args: - "launch" - "--num_processes" - "1" - "--num_machines" - "1" - "--gpu_ids" - "all" - "tfs/inference_api.py" - "--pipeline" - "text-generation" - "--trust_remote_code" - "--allow_remote_files" - "--pretrained_model_name_or_path" - "HuggingFaceTB/SmolLM2-1.7B-Instruct" # The model's HuggingFace identifier - "--torch_dtype" - "bfloat16" volumeMounts: - name: dshm mountPath: /dev/shm volumes: - name: dshm emptyDir: medium: Memory-
Speichern Sie diese Änderungen in Ihrer
custom-model-deployment.yamlDatei.Führen Sie die Bereitstellung in Ihrem AKS-Cluster mit dem Befehl
kubectl applyaus.kubectl apply -f custom-model-deployment.yaml
Testen Ihres benutzerdefinierten Modellrückschluss-Service
Verfolgen Sie die Änderungen der Liveressourcen in Ihrem KAITO-Arbeitsbereich mithilfe des
kubectl get workspaceBefehls.kubectl get workspace workspace-custom-llm -wHinweis
Beachten Sie, dass die Computerbereitschaft bis zu 10 Minuten dauern kann, und die Arbeitsbereichsbereitschaft bis zu 20 Minuten. Fahren Sie mit dem nächsten Schritt fort, sobald der Arbeitsbereichsstatus angezeigt wird
Ready.Sobald der Arbeitsbereich bereit ist, leiten Sie den Port des Ableitungsdienstes in einem separaten Terminal auf Ihre lokale Maschine weiter.
kubectl port-forward svc/workspace-custom-llm 5000:80Installieren Sie den OpenAI Python-Client.
pip install openaiSpeichern Sie das folgende Skript als
test_inference.pyund führen Sie es mitpython test_inference.pyaus:from openai import OpenAI client = OpenAI( base_url="http://127.0.0.1:5000/v1", api_key="unused", ) response = client.chat.completions.create( model="workspace-custom-llm", messages=[{"role": "user", "content": "What sport should I play in rainy weather?"}], max_tokens=400, stream=True, ) print("".join(chunk.choices[0].delta.content or "" for chunk in response))
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-Rückschlussarbeitsbereich mithilfe des kubectl delete workspace Befehls.
kubectl delete workspace workspace-custom-llm
Nächste Schritte
In diesem Artikel haben Sie gelernt, wie Sie ein Hugging Face-Modell für Inferenz mit dem Add-On des AI Toolchain Operators direkt in Ihren AKS-Cluster einbinden. Weitere Informationen zu KI und maschinellem Lernen auf AKS finden Sie in den folgenden Artikeln: