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 inference-workloads te implementeren met behulp van opensource-voorinstellingen die standaard worden ondersteund en beheerd in het KAITO-modelregister of om dynamisch te downloaden van 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.
Voor deze voorbeeldimplementatie is een quotum vereist voor de
Standard_NCads_A100_v4vm-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"float16"compatibiliteit met V100 GPU's. Gebruik voor A100, H100 of nieuwere GPU's"bfloat16". - Voor dit voorbeeld gebruiken we
Standard_NC24ads_A100_v4als het exemplaartype en het HuggingFaceTB SmolLM2-1.7B-Instruct-model.
apiVersion: kaito.sh/v1beta1 kind: Workspace metadata: name: workspace-custom-llm resource: instanceType: "Standard_NC24ads_A100_v4" # 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 HuggingFace-model kunt integreren voor inferentie met de AI-toolchain-operator rechtstreeks in uw AKS-cluster. Zie de volgende artikelen voor meer informatie over AI en machine learning in AKS: