Menyebarkan model AI pada Azure Kubernetes Service (AKS) dengan operator toolchain AI (pratinjau)
Operator toolchain AI (KAITO) adalah add-on terkelola untuk AKS yang menyederhanakan pengalaman menjalankan model OSS AI pada kluster AKS Anda. Operator toolchain AI secara otomatis menyediakan simpul GPU yang diperlukan dan menyiapkan server inferensi terkait sebagai server titik akhir ke model AI Anda. Menggunakan add-on ini mengurangi waktu onboarding Anda dan memungkinkan Anda untuk fokus pada penggunaan dan pengembangan model AI daripada penyiapan infrastruktur.
Artikel ini memperlihatkan kepada Anda cara mengaktifkan add-on operator toolchain AI dan menyebarkan model AI di AKS.
Penting
Fitur pratinjau AKS tersedia berdasarkan layanan mandiri. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan mereka dikecualikan dari perjanjian tingkat layanan dan garansi terbatas. Pratinjau AKS sebagian dicakup oleh dukungan pelanggan berdasarkan upaya terbaik. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
Sebelum Anda mulai
- Artikel ini mengasumsikan pemahaman dasar tentang konsep Kube. Untuk informasi selengkapnya, lihat Konsep inti Kubernetes untuk AKS.
- Untuk semua gambar inferensi model yang dihosting dan penyiapan infrastruktur yang direkomendasikan, lihat repositori GitHub KAITO.
- Add-on operator toolchain AI saat ini mendukung KAITO versi 0.1.0, harap catat ini dalam mempertimbangkan pilihan model Anda dari repositori model KAITO.
Prasyarat
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
Jika Anda memiliki beberapa langganan Azure, pastikan Anda memilih langganan yang benar tempat sumber daya akan dibuat dan ditagih menggunakan perintah az account set .
Catatan
Langganan yang Anda gunakan harus memiliki kuota VM GPU untuk penyebaran model yang Anda pilih.
Azure CLI versi 2.47.0 atau yang lebih baru diinstal dan dikonfigurasi. Jalankan
az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.Klien baris perintah Kubernetes, kubectl, diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat Menginstal kubectl.
Instal ekstensi pratinjau Azure CLI AKS.
Daftarkan bendera fitur add-on operator toolchain AI.
Menginstal ekstensi pratinjau Azure CLI
Instal ekstensi pratinjau Azure CLI menggunakan perintah az extension add .
az extension add --name aks-preview
Perbarui ekstensi untuk memastikan Anda memiliki versi terbaru menggunakan perintah az extension update .
az extension update --name aks-preview
Daftarkan bendera fitur add-on operator toolchain AI
Daftarkan bendera fitur AIToolchainOperatorPreview menggunakan perintah az feature register .
az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Dibutuhkan beberapa menit agar pendaftaran selesai.
Verifikasi pendaftaran menggunakan perintah az feature show .
az feature show --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
Ekspor variabel lingkungan
Untuk menyederhanakan langkah-langkah konfigurasi dalam artikel ini, Anda dapat menentukan variabel lingkungan menggunakan perintah berikut. Pastikan untuk mengganti nilai tempat penampung dengan nilai Anda sendiri.
export AZURE_SUBSCRIPTION_ID="mySubscriptionID" export AZURE_RESOURCE_GROUP="myResourceGroup" export AZURE_LOCATION="myLocation" export CLUSTER_NAME="myClusterName"
Mengaktifkan add-on operator toolchain AI pada kluster AKS
Bagian berikut menjelaskan cara membuat kluster AKS dengan add-on operator toolchain AI diaktifkan dan menyebarkan model AI yang dihosting default.
Membuat kluster AKS dengan add-on operator toolchain AI diaktifkan
Buat grup sumber daya Azure menggunakan perintah az group create .
az group create --name ${AZURE_RESOURCE_GROUP} --location ${AZURE_LOCATION}
Buat kluster AKS dengan add-on operator toolchain AI diaktifkan menggunakan perintah az aks create dengan
--enable-ai-toolchain-operator
bendera dan--enable-oidc-issuer
.az aks create --location ${AZURE_LOCATION} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --name ${CLUSTER_NAME} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator \ --generate-ssh-keys
Catatan
AKS membuat identitas terkelola setelah Anda mengaktifkan add-on operator toolchain AI. Identitas terkelola digunakan untuk membuat kumpulan simpul GPU di kluster AKS terkelola. Izin yang tepat perlu diatur untuknya secara manual mengikuti langkah-langkah yang diperkenalkan di bagian berikut.
Pada kluster AKS yang ada, Anda dapat mengaktifkan add-on operator toolchain AI menggunakan perintah az aks update .
az aks update --name ${CLUSTER_NAME} \ --resource-group ${AZURE_RESOURCE_GROUP} \ --enable-oidc-issuer \ --enable-ai-toolchain-operator
Menyambungkan ke kluster Anda
Konfigurasikan
kubectl
untuk terhubung ke kluster Anda menggunakan perintah az aks get-credentials .az aks get-credentials --resource-group ${AZURE_RESOURCE_GROUP} --name ${CLUSTER_NAME}
Verifikasi koneksi ke kluster Anda menggunakan
kubectl get
perintah .kubectl get nodes
Ekspor variabel lingkungan
Ekspor variabel lingkungan untuk grup sumber daya MC, identitas ID utama, dan identitas KAITO menggunakan perintah berikut:
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}"
Mendapatkan Penerbit AKS OpenID Connect (OIDC)
Dapatkan URL Pengeluar Sertifikat AKS OIDC dan ekspor sebagai variabel lingkungan:
export AKS_OIDC_ISSUER=$(az aks show --resource-group "${AZURE_RESOURCE_GROUP}" \ --name "${CLUSTER_NAME}" \ --query "oidcIssuerProfile.issuerUrl" \ -o tsv)
Membuat penetapan peran untuk perwakilan layanan
Buat penetapan peran baru untuk perwakilan layanan menggunakan perintah az role assignment create .
az role assignment create --role "Contributor" \ --assignee "${PRINCIPAL_ID}" \ --scope "/subscriptions/${AZURE_SUBSCRIPTION_ID}/resourcegroups/${AZURE_RESOURCE_GROUP}"
Menetapkan kredensial identitas federasi
Buat kredensial identitas federasi antara identitas terkelola, penerbit AKS OIDC, dan subjek menggunakan perintah az identity federated-credential create .
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
Catatan
Sebelum langkah ini selesai,
gpu-provisioner
pod pengontrol akan tetap dalam status perulangan crash. Setelah kredensial federasi dibuat,gpu-provisioner
pod pengontrol akan mencapai status berjalan dan Anda akan dapat memverifikasi bahwa penyebaran berjalan dalam langkah-langkah berikut.
Verifikasi bahwa penyebaran Anda sedang berjalan
Mulai ulang penyebaran provisi GPU KAITO pada pod Anda menggunakan
kubectl rollout restart
perintah :kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
Verifikasi bahwa penyebaran berjalan menggunakan
kubectl get
perintah :kubectl get deployment -n kube-system | grep kaito
Menyebarkan model AI default yang dihosting
Sebarkan model Falcon 7B-instruct dari repositori model KAITO menggunakan
kubectl apply
perintah .kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_falcon_7b-instruct.yaml
Lacak perubahan sumber daya langsung di ruang kerja Anda menggunakan
kubectl get
perintah .kubectl get workspace workspace-falcon-7b-instruct -w
Catatan
Saat Anda melacak perubahan sumber daya langsung di ruang kerja Anda, perhatikan bahwa kesiapan mesin dapat memakan waktu hingga 10 menit, dan kesiapan ruang kerja hingga 20 menit.
Periksa layanan Anda dan dapatkan alamat IP layanan menggunakan
kubectl get svc
perintah .export SERVICE_IP=$(kubectl get svc workspace-falcon-7b-instruct -o jsonpath='{.spec.clusterIP}')
Jalankan model Falcon 7B-instruct dengan contoh input pilihan Anda menggunakan perintah berikut
curl
: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\"}"
Membersihkan sumber daya
Jika Anda tidak lagi memerlukan sumber daya ini, Anda dapat menghapusnya untuk menghindari dikenakan biaya komputasi Azure tambahan.
Hapus ruang kerja KAITO dan sumber daya terkait menggunakan
kubectl delete workspace
perintah .kubectl delete workspace workspace-falcon-7b-instruct
Langkah berikutnya
Untuk opsi penyebaran model lainnya, lihat repositori GitHub KAITO upstram.
- Menjelajahi MLOps untuk AI dan alur kerja pembelajaran mesin di AKS
- Pelajari tentang praktik terbaik MLOps untuk alur AI Anda di AKS
- Pelajari cara menyebarkan beban kerja GPU di AKS
Azure Kubernetes Service