Aracılığıyla paylaş


Azure Kubernetes Service'te (AKS) yapay zeka araç zinciri işleci (KAITO) ile tahmin için özel modelleri entegre etme

Yapay zeka mühendisi veya geliştirici olarak, farklı model ağırlıklarına sahip yapay zeka iş yüklerinin prototipini oluşturmanız ve dağıtmanız gerekebilir. AKS, kullanıma hazır olarak desteklenen ve KAITO model kayıt defterinde yönetilen açık kaynak ön ayarlarını kullanarak çıkarım iş yüklerini dağıtma veya çalışma zamanında HuggingFace kayıt defterinden AKS kümenize dinamik olarak indirme seçeneği sunar.

Bu makalede, Azure Kubernetes Service'te (AKS) özel görüntüleri yönetmek zorunda kalmadan yapay zeka araç zinciri işleci eklentisiyle çıkarım yapmak için örnek bir HuggingFace modelini eklemeyi öğreneceksiniz.

Önkoşullar

HuggingFace'den açık kaynak dil modeli seçme

Bu örnekte BigScience Bloom-1B7 küçük dil modelini kullanıyoruz. Alternatif olarak , HuggingFace'de desteklenen binlerce metin oluşturma modeli arasından seçim yapabilirsiniz.

  1. komutunu kullanarak AKS kümenize bağlanın az aks get-credentials .

    az aks get-credentials --resource-group <resource-group-name> --name <aks-cluster-name>
    
  2. komutunu kullanarak KAITO projesi GitHub deposunu git clone kopyalayın.

    git clone https://github.com/kaito-project/kaito.git
    
  3. kaito-gpu-provisioner komutunu kullanarak kubectl get deployment podunuzun başarıyla çalıştığını onaylayın.

    kubectl get deployment -n kube-system | grep kaito
    

KAITO çalışma alanı şablonunu kullanarak model çıkarım iş yükünüzü dağıtma

  1. Dizine kaito gidin ve KAITO şablonunu açın docs/custom-model-integration/reference_image_deployment.yaml . Aşağıdaki alanlardaki varsayılan değerleri modelinizin gereksinimleriyle değiştirin:

    • instanceType: Bu çıkarım hizmeti dağıtımı için en düşük VM boyutu şudur Standard_NC24ads_A100_v4: . Daha büyük model boyutları için ailede daha yüksek bellek kapasitesine Standard_NCads_A100_v4 sahip bir VM seçebilirsiniz.
    • MODEL_ID: değerini model kartı URL'sinde bulunan https://huggingface.co/ özel HuggingFace tanımlayıcısıyla değiştirin.
    • "--torch_dtype": V100 GPU'larla uyumluluk için "float16" olarak ayarlayın. A100, H100 veya daha yeni GPU'lar için kullanın "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. Bu değişiklikleri dosyanıza docs/custom-model-integration/reference_image_deployment.yaml kaydedin.

  3. komutunu kullanarak kubectl apply AKS kümenizde dağıtımı çalıştırın.

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

Özel model çıkarım hizmetinizi test etme

  1. komutunu kullanarak KAITO çalışma alanınızdaki canlı kaynak değişikliklerini kubectl get workspace izleyin.

    kubectl get workspace workspace-custom-llm -w
    

    Uyarı

    Makinenin hazır olma durumunun 10 dakika, çalışma alanının hazır olma durumunun ise 20 dakikaya kadar sürebileceğini unutmayın.

  2. Dil modeli çıkarım hizmetinizi denetleyin ve komutunu kullanarak kubectl get svc hizmet IP adresini alın.

    export SERVICE_IP=$(kubectl get svc workspace-custom-llm -o jsonpath='{.spec.clusterIP}')
    
  3. OpenAI API biçimini kullanarak seçtiğiniz örnek girişle özel model çıkarım hizmetinizi test edin:

       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
      }'
    

Kaynakları temizleme

Bu kaynaklara artık ihtiyacınız yoksa, ek Azure işlem ücretlerinden kaçınmak için bunları silebilirsiniz.

  1. komutunu kullanarak KAITO çıkarım çalışma alanını kubectl delete workspace silin.

    kubectl delete workspace workspace-custom-llm
    
  2. KAITO tarafından oluşturulan ve kaito-gpu-provisioner dağıtımıyla aynı ad alanında bulunan GPU düğüm havuzunu silin.

Sonraki adımlar

Bu makalede, doğrudan AKS kümenize yapay zeka araç zinciri işleci eklentisiyle çıkarım yapmak için HuggingFace modelini eklemeyi öğrendiniz. AKS'de yapay zeka ve makine öğrenmesi hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: