Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Deploy Qwen model inference on ACK with rtp-llm

Dernière mise à jour :Aug 11, 2026

Déployez un service d'inférence Qwen1.5-4B-Chat sur ACK avec rtp-llm, en utilisant des GPU A10 ou T4.

Contexte

Qwen1.5-4B-Chat

Qwen1.5-4B-Chat est un LLM basé sur Transformer de 4 milliards de paramètres, développé par Alibaba Cloud et entraîné sur des textes web, des livres spécialisés et du code. Consultez le dépôt GitHub Qwen.

rtp-llm

rtp-llm est un moteur d'accélération d'inférence pour LLM, développé spécifiquement pour les grands modèles de langage par l'équipe de prédiction des grands modèles d'Alibaba. Ce moteur améliore l'efficacité et les performances d'inférence. rtp-llm présente les caractéristiques suivantes :

  • Noyaux CUDA haute performance, notamment PagedAttention, FlashAttention et FlashDecoding.

  • Quantification WeightOnly INT8 et INT4.

  • Prise en charge d'algorithmes de quantification populaires tels que GPTQ (General Purpose Quantization) et AWQ (Approximate Weight Quantization).

  • Framework de quantification adaptatif KVCache avec des optimisations détaillées pour la surcharge liée au batching dynamique.

  • Optimisations pour le matériel GPU V100.

Consultez rtp-llm.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Un cluster ACK Pro avec des nœuds accélérés par GPU (Kubernetes 1.22+, ≥16 Go de mémoire GPU par nœud).

  • La version 525 du pilote GPU installée sur les nœuds GPU. Ajoutez le libellé ack.aliyun.com/nvidia-driver-version:525.105.17 pour fixer la version du pilote.

  • Le dernier client Arena est installé.

Étape 1 : Préparer les données du modèle

Téléchargez le modèle Qwen1.5-4B-Chat, importez-le dans OSS, puis créez le PV et le PVC dans votre cluster ACK.

