Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jako inżynier lub deweloper sztucznej inteligencji może być konieczne utworzenie prototypu i wdrożenie obciążeń sztucznej inteligencji z różnymi wagami modeli. Usługa AKS umożliwia wdrażanie obciążeń wnioskowania przy użyciu ustawień wstępnych typu open source obsługiwanych poza urządzeniem i zarządzanych w rejestrze modeli KAITO lub dynamicznego pobierania z rejestru HuggingFace w czasie wykonywania do klastra usługi AKS.
Z tego artykułu dowiesz się, jak wdrożyć przykładowy model HuggingFace do inferencji za pomocą dodatku operatorskiego łańcucha narzędzi AI bez konieczności zarządzania obrazami niestandardowymi w usłudze Azure Kubernetes Service (AKS).
Wymagania wstępne
Konto platformy Azure z aktywną subskrypcją. Jeśli nie masz konta, możesz go utworzyć bezpłatnie.
Klaster AKS z włączonym dodatkiem operatora łańcucha narzędzi AI. Aby uzyskać więcej informacji, zobacz Włączanie usługi KAITO w klastrze usługi AKS.
Przykładowe wdrożenie wymaga limitu zasobów
Standard_NCads_A100_v4dla rodziny maszyn wirtualnych w subskrypcji Azure. Jeśli nie masz limitu przydziału dla tej rodziny maszyn wirtualnych, poproś o zwiększenie limitu przydziału.Uwaga
Obecnie tylko środowisko uruchomieniowe HuggingFace obsługuje wnioskowanie przy użyciu niestandardowego szablonu wdrażania modelu KAITO.
Wybieranie modelu językowego typu open source z narzędzia HuggingFace
W tym przykładzie używamy małego modelu języka BigScience Bloom-1B7 . Alternatywnie możesz wybrać spośród tysięcy modeli generowania tekstu obsługiwanych w aplikacji HuggingFace.
Połącz się z klastrem AKS za pomocą polecenia
az aks get-credentials.az aks get-credentials --resource-group <resource-group-name> --name <aks-cluster-name>Sklonuj repozytorium GitHub projektu KAITO przy użyciu
git clonepolecenia .git clone https://github.com/kaito-project/kaito.git
Rozmieść swoje obciążenie związane z wnioskowaniem modelu przy użyciu szablonu obszaru roboczego KAITO
Przejdź do katalogu
kaitoi skopiuj manifest YAML przykładowego wdrożenia. Zastąp wartości domyślne w następujących polach wymaganiami modelu. W tym przykładzie określimy identyfikator modelu Bloom-1b7 HuggingFace dla modelu BigScience Bloom-1B7 :-
instanceType: minimalny rozmiar maszyny wirtualnej dla tego wdrożenia usługi wnioskowania toStandard_NC24ads_A100_v4. W przypadku większych rozmiarów modeli można wybrać maszynę wirtualną wStandard_NCads_A100_v4rodzinie o większej pojemności pamięci. -
MODEL_ID: zastąp element określonym identyfikatorem HuggingFace modelu, który można znaleźć pohttps://huggingface.co/w adresie URL karty modelu. -
"--torch_dtype": Ustaw na"float16"dla zgodności z procesorami GPU V100. W przypadku procesorów GPU A100, H100 lub nowszych użyj polecenia"bfloat16". - (Opcjonalnie)
HF_TOKEN: określ wartości w tej sekcji tylko wtedy, gdy wdrażasz prywatny lub ogrodzony model Hugging Face na potrzeby wnioskowania.
apiVersion: kaito.sh/v1beta1 kind: Workspace metadata: name: workspace-custom-llm resource: instanceType: "Standard_NC24ads_A100_v4" # Replace with the 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.0.8 # 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" - "bloom-1b7" - "--torch_dtype" - "bfloat16" # env: # HF_TOKEN is required only for private or gated Hugging Face models # Uncomment and configure this block if needed # - name: HF_TOKEN # valueFrom: # secretKeyRef: # name: hf-token-secret # Replace with your Kubernetes Secret name # key: HF_TOKEN # Replace with the specific key holding the token volumeMounts: - name: dshm mountPath: /dev/shm volumes: - name: dshm emptyDir: medium: Memory-
Zapisz te zmiany w
custom-model-deployment.yamlpliku.Uruchom wdrożenie w klastrze AKS przy użyciu polecenia
kubectl apply.kubectl apply -f custom-model-deployment.yaml
Przetestuj usługę wnioskowania modelu niestandardowego
Śledź zmiany zasobów na żywo w obszarze roboczym KAITO przy użyciu
kubectl get workspacepolecenia.kubectl get workspace workspace-custom-llm -wUwaga
Należy pamiętać, że gotowość maszyny może potrwać do 10 minut, a gotowość obszaru roboczego do 20 minut.
Sprawdź usługę wnioskowania modelu językowego i uzyskaj adres IP usługi przy użyciu
kubectl get svcpolecenia .export SERVICE_IP=$(kubectl get svc workspace-custom-llm -o jsonpath='{.spec.clusterIP}')Przetestuj działanie swojej niestandardowej usługi wnioskowania z wybraną przez siebie próbką danych wejściowych, używając formatu interfejsu API OpenAI.
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": "bloom-1b7", "prompt": "What sport should I play in rainy weather?", "max_tokens": 20 }'
Czyszczenie zasobów
Jeśli nie potrzebujesz już tych zasobów, możesz je usunąć, aby uniknąć naliczania dodatkowych opłat za zasoby obliczeniowe platformy Azure.
Usuń obszar roboczy wnioskowania KAITO przy użyciu kubectl delete workspace polecenia .
kubectl delete workspace workspace-custom-llm
Następne kroki
W tym artykule przedstawiono sposób dołączania modelu HuggingFace na potrzeby wnioskowania za pomocą dodatku łańcucha narzędzi AI bezpośrednio do klastra usługi AKS. Aby dowiedzieć się więcej na temat sztucznej inteligencji i uczenia maszynowego w usłudze AKS, zobacz następujące artykuły: