Wdróż model AI w usłudze Azure Kubernetes Service (AKS) za pomocą dodatku operatora łańcucha narzędzi AI

Wdróż na platformie Azure

Z tego artykułu dowiesz się, jak używać dodatku łańcucha narzędzi sztucznej inteligencji do wydajnego samodzielnego hostowania dużych modeli językowych na platformie Kubernetes, obniżając koszty i złożoność zasobów, zwiększając dostosowywanie i utrzymując pełną kontrolę nad danymi.

Informacje o usłudze KAITO

Samoobsługowe hostowanie dużych modeli językowych (LLMs) na platformie Kubernetes zyskuje rozpęd wśród organizacji z obciążeniami wnioskowania na dużą skalę, takimi jak przetwarzanie wsadowe, czatboty, agenci i aplikacje oparte na sztucznej inteligencji. Organizacje te często mają dostęp do komercyjnych procesorów graficznych (GPU) i szukają alternatyw dla kosztownych modeli cenowych API rozliczanych za token, które mogą szybko wymknąć się spod kontroli. Wielu z nich wymaga również możliwości precyzyjnego dostrajania lub dostosowywania swoich modeli, jednak możliwość ta jest zwykle ograniczana przez dostawców API o zamkniętym kodzie źródłowym. Ponadto firmy obsługujące poufne lub zastrzeżone dane - zwłaszcza w sektorach regulowanych, takich jak finanse, opieka zdrowotna lub obrona - określają priorytety samodzielnego hostingu, aby zachować ścisłą kontrolę nad danymi i zapobiegać narażeniu za pośrednictwem systemów innych firm.

Aby sprostać tym i innym potrzebom, Kubernetes AI Toolchain Operator (KAITO), projekt Cloud Native Computing Foundation (CNCF) w fazie Sandbox, upraszcza proces wdrażania obciążeń open source opartych na LLM oraz zarządzania nimi w Kubernetes. KAITO integruje się z vLLM, silnikiem wnioskowania o wysokiej przepustowości, zaprojektowanym do wydajnej obsługi dużych modeli językowych. VLLM jako aparat wnioskowania pomaga zmniejszyć wymagania dotyczące pamięci i procesora GPU bez znacznego pogorszenia dokładności.

Zarządzany dodatek operatora łańcucha narzędzi AI, zbudowany w oparciu o projekt open source KAITO, oferuje modułową konfigurację typu plug and play, która pozwala zespołom szybko wdrażać modele i udostępniać je za pośrednictwem produkcyjnych interfejsów API. Zawiera wbudowane funkcje, takie jak interfejsy API zgodne z OpenAI, formatowanie promptów oraz obsługa odpowiedzi strumieniowych. Po wdrożeniu w klastrze usługi AKS funkcja KAITO zapewnia, że dane pozostają w kontrolowanym środowisku organizacji, zapewniając bezpieczną, zgodną alternatywę dla interfejsów API LLM hostowanych w chmurze.

Zanim rozpoczniesz

  • Artykuł zakłada podstawową znajomość pojęć Kubernetes. Aby uzyskać więcej informacji, zobacz Podstawowe pojęcia dotyczące platformy Kubernetes dla usługi AKS.
  • Aby zapoznać się z listą obsługiwanych modeli i domyślną konfiguracją zasobów, zobacz dokument GitHub KAITO.
  • Dodatek operatora zestawu narzędzi SI jest zwykle opóźniony o jedno wydanie względem najnowszej źródłowej wersji KAITO. Weź to pod uwagę podczas wybierania modelu z repozytorium modeli KAITO.

Ograniczenia

  • Windows Ta wersja SKU systemu operacyjnego nie jest obecnie obsługiwana.
  • Rozmiary maszyn wirtualnych GPU firmy AMD nie są obsługiwane instanceType w obszarze roboczym KAITO.
  • Rozmiary maszyn wirtualnych korzystające z procesorów graficznych NVIDIA starszych niż te oparte na architekturze Ampere (takich jak T4, V100, M60 i K80) nie są obsługiwane. Interfejs KAITO wymaga procesorów GPU FIRMY NVIDIA z funkcją obliczeniową CUDA w wersji 8.0 lub nowszej.
  • Dodatek AI Toolchain Operator jest dostępny w publicznych regionach platformy Azure.
  • Operacje zatrzymywania i uruchamiania usługi AKS (az aks stop/az aks start) nie są w pełni obsługiwane w przypadku klastrów z aktywnymi obszarami roboczymi KAITO. W niektórych scenariuszach operacje uruchamiania mogą prowadzić do konfliktów podczas uzgadniania puli węzłów, błędów aprowizacji lub osieroconych zasobów obliczeniowych.

Wymagania wstępne

  • Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

    • Jeśli masz wiele subskrypcji platformy Azure, upewnij się, że wybrano poprawną subskrypcję, w której zostaną utworzone zasoby i naliczono opłaty przy użyciu polecenia az account set .

      Uwaga

      Twoja subskrypcja platformy Azure musi mieć zalecany limit maszyn wirtualnych z procesorem GPU dla wdrożenia Twojego modelu w tym samym regionie Azure co zasoby AKS.

  • Interfejs wiersza polecenia platformy Azure w wersji 2.76.0 lub nowszej został zainstalowany i skonfigurowany. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

  • Klient wiersza polecenia Kubernetes, kubectl, został zainstalowany i skonfigurowany. Aby uzyskać więcej informacji, zobacz Instalowanie narzędzia kubectl.

