Nasazení modelu AI ve službě Azure Kubernetes Service (AKS) s operátorem sady nástrojů AI (Preview)
Operátor sady nástrojů AI (KAITO) je spravovaný doplněk pro AKS, který zjednodušuje spouštění modelů OSS AI v clusterech AKS. Operátor sady nástrojů AI automaticky zřídí potřebné uzly GPU a nastaví přidružený server odvozování jako koncový server pro vaše modely AI. Použití tohoto doplňku zkracuje čas připojování a umožňuje soustředit se na využití a vývoj modelů AI, nikoli na nastavení infrastruktury.
V tomto článku se dozvíte, jak povolit doplněk operátoru sady nástrojů AI a nasadit model AI v AKS.
Důležité
Funkce AKS ve verzi Preview jsou k dispozici na samoobslužné bázi. Verze Preview jsou poskytovány "tak, jak jsou" a "dostupné", a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Verze Preview AKS jsou částečně pokryty zákaznickou podporou na základě maximálního úsilí. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:
Než začnete
- Tento článek předpokládá základní znalosti konceptů Kubernetes. Další informace najdete v tématu Základní koncepty Kubernetes pro AKS.
- Všechny hostované image odvozování modelů a doporučené nastavení infrastruktury najdete v úložišti KAITO Na GitHubu.
- Doplněk operátoru sady nástrojů AI v současné době podporuje KAITO verze 0.1.0, poznamenejte si to při zvažování vašeho výběru modelu z úložiště modelů KAITO.
Požadavky
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Pokud máte více předplatných Azure, ujistěte se, že jste vybrali správné předplatné, ve kterém se prostředky vytvoří a budou se účtovat pomocí příkazu az account set .
Poznámka:
Předplatné, které používáte, musí mít kvótu virtuálních počítačů GPU pro nasazení zvoleného modelu.
Azure CLI verze 2.47.0 nebo novější je nainstalovaná a nakonfigurovaná. Verzi zjistíte spuštěním příkazu
az --version
. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.Klient příkazového řádku Kubernetes, kubectl, nainstalovaný a nakonfigurovaný. Další informace naleznete v tématu Instalace kubectl.
Nainstalujte rozšíření Azure CLI AKS ve verzi Preview.
Zaregistrujte příznak funkce doplňku pro sadu nástrojů AI.
Instalace rozšíření Azure CLI preview
Nainstalujte rozšíření Azure CLI preview pomocí příkazu az extension add .
az extension add --name aks-preview
Pomocí příkazu az extension update aktualizujte rozšíření, abyste měli jistotu, že máte nejnovější verzi.
az extension update --name aks-preview
Registrace příznaku funkce doplňku pro sadu nástrojů AI
Pomocí příkazu az feature register zaregistrujte příznak funkce AIToolchainOperatorPreview.
az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Dokončení registrace trvá několik minut.
Pomocí příkazu az feature show ověřte registraci.
az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Export proměnných prostředí
Chcete-li zjednodušit kroky konfigurace v tomto článku, můžete definovat proměnné prostředí pomocí následujících příkazů. Nezapomeňte nahradit zástupné hodnoty vlastními hodnotami.
export AZURE_SUBSCRIPTION_ID="mySubscriptionID" export AZURE_RESOURCE_GROUP="myResourceGroup" export AZURE_LOCATION="myLocation" export CLUSTER_NAME="myClusterName"
Povolení doplňku operátoru sady nástrojů AI v clusteru AKS
Následující části popisují, jak vytvořit cluster AKS s povoleným doplňkem operátoru sady nástrojů AI a nasadit výchozí hostovaný model AI.
Vytvoření clusteru AKS s povoleným doplňkem operátoru sady nástrojů AI
Pomocí příkazu az group create vytvořte skupinu prostředků Azure.
az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
Vytvořte cluster AKS s povoleným doplňkem operátoru AI toolchain pomocí příkazu az aks create s příznaky
--enable-ai-toolchain-operator
a--enable-oidc-issuer
příznakem.az aks create --location ${AZURE_LOCATION} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --name ${CLUSTER_NAME} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator \ --generate-ssh-keys
Poznámka:
AKS vytvoří spravovanou identitu, jakmile povolíte doplněk operátoru sady nástrojů AI. Spravovaná identita se používá k vytvoření fondů uzlů GPU ve spravovaném clusteru AKS. Pro něj je potřeba nastavit správná oprávnění ručně podle kroků uvedených v následujících částech.
V existujícím clusteru AKS můžete pomocí příkazu az aks update povolit doplněk operátoru sady nástrojů AI.
az aks update --name ${CLUSTER_NAME} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator
Připojení ke clusteru
Nakonfigurujte
kubectl
připojení ke clusteru pomocí příkazu az aks get-credentials .az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
Pomocí příkazu ověřte připojení ke clusteru
kubectl get
.kubectl get nodes
Export proměnných prostředí
Pomocí následujících příkazů exportujte proměnné prostředí pro skupinu prostředků MC, identitu ID objektu zabezpečení a identitu KAITO:
export MC_RESOURCE_GROUP=$(az aks show --resource-group ${AZURE_RESOURCE_GROUP} \ --name ${CLUSTER_NAME} \ --query nodeResourceGroup \ -o tsv) export PRINCIPAL_ID=$(az identity show --name "ai-toolchain-operator-${CLUSTER_NAME}" \ --resource-group "${MC_RESOURCE_GROUP}" \ --query 'principalId' \ -o tsv) export KAITO_IDENTITY_NAME="ai-toolchain-operator-${CLUSTER_NAME}"
Získání vystavitele AKS OpenID Connect (OIDC)
Získejte adresu URL vystavitele AKS OIDC a exportujte ji jako proměnnou prostředí:
export AKS_OIDC_ISSUER=$(az aks show --resource-group "${AZURE_RESOURCE_GROUP}" \ --name "${CLUSTER_NAME}" \ --query "oidcIssuerProfile.issuerUrl" \ -o tsv)
Vytvoření přiřazení role pro instanční objekt
Pomocí příkazu az role assignment create vytvořte pro instanční objekt nové přiřazení role.
az role assignment create --role "Contributor" \ --assignee "${PRINCIPAL_ID}" \ --scope "/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourcegroups/${AZURE_RESOURCE_GROUP}"
Vytvoření přihlašovacích údajů federované identity
Pomocí příkazu az identity federated-credential create vytvořte přihlašovací údaje federované identity mezi spravovanou identitou, vystavitelem AKS OIDC a předmětem.
az identity federated-credential create --name "kaito-federated-identity" \ --identity-name "${KAITO_IDENTITY_NAME}" \ -g "${MC_RESOURCE_GROUP}" \ --issuer "${AKS_OIDC_ISSUER}" \ --subject system:serviceaccount:"kube-system:kaito-gpu-provisioner" \ --audience api://AzureADTokenExchange
Poznámka:
Před dokončením
gpu-provisioner
tohoto kroku zůstane pod kontroleru ve stavu smyčky chybového ukončení. Po vytvořenígpu-provisioner
federovaných přihlašovacích údajů se pod kontroleru dostane do spuštěného stavu a budete moct ověřit, že nasazení běží v následujících krocích.
Ověřte, že je vaše nasazení spuštěné.
Pomocí příkazu restartujte nasazení zřizovacího nástroje KAITO GPU na podech
kubectl rollout restart
:kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
Pomocí příkazu ověřte, že je nasazení spuštěné
kubectl get
:kubectl get deployment -n kube-system | grep kaito
Nasazení výchozího hostovaného modelu AI
Pomocí příkazu nasaďte model Falcon 7B-instruct z úložiště
kubectl apply
modelů KAITO.kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
Pomocí příkazu můžete sledovat změny živých prostředků v pracovním prostoru
kubectl get
.kubectl get workspace workspace-falcon-7b-instruct -w
Poznámka:
Při sledování změn živých prostředků v pracovním prostoru může trvat až 10 minut a připravenost pracovního prostoru až 20 minut.
Pomocí příkazu zkontrolujte svou službu a získejte IP adresu
kubectl get svc
služby.export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
Spusťte model Falcon 7B-instruct s ukázkovým vstupem podle vašeho výběru pomocí následujícího
curl
příkazu:kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- curl -X POST http://$SERVICE_IP/chat -H "accept: application/json" -H "Content-Type: application/json" -d "{\"prompt\":\"YOUR QUESTION HERE\"}"
Vyčištění prostředků
Pokud už tyto prostředky nepotřebujete, můžete je odstranit, abyste se vyhnuli poplatkům za další výpočetní prostředky Azure.
Pomocí příkazu odstraňte pracovní prostor KAITO a jeho přidružené prostředky
kubectl delete workspace
.kubectl delete workspace workspace-falcon-7b-instruct
Další kroky
Další možnosti nasazení modelu najdete v upstreamovém úložišti KAITO Na GitHubu.
- Prozkoumání MLOps pro pracovní postupy AI a strojového učení v AKS
- Seznamte se s osvědčenými postupy MLOps pro vaše kanály AI v AKS.
- Informace o nasazení úloh GPU v AKS
Azure Kubernetes Service