Udostępnij przez


Wdrażanie modelu sztucznej inteligencji w usłudze Azure Kubernetes Service (AKS) za pomocą dodatku ł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 procesorów GPU klasy komercyjnej i szukają alternatyw dla kosztowych modeli cen interfejsu API tokenów, które mogą szybko skalować się poza kontrolą. Wiele z tych elementów wymaga również możliwości dostosowywania lub dostosowywania modeli, co jest zwykle ograniczone przez dostawców interfejsu API zamkniętego źródła. 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 zaspokoić te potrzeby i nie tylko, operator łańcucha narzędzi Kubernetes AI (KAITO), projekt piaskownicy Cloud Native Computing Foundation (CNCF), upraszcza proces wdrażania obciążeń LLM typu open source i zarządzania nimi na platformie Kubernetes. Usługa KAITO integruje się z maszyną wirtualną vLLM, aparatem wnioskowania o wysokiej przepływności zaprojektowanym do wydajnego 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.

Oparta na projekcie KAITO typu open source operator łańcucha narzędzi sztucznej inteligencji zarządzana dodatkiem oferuje modułową, wtyczkową i play konfigurację, która umożliwia zespołom szybkie wdrażanie modeli i udostępnianie ich za pośrednictwem interfejsów API gotowych do produkcji. Obejmuje wbudowane funkcje, takie jak interfejsy API zgodne z interfejsami OpenAI, formatowanie monitów i obsługa odpowiedzi przesyłania strumieniowego. 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 uzyskać informacje o wszystkich hostowanych obrazach wstępnych modelu i domyślnej konfiguracji zasobów, zobacz repozytorium GITHub KAITO.
  • Dodatek operatora łańcucha narzędzi sztucznej inteligencji obecnie obsługuje KAITO w wersji 0.6.0, proszę o zanotowanie tego przy rozważaniu wyboru modelu z repozytorium modeli KAITO.

Ograniczenia

  • AzureLinux jednostka SKU systemu Windows operacyjnego nie jest obecnie obsługiwana.
  • Rozmiary maszyn wirtualnych procesora GPU firmy AMD nie są obsługiwane instanceType w obszarze roboczym USŁUGI KAITO.
  • Dodatek operatora łańcucha narzędzi sztucznej inteligencji jest obsługiwany w publicznych regionach świadczenia usługi Azure.

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ć wstępnie ustawione obrazy LLM dostępne w rejestrze modeli KAITO. W tej sekcji użyjemy wielomodalnego modelu wielomodalnego microsoft Phi-4-mini language o wysokiej jakości jako przykładu:

  1. Wdróż ustawienie wstępne modelu Phi-4-mini instrukcji dotyczące wnioskowania z repozytorium modeli KAITO przy użyciu kubectl apply polecenia .

    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ę wnioskowania Phi-4-mini za pomocą przykładowych danych wejściowych wybranego przy użyciu formatu interfejsu API uzupełniania czatu 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": "phi-4-mini-instruct",
            "prompt": "How should I dress for the weather today?",
            "max_tokens": 10
           }'
    

Wdrażanie niestandardowego lub specyficznego dla domeny modułu LLM

Maszyny LLM typu open source są często trenowane w różnych kontekstach i domenach, a hostowane ustawienia wstępne modelu mogą nie zawsze odpowiadać wymaganiom aplikacji lub danych. W takim przypadku funkcja KAITO obsługuje również wdrażanie nowszych lub specyficznych dla domeny modeli językowych z witryny 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 poinstruuj obszar roboczy , aby uzyskać nazwę puli węzłów az aks nodepool list przy użyciu polecenia . 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: