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 nástrojů AI v současné době podporuje KAITO verze v0.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.

  • 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

  1. Nainstalujte rozšíření Azure CLI preview pomocí příkazu az extension add .

    az extension add --name aks-preview
    
  2. 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

  1. 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.

  2. 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

  1. Pomocí příkazu az group create vytvořte skupinu prostředků Azure.

    az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
    
  2. 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
    

    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.

    Povolení operátoru sady nástrojů AI vyžaduje povolení vystavitele OIDC.

  3. 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í do clusteru

  1. 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}
    
  2. 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 Připojení (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

Ověřte, že je vaše nasazení spuštěné.

  1. 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
    
  2. 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

  1. 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
    
  2. 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.

  3. 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}')
    
  4. 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 účtování dalších poplatků za Azure.

Další kroky

Další možnosti odvozování modelu najdete v úložišti KAITO na GitHubu.