Eksportowanie zmiennych środowiskowych

  • Aby uprościć kroki konfiguracji w tym artykule, można zdefiniować zmienne środowiskowe przy użyciu następujących poleceń. Pamiętaj, aby zastąpić wartości symboli zastępczych swoimi.

    export AZURE_SUBSCRIPTION_ID="mySubscriptionID"
    export AZURE_RESOURCE_GROUP="myResourceGroup"
    export AZURE_LOCATION="myLocation"
    export CLUSTER_NAME="myClusterName"
    

Włącz dodatek operatora łańcucha narzędzi AI w klastrze AKS

W poniższych sekcjach opisano sposób tworzenia klastra usługi AKS z włączonym dodatkiem operatora łańcucha narzędzi AI i wdrażania domyślnego hostowanego modelu sztucznej inteligencji.

Utwórz klaster AKS z włączonym dodatkiem operatora AI

  1. Utwórz grupę zasobów platformy Azure przy użyciu polecenia az group create .

    az group create --name $AZURE_RESOURCE_GROUP --location $AZURE_LOCATION
    
  2. Utwórz klaster AKS z włączonym dodatkiem narzędzi AI, używając polecenia az aks create z opcjami --enable-ai-toolchain-operator i --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. W istniejącym klastrze AKS można włączyć dodatek operatora narzędzi AI, używając polecenia az aks update.

    az aks update --name $CLUSTER_NAME \
            --resource-group $AZURE_RESOURCE_GROUP \
            --enable-ai-toolchain-operator \
            --enable-oidc-issuer
    

Nawiązywanie połączenia z klastrem

  1. Skonfiguruj kubectl, aby połączyć się z klastrem za pomocą polecenia az aks get-credentials.

    az aks get-credentials --resource-group $AZURE_RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Sprawdź połączenie z klastrem przy użyciu polecenia kubectl get.

    kubectl get nodes
    

Wdrażanie domyślnego hostowanego modelu sztucznej inteligencji

Usługa KAITO oferuje szereg małych i dużych modeli językowych hostowanych jako publiczne obrazy kontenerów, które można wdrożyć w jednym kroku przy użyciu obszaru roboczego KAITO. Możesz przeglądać gotowe obrazy LLM dostępne w rejestrze modeli KAITO. W tej sekcji jako przykład użyjemy wydajnego, multimodalnego modelu językowego Microsoft Phi-4-mini:

  1. Wdróż predefiniowaną konfigurację modelu Phi-4-mini instruct do wnioskowania z repozytorium modeli KAITO za pomocą polecenia kubectl apply.

    kubectl apply -f https://raw.githubusercontent.com/kaito-project/kaito/refs/heads/main/examples/inference/kaito_workspace_phi_4_mini.yaml
    
  2. Śledź na żywo zmiany zasobów w obszarze roboczym przy użyciu polecenia kubectl get.

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

    Uwaga

    Podczas śledzenia wdrożenia obszaru roboczego KAITO należy pamiętać, że gotowość maszyny może potrwać do 10 minut, a gotowość obszaru roboczego do 20 minut w zależności od rozmiaru modelu.

  3. Sprawdź usługę wnioskowania i uzyskaj adres IP usługi przy użyciu kubectl get svc polecenia .

    export SERVICE_IP=$(kubectl get svc workspace-phi-4-mini -o jsonpath='{.spec.clusterIP}')
    
  4. Przetestuj usługę inferencji Phi-4-mini na wybranym przez siebie przykładzie danych wejściowych, używając formatu interfejsu API OpenAI chat completions:

    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
           }'
    

Wdróż niestandardowy lub specjalizowany dziedzinowo model LLM

Modele LLM open source są często trenowane w różnych kontekstach i dziedzinach, a hostowane predefiniowane konfiguracje modeli nie zawsze odpowiadają wymaganiom Twojej aplikacji lub danych. W takim przypadku KAITO obsługuje również wdrażanie na potrzeby inferencji nowszych lub specyficznych dla danej dziedziny modeli językowych z HuggingFace. Wypróbuj wdrożenie wnioskowania modelu niestandardowego za pomocą narzędzia KAITO, postępując zgodnie z tym artykułem.

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.

  1. Usuń obszar roboczy KAITO przy użyciu kubectl delete workspace polecenia .

    kubectl delete workspace workspace-phi-4-mini
    
  2. Należy ręcznie usunąć pule węzłów GPU przydzielone przez wdrożenie KAITO. Użyj etykiety węzła utworzonej przez obszar roboczy Phi-4-mini instruct, aby za pomocą polecenia az aks nodepool list uzyskać nazwę puli węzłów. W tym przykładzie etykieta węzła to "kaito.sh/workspace": "workspace-phi-4-mini".

    az aks nodepool list --resource-group $AZURE_RESOURCE_GROUP --cluster-name $CLUSTER_NAME
    
  3. Usuń pulę węzłów o tej nazwie z klastra usługi AKS i powtórz kroki opisane w tej sekcji dla każdego obszaru roboczego USŁUGI KAITO, który zostanie usunięty.

Typowe scenariusze rozwiązywania problemów

Po zastosowaniu obszaru roboczego wnioskowania przy użyciu modelu KAITO, gotowość i warunki zasobów mogą nie zostać zaktualizowane na True z następujących powodów:

Następne kroki

Dowiedz się więcej o opcjach wdrażania modelu KAITO poniżej: