HyperAI
Back to Headlines

Optimiser et Déployer les Modèles Tongyi Qwen3 sur NVIDIA pour une Inference en Production Efficace

il y a 16 jours

Alibaba lance la famille Tongyi Qwen3 de modèles de langages hybrides Alibaba Cloud a récemment dévoilé la famille Tongyi Qwen3, une série de modèles de langages hybrides à grande échelle (Large Language Models, LLMs) ouverts à la communauté. Ces modèles sont conçus pour être utilisés sur des GPU NVIDIA, offrant des performances optimisées en générant des tokens ultra-rapidement. Cette initiative s'inscrit dans la démarche d'Alibaba visant à promouvoir le développement de l'IA dans différents domaines, notamment le raisonnement, le suivi des instructions, les capacités d'agents et le support multilingue. Détails techniques et performances de Qwen3 La famille Qwen3 comprend deux modèles en Mixture of Experts (MoE) : 235B-A22B (235 milliards de paramètres totaux et 22 milliards de paramètres actifs) et 30B-A3B, ainsi que six modèles denses, allant de 0,6 milliard à 32 milliards de paramètres. Ces modèles se distinguent par leur précision remarquable sur diverses benchmarks populaires comme AIME, LiveCodeBench, ArenaHard et BFCL. L'un des principaux avantages de Qwen3 réside dans son optimisation pour le déploiement en production, offrant des performances en temps réel et des coûts maîtrisés. Cela est crucial dans l'écosystème IA, où de nouveaux modèles et technologies apparaissent constamment, exigeant des solutions flexibles et performantes. Défis de l'inférence des LLM Le processus d'inférence pour les LLMs est complexe et nécessite une gestion précise des ressources. Les défis incluent : - Les besoins en calcul et en mémoire variables lors des phases de pré-remplissage et de décodage. - La nécessité d'une inférence parallèle et distribuée pour les modèles extrêmement volumineux. - La gestion de demandes massives et simultanées. - Des requêtes avec des longueurs d'entrée/sortie hautement dynamiques. Pour optimiser ces performances, les développeurs disposent de nombreuses techniques, comme : - Des noyaux de calcul haute performance. - La quantification en basse précision. - La gestion de lots (batch scheduling). - L'optimisation de l'échantillonnage et du cache KV. Utilisation de TensorRT-LLM pour Qwen3 TensorRT-LLM, développé par NVIDIA, offre des noyaux de calcul optimisés, une implantation attention performante, une prise en charge distribuée multi-nœuds et multi-GPUs, ainsi que diverses stratégies de parallélisme et de quantification. Cela permet une inférence efficace sur des GPU NVIDIA. Voici comment procéder pour optimiser l'inférence de Qwen3-4B avec TensorRT-LLM : Préparation du jeu de données de benchmark et du fichier de configuration : ```bash python3 /path/to/TensorRT-LLM/benchmarks/cpp/prepare_dataset.py \ --tokenizer=/path/to/Qwen3-4B \ --stdout token-norm-dist --num-requests=32768 \ --input-mean=1024 --output-mean=1024 \ --input-stdev=0 --output-stdev=0 > /path/to/dataset.txt cat >/path/to/extra-llm-api-config.yml <<EOF pytorch_backend_config: use_cuda_graph: true cuda_graph_padding_enabled: true cuda_graph_batch_sizes: - 1 - 2 - 4 - 8 - 16 - 32 - 64 - 128 - 256 - 384 print_iter_log: true enable_overlap_scheduler: true EOF ``` Exécution de la commande de benchmark : bash trtllm-bench \ --model Qwen/Qwen3-4B \ --model_path /path/to/Qwen3-4B \ throughput \ --backend pytorch \ --max_batch_size 128 \ --max_num_tokens 16384 \ --dataset /path/to/dataset.txt \ --kv_cache_free_gpu_mem_fraction 0.9 \ --extra_llm_api_options /path/to/extra-llm-api-config.yml \ --concurrency 128 \ --num_requests 32768 \ --streaming Hébergement du modèle : bash trtllm-serve \ /path/to/Qwen3-4B \ --host localhost \ --port 8000 \ --backend pytorch \ --max_batch_size 128 \ --max_num_tokens 16384 \ --kv_cache_free_gpu_memory_fraction 0.95 \ --extra_llm_api_options /path/to/extra-llm-api-config.yml Appel d'inférence via l'API OpenAI : bash curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Qwen/Qwen3-4B", "Max_tokens": 1024, "Temperature": 0, "messages": [ { "role": "user", "content": "Quelle est la capitale de la France?" } ] }' Les tests montrent que, avec une configuration GPU identique, le modèle dense Qwen3-4B atteint jusqu'à 16,04 fois plus de vitesse d'inférence (tokens/sec) quand il est exécuté sur TensorRT-LLM avec une précision BF16, comparé au baseline BF16. Déploiement de Qwen3 avec d'autres frameworks En plus de TensorRT-LLM, Qwen3 peut être déployé sur des GPU NVIDIA via d'autres frameworks populaires comme Ollama, SGLang et vLLM. Voici les étapes pour chacun : Ollama : Exécuter localement le modèle Qwen3-4B : bash ollama run qwen3:4b Utiliser le mode "Thinking" pour obtenir des réponses plus réfléchies : bash "Write a python lambda function to add two numbers" - Mode Thinking activé "Write a python lambda function to add two numbers /no_think" - Mode Thinking désactivé SGLang : Installer SGLang : bash pip install "sglang[all]" Télécharger le modèle Qwen3-4B : bash huggingface-cli download --resume-download Qwen/Qwen3-4B --local-dir ./ Lancer le serveur SGLang : bash python -m sglang.launch_server \ --model-path /ssd4TB/huggingface/hub/models/ \ --trust-remote-code \ --device "cuda:0" \ --port 30000 \ --host 0.0.0.0 Faire des appels d'inférence : bash curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Qwen/Qwen3-4B", "messages": [ { "role": "user", "content": "Quelle est la capitale de la France?" } ] }' vLLM : Installer vLLM : bash pip install vllm Lancer le serveur vLLM : bash vllm serve "Qwen/Qwen3-4B" \ --tensor-parallel-size 1 \ --gpu-memory-utilization 0.85 \ --device "cuda:0" \ --max-num-batched-tokens 8192 \ --max-num-seqs 256 Faire des appels d'inférence : bash curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Qwen/Qwen3-4B", "messages": [ { "role": "user", "content": "Quelle est la capitale de la France?" } ] }' Évaluation par l'industrie et profil de l'entreprise Les experts de l'industrie considèrent Qwen3 comme un modèle d'IA pionnier et performant. Alibaba, une entreprise leader dans le domaine du cloud computing et de l'intelligence artificielle, continue d'innover en proposant des solutions accessibles et adaptées aux besoins des développeurs. Ce lancement renforce la position d'Alibaba comme contributeur majeur dans l'open source et l'écosystème IA global. La sélection du framework pour le déploiement et l'inférence de modèles d'IA comme Qwen3 dépend de critères clés tels que la performance, la gestion des ressources et le coût. Chaque framework a ses propres avantages, adaptés à des cas d'utilisation spécifiques. Par exemple, TensorRT-LLM est particulièrement efficace pour les environnements qui nécessitent une hauteperformance, tandis que Ollama et vLLM offrent des solutions plus flexibles et faciles à mettre en place pour des scénarios variés.

Related Links