周红伟:Sglang+Vllm+Qwen3.5企业级部署案例实操
Qwen3.5部署指南摘要:Qwen3.5支持通过SGLang、vLLM等主流推理框架部署API服务,建议使用最新版本以获得最佳性能。该模型默认支持262K tokens上下文长度,生产环境推荐专用推理引擎。SGLang和vLLM均提供标准版、工具调用和多Token预测三种部署模式,其中vLLM还支持纯文本模式以释放内存。HuggingFace Transformers提供轻量级服务器方案。调用时
部署 Qwen3.5
Qwen3.5 可通过流行的推理框架以 API 形式部署。
以下展示了启动 Qwen3.5 模型 OpenAI 兼容 API 服务器的示例命令。

IMPORTANT
不同框架在推理效率和吞吐量方面存在显著差异。 我们建议使用最新版本的框架,以确保最佳性能和兼容性。 对于生产环境负载或高吞吐场景,强烈推荐使用专用的推理引擎,如 SGLang、KTransformers 或 vLLM。
IMPORTANT
该模型默认上下文长度为 262,144 个 token。 如果遇到内存不足(OOM)错误,请考虑缩小上下文窗口。 然而,由于 Qwen3.5 利用扩展上下文处理复杂任务,我们建议至少保持 128K tokens 的上下文长度,以保留其思考能力。

SGLang
SGLang 是一个面向大语言模型和视觉语言模型的快速推理框架。
Qwen3.5 需要使用开源仓库主分支中的 SGLang,可在全新环境中通过以下命令安装:
uv pip install 'git+https://github.com/sgl-project/sglang.git#subdirectory=python&egg=sglang[all]'
更多详情请参见其文档。
以下命令将在 http://localhost:8000/v1 创建 API 端点:
-
标准版:以下命令可使用 8 块 GPU 上的张量并行创建最大上下文长度为 262,144 tokens 的 API 端点。
SGLANG_USE_MODELSCOPE=true python -m sglang.launch_server --model-path Qwen/Qwen3.5-397B-A17B --port 8000 --tp-size 8 --mem-fraction-static 0.8 --context-length 262144 --reasoning-parser qwen3 -
工具调用:若需支持工具调用,可使用以下命令。
SGLANG_USE_MODELSCOPE=true python -m sglang.launch_server --model-path Qwen/Qwen3.5-397B-A17B --port 8000 --tp-size 8 --mem-fraction-static 0.8 --context-length 262144 --reasoning-parser qwen3 --tool-call-parser qwen3_coder -
多 Token 预测(MTP):推荐使用以下命令启用 MTP:
SGLANG_USE_MODELSCOPE=true python -m sglang.launch_server --model-path Qwen/Qwen3.5-397B-A17B --port 8000 --tp-size 8 --mem-fraction-static 0.8 --context-length 262144 --reasoning-parser qwen3 --speculative-algo NEXTN --speculative-num-steps 3 --speculative-eagle-topk 1 --speculative-num-draft-tokens 4
vLLM
vLLM 是一个高吞吐、内存高效的 LLM 推理与服务引擎。
Qwen3.5 需要使用开源仓库主分支中的 vLLM,可在全新环境中通过以下命令安装:
uv pip install vllm --torch-backend=auto --extra-index-url https://wheels.vllm.ai/nightly
更多详情请参见其文档。
有关 Qwen3.5 的详细使用指南,请参阅 vLLM Qwen3.5 使用说明。
以下命令将在 http://localhost:8000/v1 创建 API 端点:
-
标准版本:以下命令可用于在 8 个 GPU 上使用张量并行创建一个最大上下文长度为 262,144 个 token 的 API 端点。
VLLM_USE_MODELSCOPE=true vllm serve Qwen/Qwen3.5-397B-A17B --port 8000 --tensor-parallel-size 8 --max-model-len 262144 --reasoning-parser qwen3 -
工具调用:若要支持工具使用,可使用以下命令。
VLLM_USE_MODELSCOPE=true vllm serve Qwen/Qwen3.5-397B-A17B --port 8000 --tensor-parallel-size 8 --max-model-len 262144 --reasoning-parser qwen3 --enable-auto-tool-choice --tool-call-parser qwen3_coder -
多 Token 预测(MTP):推荐使用以下命令启用 MTP:
VLLM_USE_MODELSCOPE=true vllm serve Qwen/Qwen3.5-397B-A17B --port 8000 --tensor-parallel-size 8 --max-model-len 262144 --reasoning-parser qwen3 --speculative-config '{"method":"qwen3_next_mtp","num_speculative_tokens":2}' -
纯文本模式:以下命令会跳过视觉编码器和多模态配置,以释放内存用于额外的 KV 缓存:
VLLM_USE_MODELSCOPE=true vllm serve Qwen/Qwen3.5-397B-A17B --port 8000 --tensor-parallel-size 8 --max-model-len 262144 --reasoning-parser qwen3 --language-model-only
KTransformers
KTransformers 是一个灵活的框架,支持通过 CPU-GPU 异构计算体验前沿的大语言模型推理优化。
有关使用 KTransformers 运行 Qwen3.5 的信息,请参阅 KTransformers 部署指南。
Hugging Face Transformers
Hugging Face Transformers 提供了一个_轻量级_服务器,可用于快速测试和中等负载部署。
运行 Qwen3.5 需要最新版的 transformers:
pip install "transformers[serving] @ git+https://github.com/huggingface/transformers.git@main"
更多详情请参见其文档。同时请确保已安装 torchvision 和 pillow。
然后,运行 transformers serve 启动服务器,API 端点位于 http://localhost:8000/v1;如果可用,它会自动将模型加载到加速器上:
transformers serve --force-model Qwen/Qwen3.5-397B-A17B --port 8000 --continuous-batching
通过 Chat Completions API 使用 Qwen3.5
Chat Completions API 可通过标准 HTTP 请求或 OpenAI SDK 访问。
此处我们展示使用 OpenAI Python SDK 的示例。
开始之前,请确保已安装 SDK 并配置了 API 密钥和 API 基础 URL,例如:
pip install -U openai # Set the following accordingly export OPENAI_BASE_URL="http://localhost:8000/v1" export OPENAI_API_KEY="EMPTY"
TIP
我们建议在生成时使用以下采样参数组合:
- 思考模式:
temperature=0.6, top_p=0.95, top_k=20, min_p=0.0, presence_penalty=0.0, repetition_penalty=1.0 - 指令(或非思考)模式:
temperature=0.7, top_p=0.8, top_k=20, min_p=0.0, presence_penalty=1.5, repetition_penalty=1.0
请注意,不同推理框架对采样参数的支持情况可能有所不同。
纯文本输入
from openai import OpenAI # Configured by environment variables client = OpenAI() messages = [ {"role": "user", "content": "Type \"I love Qwen3.5\" backwards"}, ] chat_response = client.chat.completions.create( model="Qwen/Qwen3.5-397B-A17B", messages=messages, max_tokens=81920, temperature=0.6, top_p=0.95, extra_body={ "top_k": 20, }, ) print("Chat response:", chat_response)
更多推荐

所有评论(0)