Pour importer le modèle dans NAS, consultez Utiliser des volumes persistants NAS statiques.

    Étape 2 : Déployer le service d'inférence

    1. Déployez le service d'inférence pour le modèle Qwen1.5-4B-Chat.

      Déployez un service d'inférence personnalisé à l'aide d'Arena. Le service rtp-llm-qwen (v1) s'exécute sur un GPU avec un réplica et une sonde de readiness. L'option --data monte le PVC llm-model vers le chemin /model/Qwen1.5-4B-Chat dans le conteneur.

      Single A10 GPU

      arena serve custom \
          --name=rtp-llm-qwen \
          --version=v1 \
          --gpus=1 \
          --replicas=1 \
          --readiness-probe-action="tcpSocket" \
          --readiness-probe-action-option="port: 8000" \
          --readiness-probe-option="initialDelaySeconds: 30" \
          --readiness-probe-option="periodSeconds: 30" \
          --restful-port=8000 \
          --image=ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/rtp_llm:0.1.12-cuda12-ubuntu22.04 \
          --data=llm-model:/model/Qwen1.5-4B-Chat \
          "MODEL_TYPE=qwen_2 START_PORT=8000 CHECKPOINT_PATH=/model/Qwen1.5-4B-Chat TOKENIZER_PATH=/model/Qwen1.5-4B-Chat python3 -m maga_transformer.start_server"

      Single T4 GPU

      arena serve custom \
          --name=rtp-llm-qwen \
          --version=v1 \
          --gpus=1 \
          --replicas=1 \
          --readiness-probe-action="tcpSocket" \
          --readiness-probe-action-option="port: 8000" \
          --readiness-probe-option="initialDelaySeconds: 30" \
          --readiness-probe-option="periodSeconds: 30" \
          --restful-port=8000 \
          --image=ac2-registry.cn-hangzhou.cr.aliyuncs.com/ac2/rtp_llm:0.1.12-cuda12-ubuntu22.04 \
          --data=llm-model:/model/Qwen1.5-4B-Chat \
          "MODEL_TYPE=qwen_2 START_PORT=8000 CHECKPOINT_PATH=/model/Qwen1.5-4B-Chat TOKENIZER_PATH=/model/Qwen1.5-4B-Chat MAX_SEQ_LEN=2048 python3 -m maga_transformer.start_server"

      Résultat attendu :

      service/rtp-llm-qwen-v1 created
      deployment.apps/rtp-llm-qwen-v1-custom-serving created
      INFO[0001] The Job rtp-llm-qwen has been submitted successfully
      INFO[0001] You can run `arena serve get rtp-llm-qwen --type custom-serving -n default` to check the job status

      Le service d'inférence est déployé.

    2. Consultez les détails du service d'inférence et attendez qu'il soit prêt.

      arena serve get rtp-llm-qwen

      Résultat attendu :

      Name:       rtp-llm-qwen
      Namespace:  default
      Type:       Custom
      Version:    v1
      Desired:    1
      Available:  1
      Age:        1h
      Address:    192.168.XX.XX
      Port:       RESTFUL:8000
      GPU:        1
      
      Instances:
        NAME                                             STATUS   AGE  READY  RESTARTS  GPU  NODE
        ----                                             ------   ---  -----  --------  ---  ----
        rtp-llm-qwen-v1-custom-serving-696f699485-mn56v  Running  1h   1/1    0         1    cn-beijing.192.168.XX.XX

      Le pod du service d'inférence rtp-llm-qwen-v1-custom-serving-696f699485-mn56v est en cours d'exécution et prêt.

    Étape 3 : Vérifier le service d'inférence

    1. Configurez le transfert de port vers le service d'inférence.

      Important
      kubectl port-forward svc/rtp-llm-qwen-v1 8000:8000

      Résultat attendu :

      Forwarding from 127.0.0.1:8000 -> 8000
      Forwarding from [::1]:8000 -> 8000
    2. Envoyez une requête au service d'inférence.

      curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json"  -d '{"model": "/model/Qwen1.5-4B-Chat/", "messages": [{"role": "user", "content": "Run a quick test"}], "max_tokens": 10, "temperature": 0.7, "top_p": 0.9, "seed": 10}'

      Résultat attendu :

      {"id":"chat-","object":"chat.completion","created":1717383026,"model":"AsyncModel","choices":[{"index":0,"message":{"role":"assistant","content":"Sure. What would you like me to test for you?"},"finish_reason":"stop"}],"usage":{"prompt_tokens":21,"total_tokens":31,"completion_tokens":10}}

      Le modèle a généré une réponse au message de test.

    (Facultatif) Étape 4 : Nettoyer l'environnement

    Si vous n'avez plus besoin des ressources, supprimez-les rapidement pour éviter des frais inutiles.

    • Supprimez le service d'inférence de modèle.

      arena serve del rtp-llm-qwen
    • Supprimez le PV et le PVC.

      kubectl delete pvc llm-model
      kubectl delete pv llm-model

    Annexe : référence des paramètres de commande

    Paramètre Description Exemple
    serve custom Sous-commande Arena. Déploie un service de modèle personnalisé plutôt qu'un type prédéfini tel que tfserving ou triton.
    --name Nom du service. Identifiant unique utilisé pour les opérations ultérieures, telles que la consultation des journaux et la suppression du service. modelscope
    --version Version du service. Étiquette de version pour le service, utile pour la gestion des versions et les déploiements progressifs. v1
    --gpus Nombre de GPU. Nombre de GPU alloués à chaque pod. Requis lorsque le modèle nécessite des GPU pour l'inférence. 1
    --replicas Nombre de réplicas. Nombre de pods à exécuter. Davantage de réplicas augmentent le débit simultané et la disponibilité. 1
    --restful-port Port de l'API RESTful. Port sur lequel le service expose son API RESTful pour recevoir les requêtes d'inférence. 8000
    --readiness-probe-action Type de sonde de readiness. Méthode de vérification utilisée par la sonde de readiness Kubernetes pour déterminer si le conteneur est prêt à recevoir du trafic. tcpSocket
    --readiness-probe-action-option Options du type de sonde. Paramètres pour le type de sonde choisi. Pour tcpSocket, spécifie le port à vérifier. port: 8000
    --readiness-probe-option Paramètres supplémentaires de la sonde. Paramètres additionnels pour la sonde de readiness. Cet indicateur peut être répété. Définit le délai initial et l'intervalle de vérification. initialDelaySeconds: 30, periodSeconds: 30
    --data Montage de volume. Monte un PVC à un chemin spécifié à l'intérieur du conteneur, au format <pvc-name>:<mount-path>. Utilisé pour monter des fichiers de modèle préchargés. llm-model:/Qwen1.5-4B-Chat
    --image Image de conteneur. URL complète de l'image de conteneur qui définit l'environnement d'exécution pour le service. kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/quick-deploy-llm:v1
    [COMMAND] Commande de démarrage. Commande à exécuter après le démarrage du conteneur. Définit la variable d'environnement MODEL_ID et lance server.py. "MODEL_ID=/Qwen1.5-4B-Chat python3 server.py"