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

  • 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

  1. Instal ekstensi pratinjau Azure CLI menggunakan perintah az extension add .

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

  1. Daftarkan bendera fitur AIToolchainOperatorPreview menggunakan perintah az feature register .

    az feature register --namespace "Microsoft.ContainerService" --name "AIToolchainOperatorPreview"
    

    Dibutuhkan beberapa menit agar pendaftaran selesai.

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

  1. Buat grup sumber daya Azure menggunakan perintah az group create .

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

    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.

    Pengaktifan operator toolchain AI memerlukan pengaktifan penerbit OIDC.

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

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

Dapatkan Penerbit AKS OpenID Koneksi (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
    

Verifikasi bahwa penyebaran Anda sedang berjalan

  1. Mulai ulang penyebaran provisi GPU KAITO pada pod Anda menggunakan kubectl rollout restart perintah :

    kubectl rollout restart deployment/kaito-gpu-provisioner -n kube-system
    
  2. Verifikasi bahwa penyebaran berjalan menggunakan kubectl get perintah :

    kubectl get deployment -n kube-system | grep kaito
    

Menyebarkan model AI default yang dihosting

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

  3. 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}')
    
  4. 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 Azure tambahan.

  • Hapus grup sumber daya dan sumber daya terkait menggunakan perintah az group delete .

    az group delete --name "${AZURE_RESOURCE_GROUP}" --yes --no-wait
    

Langkah berikutnya

Untuk opsi model inferensi lainnya, lihat repositori GitHub KAITO.