/ ai资讯

NVIDIA使用Qwen3系列模型的最佳实践

发布时间:2025-05-08 13:46:18

阿里巴巴近期发布了其开源的混合推理大语言模型 (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 模型的推理部署优化。

1. 首先准备 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<
  

   

2. 通过trtllm-bench运行 benchmark 指令:

trtllm-bench 
  --modelQwen/Qwen3-4B 
  --model_path/path/to/Qwen3-4B 
   throughput 
  --backendpytorch 
  --max_batch_size128
  --max_num_tokens16384
  --dataset/path/to/dataset.txt
  --kv_cache_free_gpu_mem_fraction0.9
  --extra_llm_api_options/path/to/extra-llm-api-config.yml
  --concurrency128
  --num_requests32768
  --streaming

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

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

该图片来源于 NVIDIA Blog:Integrate and Deploy Tongyi Qwen3 Models into Production applications with NVIDIA,若您有任何疑问或需要使用该图片,请联系 NVIDIA

3. 通过trtllm-serve运行 serve 指令:

trtllm-serve 
 /path/to/Qwen3-4B 
--hostlocalhost 
--port8000
--backendpytorch 
--max_batch_size128
--max_num_tokens16384
--kv_cache_free_gpu_memory_fraction0.95
--extra_llm_api_options/path/to/extra-llm-api-config.yml

4. 模型启动成功后,便可通过标准 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:

1. 从以下网址下载和安装最新版本的 Ollama: ollama.com/download。

2. 使用ollama run命令运行模型,此操作将加载并初始化模型用于后续与用户交互。

ollamarun qwen3:4b

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

"Writeapython lambda functiontoadd two numbers" - Thinking mode enabled
"Writeapython lambda functiontoadd two numbers /no_think" - Non-thinking mode

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

使用 SGLang 运行 Qwen3-4B:

1. 安装 SGLang 库

pipinstall"sglang[all]"

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

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

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

python-m sglang.launch_server   
--model-path /ssd4TB/huggingface/hub/models/ 
--trust-remote-code 
--device "cuda:0" 
--port 30000 
--host 0.0.0.0

4. 调用模型推理

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:

1. 安装 vLLM 库

pipinstall vllm

2. 通过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

3. 调用模型推理

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 模型部署到生产环境中时,对性能、资源和成本的平衡。

作者

Ankit Patel

NVIDIA 资深总监,负责软件开发工具包、应用程序编程接口以及开发者工具方面的开发者拓展工作。2011 年作为 GPU 产品经理加入 NVIDIA,之后从事虚拟化、光线追踪和 AI 等产品在软件产品管理方面的工作。Ankit 毕业于康考迪亚大学 (Concordia University),获计算机科学学士学位,并在康奈尔大学 (Cornell University) 取得工商管理硕士学位 (MBA)。

刘川

NVIDIA 解决方案架构经理,整体负责中国区云计算行业 GPU 解决方案。于南京大学获计算机科学与技术专业硕士学位。带领团队主要从事大语言模型、生成式 AI 以及搜索推荐等重点 AI 任务的 GPU 适配、优化和加速方案的设计、部署和落地,帮助多家头部互联网公司在诸多业务中大幅降本增效。

金国强

NVIDIA 资深解决方案架构师,主要负责深度学习生成式 AI 领域模型训练、推理优化以及大模型开发与应用云端落地等技术方向合作。

郝尚荣

NVIDIA 深度学习解决方案架构师,2021 年加入 NVIDIA 解决方案架构团队,主要从事模型推理优化加速的工作,目前主要支持国内 CSP 客户在大语言模型推理加速的工作。

谷鋆

NVIDIA 深度学习解决方案架构师,于 2022 年加入 NVIDIA 解决方案架构师团队,专门为国内 CSP 进行 LLM 模型推理优化。

高慧怡

NVIDIA 深度学习解决方案架构师,2020 年加入 NVIDIA 解决方案架构团队,从事深度学习应用在异构系统的加速工作,目前主要支持国内 CSP 客户在大语言模型的训练加速工作。

  • NVIDIA NVIDIA 关注

    关注

    14

    文章

    5194

    浏览量

    105503

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

如有疑问请发送邮件至:bangqikeconnect@gmail.com