AI-modell üzembe helyezése az Azure Kubernetes Service-ben (AKS) az AI eszközlánc-operátorral (előzetes verzió)
Az AI-eszközlánc operátor (KAITO) az AKS felügyelt bővítménye, amely leegyszerűsíti az OSS AI-modellek AKS-fürtökön való futtatásának élményét. Az AI-eszközlánc-operátor automatikusan kiépíti a szükséges GPU-csomópontokat, és végpontkiszolgálóként beállítja a kapcsolódó következtetési kiszolgálót az AI-modellekhez. A bővítmény használata csökkenti a bevezetési időt, és lehetővé teszi, hogy az infrastruktúra beállítása helyett az AI-modellek használatára és fejlesztésére összpontosítson.
Ez a cikk bemutatja, hogyan engedélyezheti az AI-eszközlánc-operátor bővítményét, és hogyan helyezhet üzembe egy AI-modellt az AKS-en.
Fontos
Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióit részben az ügyfélszolgálat fedezi a legjobb munkamennyiség alapján. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:
Mielőtt elkezdené
- Ez a cikk a Kubernetes-fogalmak alapszintű megértését feltételezi. További információ: Kubernetes alapfogalmak az AKS-hez.
- Az összes üzemeltetett modell következtetési rendszerképével és az infrastruktúra javasolt beállításával kapcsolatban tekintse meg a KAITO GitHub-adattárat.
- Az AI eszközlánc-operátor bővítménye jelenleg a KAITO 0.1.0-s verzióját támogatja, jegyezze fel ezt a kaito-modell adattárából választott modell figyelembe vételével.
Előfeltételek
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Ha több Azure-előfizetéssel rendelkezik, az az account set paranccsal válassza ki a megfelelő előfizetést, amelyben az erőforrások létrejönnek és fel lesznek számítva.
Feljegyzés
A használt előfizetésnek GPU virtuálisgép-kvótával kell rendelkeznie.
Az Azure CLI 2.47.0-s vagy újabb verziója telepítve és konfigurálva van. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.A Kubernetes parancssori ügyfele, a kubectl, telepítve és konfigurálva van. További információ: Kubectl telepítése.
Regisztrálja az AI-eszközlánc operátor bővítményfunkció-jelzőjét.
Az Azure CLI előzetes verziós bővítményének telepítése
Telepítse az Azure CLI előzetes verziójú bővítményét az az extension add paranccsal.
az extension add --name aks-preview
Frissítse a bővítményt, és győződjön meg arról, hogy a legújabb verzióval rendelkezik az az extension update paranccsal.
az extension update --name aks-preview
Az AI-eszközlánc operátor bővítményfunkció-jelzőjének regisztrálása
Regisztrálja az AIToolchainOperatorPreview funkciójelzőt az az feature register paranccsal.
az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
A regisztráció végrehajtása néhány percet vesz igénybe.
Ellenőrizze a regisztrációt az az feature show paranccsal.
az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Környezeti változók exportálása
A cikkben ismertetett konfigurációs lépések egyszerűsítése érdekében az alábbi parancsokkal határozhatja meg a környezeti változókat. Ügyeljen arra, hogy a helyőrző értékeket cserélje le a sajátjára.
export AZURE_SUBSCRIPTION_ID="mySubscriptionID" export AZURE_RESOURCE_GROUP="myResourceGroup" export AZURE_LOCATION="myLocation" export CLUSTER_NAME="myClusterName"
AI-eszközlánc-operátor bővítményének engedélyezése AKS-fürtön
A következő szakaszok bemutatják, hogyan hozhat létre AKS-fürtöt az AI eszközlánc-operátor bővítményével, és hogyan helyezhet üzembe egy alapértelmezett üzemeltetett AI-modellt.
AKS-fürt létrehozása az AI eszközlánc-operátor bővítményének engedélyezésével
Azure-erőforráscsoport létrehozása az az group create paranccsal.
az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
Hozzon létre egy AKS-fürtöt, amelyen engedélyezve van az AI-eszközlánc-operátor bővítmény az az aks create paranccsal és a
--enable-ai-toolchain-operator
--enable-oidc-issuer
jelzőkkel.az aks create --location ${AZURE_LOCATION} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --name ${CLUSTER_NAME} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator \ --generate-ssh-keys
Feljegyzés
Az AKS az AI eszközlánc-operátor bővítményének engedélyezése után létrehoz egy felügyelt identitást. A felügyelt identitás gpu-csomópontkészletek létrehozásához használható a felügyelt AKS-fürtben. A megfelelő engedélyeket manuálisan kell beállítani a következő szakaszokban ismertetett lépések végrehajtásával.
Az AI-eszközlánc-operátor engedélyezéséhez engedélyezni kell az OIDC-kiállítót.
Egy meglévő AKS-fürtön engedélyezheti az AI eszközlánc-operátor bővítményét az az aks update paranccsal.
az aks update --name ${CLUSTER_NAME} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator
Csatlakozás a fürthöz
Konfigurálja
kubectl
a fürthöz való csatlakozást az az aks get-credentials paranccsal.az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
Ellenőrizze a fürthöz való kapcsolatot a
kubectl get
paranccsal.kubectl get nodes
Környezeti változók exportálása
Exportálja a környezeti változókat az MC-erőforráscsoporthoz, a főazonosító-identitáshoz és a KAITO-identitáshoz a következő parancsokkal:
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}"
Az AKS OpenID Connect (OIDC) kiállítójának lekérése
Kérje le az AKS OIDC-kiállító URL-címét, és exportálja környezeti változóként:
export AKS_OIDC_ISSUER=$(az aks show --resource-group "${AZURE_RESOURCE_GROUP}" \ --name "${CLUSTER_NAME}" \ --query "oidcIssuerProfile.issuerUrl" \ -o tsv)
Szerepkör-hozzárendelés létrehozása a szolgáltatásnévhez
Hozzon létre egy új szerepkör-hozzárendelést a szolgáltatásnévhez az az role assignment create paranccsal.
az role assignment create --role "Contributor" \ --assignee "${PRINCIPAL_ID}" \ --scope "/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourcegroups/${AZURE_RESOURCE_GROUP}"
Összevont identitás hitelesítő adatainak létrehozása
Hozza létre az összevont identitás hitelesítő adatait a felügyelt identitás, az AKS OIDC-kiállító és a tulajdonos között az az identity federated-credential create paranccsal.
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
Ellenőrizze, hogy fut-e az üzembe helyezés
Indítsa újra a KAITO GPU-kiépítési üzembe helyezését a podokon a
kubectl rollout restart
következő paranccsal:kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
Ellenőrizze, hogy az üzembe helyezés fut-e a
kubectl get
következő paranccsal:kubectl get deployment -n kube-system | grep kaito
Alapértelmezett üzemeltetett AI-modell üzembe helyezése
Helyezze üzembe a Falcon 7B-instruktor modellt a KAITO-modell adattárából a
kubectl apply
paranccsal.kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
Kövesse nyomon a munkaterület élő erőforrásváltozásait a
kubectl get
paranccsal.kubectl get workspace workspace-falcon-7b-instruct -w
Feljegyzés
A munkaterület élő erőforrás-változásainak nyomon követése során vegye figyelembe, hogy a gép készenléte akár 10 percet is igénybe vehet, a munkaterület készenléte pedig akár 20 percet is igénybe vehet.
Ellenőrizze a szolgáltatást, és kérje le a szolgáltatás IP-címét a
kubectl get svc
parancs használatával.export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
Futtassa a Falcon 7B-instruktúramodellt egy tetszőleges mintabemenettel a következő
curl
paranccsal: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\"}"
Az erőforrások eltávolítása
Ha már nincs szüksége ezekre az erőforrásokra, törölheti őket, hogy elkerülje a többlet Azure-díjakat.
Törölje az erőforráscsoportot és a hozzá tartozó erőforrásokat az az group delete paranccsal.
az group delete --name "${AZURE_RESOURCE_GROUP}" --yes --no-wait
Következő lépések
További következtetési modellbeállításokért tekintse meg a KAITO GitHub-adattárat.
Azure Kubernetes Service