当前位置: windows系统城 >  微软资讯 >  NVIDIA 实现通义千问 Qwen3 的生产级应用集成和部署指南

NVIDIA 实现通义千问 Qwen3 的生产级应用集成和部署指南

更新时间:2025-05-06 18:27:59作者:wxclgg

NVIDIA 实现通义千问 Qwen3 的生产级应用集成和部署指南


阿里巴巴近期开源了混合推理大语言模型(LLM)通义千问 Qwen3,此次 Qwen3 开源模型系列包含两款混合专家模型 (MoE) 235B-A22B(总参数 2,350 亿,激活参数 220 亿)和 30B-A3B,以及六款稠密(Dense)模型 0.6B、1.7B、4B、8B、14B、32B。

现在,开发者能够基于 NVIDIA GPU,使用 NVIDIA TensorRT-LLM、Ollama、SGLang、vLLM 等推理框架高效集成和部署 Qwen3 模型,从而实现极快的词元 (token) 生成,以及生产级别的应用研发。

本文提供使用 Qwen3 系列模型的最佳实践,我们会展示如何使用上述框架来部署模型实现高效推理。开发者可以根据他们的应用场景需求来选择合适的框架,例如高吞吐量、低延迟、或是 GPU 内存占用(GPU footprint)。

Qwen3 模型

Qwen3 是中国首个混合推理模型,在 AIME、LiveCodeBench、ArenaHard、BFCL 等权威评测集上均获得出色的表现(信息来源于阿里巴巴官方微信公众号)。Qwen3 提供的系列开源稠密和 MoE 模型在推理、指令遵循、Agent 能力、多语言支持等方面均大幅增强,是全球领先的开源模型。

大语言模型的推理性能对于实时、经济高效的生产级部署至关重要

LLM 生态系统快速演进,新模型和新技术不断更新迭代,需要一种高性能且灵活的解决方案来优化模型。

推理系统设计颇具挑战,要求也不断提升,这些挑战包括 LLM 推理计算中预填充(prefill)和解码(decode)两个阶段对于计算能力和显存大小 / 带宽的需求差异,超大尺寸模型并行分布式推理,海量并发请求,输入输出长度高度动态请求等。

目前在推理引擎上有许多优化技术可用,包括高性能 kernel、低精度量化、Batch 调度、采样优化、KV 缓存(KV cache)优化等等,选择最适合自己应用场景的技术组合需要耗费开发者大量精力。

NVIDIA TensorRT-LLM 提供了最新的极致优化的计算 kernel、高性能 Attention 实现、多机多卡通信分布式支持、丰富的并行和量化策略等,从而在 NVIDIA GPU 上实现高效的 LLM 推理。此外,TensorRT-LLM 采用 PyTorch 的新架构还提供了直观、简洁且高效的模型推理配置 LLM API,从而能够兼顾极佳性能和灵活友好的工作流。

通过使用 TensorRT-LLM,开发者可以迅速上手先进的优化技术,其中包括定制的 Attention kernel、连续批处理 (in-flight batching) 、分页 KV 缓存 (Paged KV cache)、量化(FP8、FP4、INT4 AWQ、INT8 SmoothQuant)、投机采样等诸多技术。

使用 TensorRT-LLM 运行 Qwen3 的推理部署优化

下面以使用 Qwen3-4B 模型配置 PyTorch backend 为例,描述如何快捷进行基准测试以及服务化的工作。采用类似的步骤,也可以实现 Qwen3 其他 Dense 和 MoE 模型的推理部署优化。


首先准备 benchmark 测试数据集合和 extra-llm-api-config.yml 配置文件:

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


通过 trtllm-bench 运行 benchmark 指令:

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


相同 GPU 环境配置下,基于 ISL = 1K, OSL = 1K,相较 BF16 基准,Qwen3-4B 稠密模型使用 TensorRT-LLM 在 BF16 的推理吞吐(每秒生成的 token 数)加速比最高可达 16.04 倍。


NVIDIA 实现通义千问 Qwen3 的生产级应用集成和部署指南

Qwen3-4B 稠密模型在 TensorRT-LLM BF16 与 BF16 基准的推理吞吐性能比较


通过 trtllm-serve 运行 serve 指令:

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


模型启动成功后,便可通过标准 OpenAI API 进行模型推理调用。

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": "What is the capital of France?"

}

]

}'


使用 Ollama, SGLang, vLLM 框架运行 Qwen3-4B除了 TensorRT-LLM, Qwen 模型也可以使用诸如 Ollama,SGLang, vLLM 等框架,通过简单几步部署到 NVIDIA GPU。 Qwen3 提供了多种模型可以运行在终端和设备上,例如 NVIDIA Jeston 以及适用于 Windows 开发者的 NVIDIA RTX。


使用 Ollama 在本地运行 Qwen3-4B:

从以下网址下载和安装最新版本的 Ollama: ollama.com/download。使用 ollama run 命令运行模型,此操作将加载并初始化模型用于后续与用户交互。

ollama run qwen3:4b


在用户提示词或系统消息中添加 /think(默认值)和 /no_think 可在模型的思考模式之间切换。运行 ollama run 命令后,可以直接在终端中使用以下的示例提示词,来测试思考模式:

"Write a python lambda function to add two numbers" - Thinking mode enabled

"Write a python lambda function to add two numbers /no_think" - Non-thinking mode


参考 ollama.com/library/qwen3 查看更多模型变量,这些变量基于 NVIDIA GPU 上完成了优化。


使用 SGLang 运行 Qwen3-4B:

安装 SGLang 库

pip install "sglang[all]"


下载模型,在这个演示中,我们使用的是 Hugging Face 上的 huggingfaceCLI 命令提示符执行,请注意需要提供一个 API key 来下载模型。

huggingface-cli download --resume-download Qwen/Qwen3-4B --local-dir ./


加载和运行模型,请注意,根据不同的需求,可以传递额外的参数。更多详细信息可以参考相关文档。

python -m sglang.launch_server \

--model-path /ssd4TB/huggingface/hub/models/ \

--trust-remote-code \

--device "cuda:0" \

--port 30000 \

--host 0.0.0.0


调用模型推理

curl -X POST "http://localhost:30000/v1/chat/completions" \

-H "Content-Type: application/json" \

--data '{

"model": "Qwen/Qwen3-4B",

"messages": [

{

"role": "user",

"content": "What is the capital of France?"

}

]

}'


使用 vLLM 运行 Qwen3-4B

安装 vLLM 库

pip install vllm


通过 vllm serve 加载和运行模型,请注意,根据不同的需求,可以传递额外的参数。更多详细信息可以参考相关文档。

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


调用模型推理

curl -X POST "http://localhost:8000/v1/chat/completions" \

-H "Content-Type: application/json" \

--data '{

"model": "Qwen/Qwen3-4B",

"messages": [

{

"role": "user",

"content": "What is the capital of France?"

}

]

}'

总结

仅仅通过几行代码,开发者即可通过包括 TensorRT-LLM 在内的流行推理框架来使用最新的 Qwen 系列模型。

此外,对模型推理和部署框架的技术选型需要考虑到诸多关键因素,尤其是在把 AI 模型部署到生产环境中时,对性能、资源和成本的平衡。

相关教程

Copyright ©  2009-2025 windows系统城 www.wxclgg.com 版权声明