周红伟:Sglang+Vllm+Qwen3.5企业级部署案例实操

部署 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)

相关推荐
csdn_aspnet1 小时前
如何用 C# 和 Gemma 3 在本地构建一个真正能完成工作的 AI 代理的
人工智能·ai·c#·gemma
啊哈哈哈哈哈啊哈哈1 小时前
边缘计算与轮廓检测
人工智能·opencv·计算机视觉
cskywit1 小时前
从DFL到无NMS推理:一文拆解YOLO26背后的工程取舍与数学原理
人工智能·机器学习
PPHT-H1 小时前
【人工智能笔记】第四十四节:OpenClaw封神工具 openclaw-free-openai-proxy 免费AI模型批量调用,零token费+稳到不翻车!
人工智能·深度学习·openclaw·免费openai·ai服务代理
yiyu07162 小时前
3分钟搞懂深度学习AI:实操篇:RNN
人工智能·深度学习
uzong2 小时前
CoPaw是什么?-- 2026年开源的国产个人AI助手
人工智能·后端
海盗儿2 小时前
TensorRT-LLM 框架与源码分析
人工智能
无心水2 小时前
【任务调度:框架】11、分布式任务调度进阶:高可用、幂等性、性能优化三板斧
人工智能·分布式·后端·性能优化·架构·2025博客之星·分布式调度框架
gujunge2 小时前
Spring with AI (2): 评估答案——UnitTest引入
ai·大模型·llm·openai·qwen·rag·spring ai·deepseek
码森林2 小时前
小龙虾居然比你更健忘?OpenClaw 记忆系统指南,让它永远记住你
人工智能·ai编程·全栈