Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als AI-engineer of ontwikkelaar moet u mogelijk een prototype maken en AI-workloads implementeren met verschillende modelgewichten. AKS biedt de mogelijkheid om deductieworkloads te implementeren met behulp van opensource-voorinstellingen die de KAITO-modelcatalogus ondersteunt en beheert, of om modellen dynamisch te downloaden uit het HuggingFace-register tijdens runtime op uw AKS-cluster.
In dit artikel leert u hoe u een voorbeeld HuggingFace-model kunt onboarden voor inferentie met de AI-toolchain-operator-add-on, zonder dat u aangepaste afbeeldingen hoeft te beheren in Azure Kubernetes Service (AKS).
Vereiste voorwaarden
Een Azure-account met een actief abonnement. Als u geen account hebt, kunt u er gratis een maken.
Een AKS-cluster waarvoor de AI-toolchain-operator-add-on is ingeschakeld. Zie KAITO inschakelen in een AKS-cluster voor meer informatie.
Quotum voor de
Standard_NVadsA10_v5vm-familie (virtuele machine) in uw Azure-abonnement. Als u geen quotum voor deze VM-serie hebt, vraagt u een quotumverhoging aan.Notitie
Momenteel ondersteunt alleen de HuggingFace-runtime deductie met de kaito-sjabloon voor aangepaste modelimplementatie.
Een opensource-taalmodel kiezen in HuggingFace
In dit voorbeeld gebruiken we het HuggingFaceTB SmolLM2-1.7B-Instruct klein taalmodel. U kunt ook kiezen uit duizenden modellen voor het genereren van tekst die worden ondersteund op HuggingFace.
Maak verbinding met uw AKS-cluster met behulp van de
az aks get-credentialsopdracht.az aks get-credentials --resource-group <resource-group-name> --name <aks-cluster-name>Kloon de GitHub-opslagplaats van het KAITO-project met behulp van de
git cloneopdracht.git clone https://github.com/kaito-project/kaito.git
Uw modelinferentiewerkbelasting uitrollen met behulp van de KAITO-werkruimtesjabloon
Navigeer naar de
kaitomap en kopieer het YAML-voorbeeldmanifest voor de implementatie . Vervang de standaardwaarden in de volgende velden door de vereisten van uw model:-
instanceType: de VM-grootte voor de implementatie van de inferenceservice. Voor grotere modelgrootten kunt u een VIRTUELE machine in deStandard_NCads_A100_v4familie kiezen met een hogere geheugencapaciteit. -
MODEL_ID: De specifieke HuggingFace-id van je model, te vinden nahttps://huggingface.co/in de URL van de modelkaart. -
"--torch_dtype": Ingesteld op"bfloat16", dat wordt ondersteund op alle GPU-SKU's die DOOR KAITO worden ondersteund. - Gebruik voor dit voorbeeld
Standard_NV36ads_A10_v5als exemplaartype en het model HuggingFaceTB SmolLM2-1.7B-Instruct.
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-
Sla deze wijzigingen op in uw
custom-model-deployment.yamlbestand.Voer de implementatie uit in uw AKS-cluster met behulp van de
kubectl applyopdracht.kubectl apply -f custom-model-deployment.yaml
Uw aangepaste modelinferentieservice testen
Houd de wijzigingen in de live-resource in uw KAITO-werkruimte bij met behulp van de
kubectl get workspaceopdracht.kubectl get workspace workspace-custom-llm -wNotitie
Houd er rekening mee dat de gereedheid van de machine maximaal 10 minuten kan duren en dat de gereedheid van de werkruimte maximaal 20 minuten kan duren. Ga door naar de volgende stap alleen als de werkruimtestatus
Readyaangeeft.Zodra de werkruimte gereed is, stuurt u de deductieservice door naar uw lokale computer in een afzonderlijke terminal.
kubectl port-forward svc/workspace-custom-llm 5000:80Installeer de OpenAI Python-client.
pip install openaiSla het volgende script op als
test_inference.pyen voer het uit met behulp vanpython test_inference.py: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))
Hulpmiddelen opruimen
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-deductiewerkruimte met behulp van de kubectl delete workspace opdracht.
kubectl delete workspace workspace-custom-llm
Volgende stappen
In dit artikel hebt u geleerd hoe u een Hugging Face-model voor inferentie rechtstreeks aan uw AKS-cluster kunt toevoegen met de AI toolchain operator-add-on. Zie de volgende artikelen voor meer informatie over AI en machine learning in AKS: