Azure Kubernetes Service'te (AKS) yapay zeka araç zinciri işleci (önizleme) ile yapay zeka modeli dağıtma
AI araç zinciri operatörü (KAITO), AKS kümelerinizde OSS AI modellerini çalıştırma deneyimini basitleştiren, AKS için yönetilen bir eklentidir. Yapay zeka araç zinciri operatörü gerekli GPU düğümlerini otomatik olarak sağlar ve ilişkili çıkarım sunucusunu yapay zeka modellerinize uç nokta sunucusu olarak ayarlar. Bu eklentiyi kullanmak, ekleme sürenizi azaltır ve altyapı kurulumu yerine yapay zeka modeli kullanımına ve geliştirmeye odaklanmanızı sağlar.
Bu makalede, AI araç zinciri işleci eklentisini etkinleştirme ve AKS'de yapay zeka modeli dağıtma gösterilmektedir.
Önemli
AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinin ve sınırlı garantinin dışında tutulur. AKS önizlemeleri, müşteri desteği tarafından kısmen en iyi çaba temelinde ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:
Başlamadan önce
- Bu makalede Kubernetes kavramlarını temel olarak anlayan bir kavram olduğu varsayılır. Daha fazla bilgi için bkz . AKS için Kubernetes temel kavramları.
- Barındırılan tüm model çıkarım görüntüleri ve önerilen altyapı kurulumu için kaito GitHub deposuna bakın.
- AI araç zinciri işleci eklentisi şu anda KAITO sürüm 0.1.0'ı desteklemektedir. Lütfen KAITO model deposundan model seçiminizi göz önünde bulundurarak bunu not edin.
Önkoşullar
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Birden çok Azure aboneliğiniz varsa az account set komutunu kullanarak kaynakların oluşturulacağı ve ücretlendirileceği doğru aboneliği seçtiğinizden emin olun.
Not
Kullandığınız aboneliğin seçtiğiniz modelin dağıtımı için GPU VM kotası olmalıdır.
Azure CLI sürüm 2.47.0 veya üzeri yüklü ve yapılandırılmış. Sürümü bulmak için
az --version
komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.Kubernetes komut satırı istemcisi kubectl yüklenir ve yapılandırılır. Daha fazla bilgi için bkz . Kubectl yükleme.
Azure CLI AKS önizleme uzantısını yükleyin.
Yapay zeka araç zinciri işleci eklenti özellik bayrağını kaydedin.
Azure CLI önizleme uzantısını yükleme
az extension add komutunu kullanarak Azure CLI önizleme uzantısını yükleyin.
az extension add --name aks-preview
az extension update komutunu kullanarak en son sürüme sahip olduğunuzdan emin olmak için uzantıyı güncelleştirin.
az extension update --name aks-preview
Yapay zeka araç zinciri işleci eklentisini kaydetme özellik bayrağı
az feature register komutunu kullanarak AIToolchainOperatorPreview özellik bayrağını kaydedin .
az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Kaydın tamamlanması birkaç dakika sürer.
az feature show komutunu kullanarak kaydı doğrulayın.
az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Ortam değişkenlerini dışarı aktarma
Bu makaledeki yapılandırma adımlarını basitleştirmek için aşağıdaki komutları kullanarak ortam değişkenlerini tanımlayabilirsiniz. Yer tutucu değerlerini kendi değerlerinizle değiştirdiğinden emin olun.
export AZURE_SUBSCRIPTION_ID="mySubscriptionID" export AZURE_RESOURCE_GROUP="myResourceGroup" export AZURE_LOCATION="myLocation" export CLUSTER_NAME="myClusterName"
AKS kümesinde yapay zeka araç zinciri işleci eklentisini etkinleştirme
Aşağıdaki bölümlerde, AI araç zinciri işleci eklentisi etkinleştirilmiş bir AKS kümesinin nasıl oluşturulacağı ve varsayılan barındırılan yapay zeka modelinin nasıl dağıtılacağı açıklanmaktadır.
AI araç zinciri işleci eklentisi etkinken AKS kümesi oluşturma
az group create komutunu kullanarak bir Azure kaynak grubu oluşturun .
az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
ve
--enable-oidc-issuer
bayraklarıyla az aks create komutunu--enable-ai-toolchain-operator
kullanarak AI araç zinciri işleci eklentisinin etkinleştirildiği bir AKS kümesi oluşturun.az aks create --location ${AZURE_LOCATION} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --name ${CLUSTER_NAME} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator \ --generate-ssh-keys
Not
AI araç zinciri işleci eklentisini etkinleştirdikten sonra AKS yönetilen kimlik oluşturur. Yönetilen kimlik, yönetilen AKS kümesinde GPU düğüm havuzları oluşturmak için kullanılır. Aşağıdaki bölümlerde sunulan adımları izleyerek uygun izinlerin el ile ayarlanması gerekir.
Mevcut aks kümesinde az aks update komutunu kullanarak AI araç zinciri işleci eklentisini etkinleştirebilirsiniz.
az aks update --name ${CLUSTER_NAME} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator
Kümenize bağlanma
az aks get-credentials komutunu kullanarak kümenize bağlanacak şekilde yapılandırın
kubectl
.az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
komutunu kullanarak
kubectl get
kümenize bağlantıyı doğrulayın.kubectl get nodes
Ortam değişkenlerini dışarı aktarma
Aşağıdaki komutları kullanarak MC kaynak grubu, asıl kimlik kimliği ve KAITO kimliği için ortam değişkenlerini dışarı aktarın:
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}"
AKS OpenID Connect (OIDC) Vereni alma
AKS OIDC Veren URL'sini alın ve ortam değişkeni olarak dışarı aktarın:
export AKS_OIDC_ISSUER=$(az aks show --resource-group "${AZURE_RESOURCE_GROUP}" \ --name "${CLUSTER_NAME}" \ --query "oidcIssuerProfile.issuerUrl" \ -o tsv)
Hizmet sorumlusu için rol ataması oluşturma
az role assignment create komutunu kullanarak hizmet sorumlusu için yeni bir rol ataması oluşturun .
az role assignment create --role "Contributor" \ --assignee "${PRINCIPAL_ID}" \ --scope "/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourcegroups/${AZURE_RESOURCE_GROUP}"
Federasyon kimliği kimlik bilgisi oluşturma
az identity federated-credential create komutunu kullanarak yönetilen kimlik, AKS OIDC veren ve konu arasında federasyon kimliği kimlik bilgilerini oluşturun .
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
Not
Bu adım tamamlanmadan önce denetleyici
gpu-provisioner
podu kilitlenme döngüsü durumunda kalır. Federasyon kimlik bilgileri oluşturulduktan sonra denetleyicigpu-provisioner
podu çalışır duruma ulaşır ve aşağıdaki adımlarda dağıtımın çalıştığını doğrulayabilirsiniz.
Dağıtımınızın çalıştığını doğrulayın
Komutunu kullanarak podlarınızda KAITO GPU sağlama dağıtımını
kubectl rollout restart
yeniden başlatın:kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
komutunu kullanarak dağıtımın
kubectl get
çalıştığını doğrulayın:kubectl get deployment -n kube-system | grep kaito
Varsayılan barındırılan yapay zeka modelini dağıtma
komutunu kullanarak KAITO model deposundan Falcon 7B-instruct modelini dağıtın
kubectl apply
.kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
komutunu kullanarak çalışma alanınızdaki canlı kaynak değişikliklerini
kubectl get
izleyin.kubectl get workspace workspace-falcon-7b-instruct -w
Not
Çalışma alanınızdaki canlı kaynak değişikliklerini izlediğinizde, makinenin hazır olma durumunun 10 dakika, çalışma alanının hazır olma durumunun ise 20 dakika kadar sürebileceğini unutmayın.
komutunu kullanarak
kubectl get svc
hizmetinizi denetleyin ve hizmet IP adresini alın.export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
Aşağıdaki
curl
komutu kullanarak seçtiğiniz örnek girişle Falcon 7B-instruct modelini çalıştırın: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\"}"
Kaynakları temizleme
Bu kaynaklara artık ihtiyacınız yoksa, ek Azure işlem ücretlerinden kaçınmak için bunları silebilirsiniz.
komutunu kullanarak
kubectl delete workspace
KAITO çalışma alanını ve ilişkili kaynaklarını silin.kubectl delete workspace workspace-falcon-7b-instruct
Sonraki adımlar
Daha fazla model dağıtım seçeneği için bkz. yukarı akış KAITO GitHub deposu.
- AKS'de yapay zeka ve makine öğrenmesi iş akışları için MLOps'u keşfetme
- AKS'de yapay zeka işlem hatlarınız için en iyi MLOps uygulamaları hakkında bilgi edinin
- AKS'de GPU iş yüklerini dağıtmayı öğrenin
Azure Kubernetes Service