Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
-
WindowsTa wersja SKU systemu operacyjnego nie jest obecnie obsługiwana. - Rozmiary maszyn wirtualnych GPU firmy AMD nie są obsługiwane
instanceTypew 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
Utwórz grupę zasobów platformy Azure przy użyciu polecenia az group create .
az group create --name $AZURE_RESOURCE_GROUP --location $AZURE_LOCATIONUtwórz klaster AKS z włączonym dodatkiem narzędzi AI, używając polecenia az aks create z opcjami
--enable-ai-toolchain-operatori--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-keysW 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
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_NAMESprawdź 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:
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Śledź na żywo zmiany zasobów w obszarze roboczym przy użyciu polecenia
kubectl get.kubectl get workspace workspace-phi-4-mini -wUwaga
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.
Sprawdź usługę wnioskowania i uzyskaj adres IP usługi przy użyciu
kubectl get svcpolecenia .export SERVICE_IP=$(kubectl get svc workspace-phi-4-mini -o jsonpath='{.spec.clusterIP}')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.
Usuń obszar roboczy KAITO przy użyciu
kubectl delete workspacepolecenia .kubectl delete workspace workspace-phi-4-miniNależ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 listuzyskać 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_NAMEUsuń 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:
- Twoja subskrypcja platformy Azure nie ma limitu przydziału dla minimalnego typu instancji GPU określonego w obszarze roboczym KAITO. Musisz zażądać zwiększenia limitu przydziału dla rodziny maszyn wirtualnych z procesorem GPU w ramach subskrypcji platformy Azure.
- Typ jednostki GPU nie jest dostępny w regionie AKS. Potwierdź dostępność wystąpienia GPU w swoim określonym regionie i zmień region Azure, jeśli rodzina maszyn wirtualnych GPU nie jest dostępna.
Następne kroki
Dowiedz się więcej o opcjach wdrażania modelu KAITO poniżej:
- Wdróż modele LLM wraz z aplikacją w usłudze AKS przy użyciu KAITO w programie Visual Studio Code.
- Monitorowanie obciążenia wnioskowania KAITO.
- Dostrajanie modelu za pomocą dodatku łańcucha narzędzi sztucznej inteligencji w usłudze AKS.
- Konfigurowanie i testowanie wywoływania przy użyciu wnioskowania KAITO.
- Integrowanie serwera MCP z dodatkiem operatora łańcucha narzędzi AI w usłudze AKS.