阿里巴巴近期發布了其開源的混合推理大語言模型(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 倍。

- 通過
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 模型部署到生產環境中時,對性能、資源和成本的平衡。