Bagikan melalui


Memasukkan model kustom untuk melakukan inferensi dengan operator toolchain AI (KAITO) di Azure Kubernetes Service (AKS)

Sebagai insinyur atau pengembang AI, Anda mungkin harus membuat prototipe dan menyebarkan beban kerja AI dengan berbagai bobot model yang berbeda. AKS menyediakan opsi untuk menyebarkan beban kerja inferensi menggunakan preset sumber terbuka yang langsung dapat digunakan dan dikelola dalam registri model KAITO atau mengunduhnya secara dinamis dari registri HuggingFace saat runtime ke kluster AKS Anda.

Dalam artikel ini, Anda mempelajari cara menggunakan contoh model HuggingFace untuk inferensi menggunakan add-on operator toolchain AI tanpa harus mengelola image kustom di Azure Kubernetes Service (AKS).

Prasyarat

  • Akun Azure dengan langganan aktif. Jika Anda tidak memiliki akun, Anda dapat membuatnya secara gratis.
  • Kluster AKS dengan add-on operator rantai alat AI yang diaktifkan. Untuk informasi selengkapnya, lihat Mengaktifkan KAITO pada kluster AKS.
  • Contoh penyebaran ini memerlukan kuota untuk Standard_NCads_A100_v4 keluarga komputer virtual (VM) di langganan Azure Anda. Jika Anda tidak memiliki kuota untuk keluarga VM ini, silakan minta penambahan kuota.

Pilih model bahasa sumber terbuka dari HuggingFace

Dalam contoh ini, kita menggunakan model bahasa kecil BigScience Bloom-1B7 . Atau, Anda dapat memilih dari ribuan model pembuatan teks yang didukung di HuggingFace.

  1. Sambungkan ke kluster AKS Anda menggunakan az aks get-credentials perintah .

    az aks get-credentials --resource-group <resource-group-name> --name <aks-cluster-name>
    
  2. Kloning repositori GitHub proyek KAITO menggunakan git clone perintah .

    git clone https://github.com/kaito-project/kaito.git
    
  3. Pastikan bahwa pod kaito-gpu-provisioner Anda berhasil berjalan menggunakan perintah kubectl get deployment.

    kubectl get deployment -n kube-system | grep kaito
    

Menyebarkan beban kerja inferensi model Anda menggunakan templat ruang kerja KAITO

  1. Navigasi ke kaito direktori dan buka docs/custom-model-integration/reference_image_deployment.yaml templat KAITO. Ganti nilai default di bidang berikut dengan persyaratan model Anda:

    • instanceType: Ukuran VM minimum untuk penyebaran layanan inferensi ini adalah Standard_NC24ads_A100_v4. Untuk ukuran model yang lebih besar, Anda dapat memilih VM dalam Standard_NCads_A100_v4 keluarga dengan kapasitas memori yang lebih tinggi.
    • MODEL_ID: Ganti dengan pengidentifikasi HuggingFace spesifik model Anda, yang dapat ditemukan setelah https://huggingface.co/ di URL kartu model.
    • "--torch_dtype": Atur ke "float16" untuk kompatibilitas dengan GPU V100. Untuk GPU A100, H100, atau yang lebih baru, gunakan "bfloat16".
    apiVersion: kaito.sh/v1alpha1
    kind: Workspace
    metadata:
      name: workspace-custom-llm
    resource:
      instanceType: "Standard_NC24ads_A100_v4"
      labelSelector:
        matchLabels:
          apps: custom-llm
    inference:
      template: 
        spec:
          containers:
          - name: custom-llm-container
            image: ghcr.io/kaito-project/kaito/llm-reference-preset:latest
            command: ["accelerate"]
            args:
              - "launch"
              - "--num_processes"
              - "1"
              - "--num_machines"
              - "1"
              - "--gpu_ids"
              - "all"
              - "tfs/inference_api.py"
              - "--pipeline"
              - "text-generation"
              - "--trust_remote_code"
              - "--allow_remote_files"
              - "--pretrained_model_name_or_path"
              - "bigscience/bloom-1b7"
              - "--torch_dtype"
              - "bfloat16"
            volumeMounts:
            - name: dshm
              mountPath: /dev/shm
          volumes:
          - name: dshm
            emptyDir:
              medium: Memory
    
  2. Simpan perubahan ini ke file Anda docs/custom-model-integration/reference_image_deployment.yaml .

  3. Jalankan penyebaran pada kluster AKS Anda menggunakan perintah kubectl apply.

    kubectl apply -f docs/custom-model-integration/reference_image_deployment.yaml
    

Menguji layanan inferensi model kustom Anda

  1. Lacak perubahan sumber daya langsung di ruang kerja KAITO Anda menggunakan kubectl get workspace perintah .

    kubectl get workspace workspace-custom-llm -w
    

    Nota

    Perhatikan bahwa kesiapan mesin dapat memakan waktu hingga 10 menit, dan kesiapan ruang kerja hingga 20 menit.

  2. Periksa layanan inferensi model bahasa Anda dan dapatkan alamat IP layanan menggunakan kubectl get svc perintah .

    export SERVICE_IP=$(kubectl get svc workspace-custom-llm -o jsonpath='{.spec.clusterIP}')
    
  3. Uji layanan inferensi model kustom Anda dengan input sampel pilihan Anda menggunakan format OPENAI API:

       kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- curl -X POST http://$SERVICE_IP/v1/completions \
      -H "Content-Type: application/json" \
      -d '{
        "model": "bloom-1b7",
        "prompt": "What sport should I play in rainy weather?",
        "max_tokens": 20
      }'
    

Membersihkan sumber daya

Jika Anda tidak lagi memerlukan sumber daya ini, Anda dapat menghapusnya untuk menghindari dikenakan biaya komputasi Azure tambahan.

  1. Hapus ruang kerja inferensi KAITO menggunakan kubectl delete workspace perintah .

    kubectl delete workspace workspace-custom-llm
    
  2. Hapus kumpulan simpul GPU yang dibuat oleh KAITO di namespace yang sama dengan kaito-gpu-provisioner penyebaran.

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara memasukkan model HuggingFace untuk inferensi dengan add-on operator toolchain AI langsung ke dalam kluster AKS Anda. Untuk mempelajari selengkapnya tentang AI dan pembelajaran mesin di AKS, lihat artikel berikut ini: