Sglang本地部署Qwen3.5-9B模型

SGLang 本地部署 Qwen3.5-9B 大模型完整指南

前言

随着大语言模型(LLM)的快速发展,模型规模不断增大,对推理部署的要求也越来越高。如何在本地高效地部署和运行大模型,已成为许多开发者和AI从业者面临的核心挑战之一。本文将详细介绍如何使用 SGLang 推理框架在本地部署 Qwen3.5-9B 大模型,从环境准备到服务调用的完整流程。

一、Qwen3.5-9B 模型简介

Qwen3.5-9B 是阿里巴巴通义千问团队于2026年2月推出的 Qwen3.5 系列中的一款 Dense(稠密)模型。它采用 Gated DeltaNet 与 Gated Attention 混合架构 ,原生支持 262K 超长上下文,具备强大的原生多模态能力。

核心亮点:

  • 紧凑尺寸,越级性能:Qwen3.5-9B 的综合性能媲美大其10倍参数量的模型(如 gpt-oss-120B)
  • 原生多模态:采用"原生多模态"设计,文本与图像在统一语义空间训练,告别"视觉编码器+语言模型"的拼接式设计
  • 广泛评测领先:在指令遵循(IFBench)、博士级推理(GPQA)、数学推理(HMMT 25)、具身推理(ERQA)等多个权威评测中表现优异
  • 高性价比:非常适合需要较高智力水平但受限于显存资源的服务器端部署

二、SGLang 推理框架简介

SGLang 是一个高性能的大模型推理框架,专为 LLM 和 VLM 的高效服务而设计。相比其他推理框架,SGLang 在相同硬件环境下展现出了显著的性能优势------在部署 Qwen3.5 模型时,SGLang 的整体推理速度比 vLLM 快约 3.1 倍到 5.3 倍

SGLang 的核心特性:

  • RadixAttention:通过基数树(Radix Tree)自动缓存和复用前缀 KV Cache,多个请求若共享相同前缀(如系统提示词),只需计算一次
  • 广泛的硬件支持:支持 NVIDIA(GB200/B300/H100/A100等)、AMD(MI355/MI300)、Intel Xeon CPU、Google TPU、昇腾 NPU 等多种硬件平台
  • 丰富的部署模式:支持张量并行(TP)、数据并行(DP)、专家并行(EP)等多种并行策略
  • 推测解码:支持 EAGLE3 等推测解码算法,进一步加速推理

三、环境准备

3.1 硬件要求

Qwen3.5-9B 作为一款 9B 参数的 Dense 模型,对硬件的要求相对友好:

精度/量化 显存需求 推荐 GPU
BF16 ~18GB RTX 4090(24GB)
4-bit 量化 ~5-6.3GB RTX 4060(8GB)/ RTX 3060(12GB)

BF16 精度下约需 18GB 显存,4-bit 量化后仅需约 5-6.3GB 显存。单张 24GB 显存的 GPU(如 RTX 4090、A10G、H100)即可 comfortably 运行。

3.2 软件要求

  • 操作系统:Linux(推荐 Ubuntu 20.04+)或 Windows(需 WSL2)
  • Python:3.9 或更高版本
  • CUDA:11.7 或更高版本
  • NVIDIA 驱动:支持对应 CUDA 版本的驱动

3.3 创建虚拟环境(推荐)

建议使用虚拟环境避免依赖冲突:

bash 复制代码
# 使用 conda
conda create -n sglang-env python=3.10
conda activate sglang-env

# 或使用 venv
python -m venv sglang-env
source sglang-env/bin/activate  # Linux/Mac
# sglang-env\Scripts\activate   # Windows

四、安装 SGLang

4.1 使用 pip 安装(推荐)

最快捷的安装方式是通过 pip:

bash 复制代码
# 基础安装
pip install sglang

# 或安装全部依赖(推荐)
pip install "sglang[all]"

如需在 AMD ROCm 环境下使用:

bash 复制代码
pip install "sglang[all]" --index-url https://download.pytorch.org/whl/rocm6.2

4.2 使用 uv 安装(更快)

bash 复制代码
pip install --upgrade pip
pip install uv
uv pip install --prerelease=allow sglang

4.3 使用 Docker 安装

如果偏好容器化部署,可以使用官方 Docker 镜像:

bash 复制代码
docker run --gpus all \
  --shm-size 32g \
  -p 30000:30000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --ipc=host \
  lmsysorg/sglang:latest \
  python3 -m sglang.launch_server \
  --model-path "Qwen/Qwen3.5-9B" \
  --host 0.0.0.0 \
  --port 30000

注意:Docker 镜像需要至少 30GB 的可用磁盘空间。

五、下载模型

SGLang 支持从 Hugging Face 直接加载模型,首次启动时会自动下载。你也可以提前手动下载模型到本地:

bash 复制代码
# 安装 huggingface hub 工具
pip install huggingface-hub

# 下载模型(以官方 Qwen3.5-9B 为例)
huggingface-cli download Qwen/Qwen3.5-9B --local-dir ./models/Qwen3.5-9B

常用的 Qwen3.5-9B 模型变体:

模型名称 说明
Qwen/Qwen3.5-9B 官方基础版本
unsloth/Qwen3.5-9B-Base Unsloth 优化的预训练版本
Smoffyy/Qwen3.5-9B-Instruct-Revised-GGUF GGUF 量化版本,支持更低显存运行

六、启动 SGLang 服务

6.1 基础启动命令

最简单的启动方式:

bash 复制代码
python3 -m sglang.launch_server \
  --model-path "Qwen/Qwen3.5-9B" \
  --host 0.0.0.0 \
  --port 30000

6.2 常用启动参数

参数 说明 示例
--model-path 模型路径或 Hugging Face 模型名 Qwen/Qwen3.5-9B
--host 服务监听地址 0.0.0.0(允许外部访问)
--port 服务端口 30000
--tp-size 张量并行大小(GPU数量) 2
--context-length 上下文长度 128000(默认262K)
--mem-fraction-static 静态内存分配比例 0.8
--trust-remote-code 信任远程代码 使用自定义模型时需添加

6.3 针对不同硬件配置的启动示例

单卡 24GB GPU(如 RTX 4090):

bash 复制代码
python3 -m sglang.launch_server \
  --model-path "Qwen/Qwen3.5-9B" \
  --host 0.0.0.0 \
  --port 30000 \
  --tp-size 1

多卡并行(2×GPU):

bash 复制代码
python3 -m sglang.launch_server \
  --model-path "Qwen/Qwen3.5-9B" \
  --host 0.0.0.0 \
  --port 30000 \
  --tp-size 2

使用 GGUF 量化版本(低显存场景):

bash 复制代码
python3 -m sglang.launch_server \
  --model-path "Smoffyy/Qwen3.5-9B-Instruct-Revised-GGUF" \
  --host 0.0.0.0 \
  --port 30000

限制上下文长度以节省显存:

bash 复制代码
python3 -m sglang.launch_server \
  --model-path "Qwen/Qwen3.5-9B" \
  --host 0.0.0.0 \
  --port 30000 \
  --context-length 128000

Qwen3.5-9B 原生支持 262K 上下文,但将 --context-length 设为 128000 即可满足大多数场景,同时显著节省显存。

七、调用服务

SGLang 提供 OpenAI 兼容的 API 接口,可以使用 curl 或任何 OpenAI SDK 进行调用。

7.1 使用 curl 调用

对话补全(Chat Completions):

bash 复制代码
curl -X POST "http://localhost:30000/v1/chat/completions" \
  -H "Content-Type: application/json" \
  --data '{
    "model": "Qwen/Qwen3.5-9B",
    "messages": [
      {"role": "user", "content": "请介绍一下SGLang推理框架"}
    ]
  }'

文本补全(Completions):

bash 复制代码
curl -X POST "http://localhost:30000/v1/completions" \
  -H "Content-Type: application/json" \
  --data '{
    "model": "Qwen/Qwen3.5-9B",
    "prompt": "Once upon a time,",
    "max_tokens": 512,
    "temperature": 0.7
  }'

多模态调用(图像理解):

Qwen3.5-9B 支持原生多模态能力,可以直接传入图像 URL:

bash 复制代码
curl -X POST "http://localhost:30000/v1/chat/completions" \
  -H "Content-Type: application/json" \
  --data '{
    "model": "Qwen/Qwen3.5-9B",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "请用一句话描述这张图片"},
          {"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
        ]
      }
    ]
  }'

7.2 使用 Python SDK 调用

python 复制代码
import openai

client = openai.Client(
    base_url="http://localhost:30000/v1",
    api_key="EMPTY"  # SGLang 不需要 API Key
)

response = client.chat.completions.create(
    model="Qwen/Qwen3.5-9B",
    messages=[
        {"role": "user", "content": "请介绍一下SGLang推理框架"}
    ],
    temperature=0.7,
    max_tokens=1024
)

print(response.choices[0].message.content)

八、性能优化建议

8.1 RadixAttention 前缀缓存

SGLang 的 RadixAttention 是其核心创新之一,利用空闲 GPU 内存缓存和重用前缀 KV Cache。当多个请求共享相同前缀(如系统提示词、文档、对话历史)时,只需计算一次,后续请求直接复用。

这一机制在 Agent 多轮对话、RAG 等场景中尤其有效,缓存命中率更高。

8.2 内存优化

  • 调整 --mem-fraction-static:控制 KV Cache 池大小,默认值基于启发式算法自动设置
  • 使用 Chunked Prefill :通过 --chunked-prefill-size 控制预填充分块大小,如遇到 OOM 可尝试设为 4096 或 2048
  • 禁用 CUDA Graph :如果遇到内存问题,可尝试 --disable-cuda-graph

8.3 并行策略

  • 张量并行(TP) :通过 --tp-size 将模型权重分布到多张 GPU
  • 数据并行(DP) :通过 --dp-size 在高并发场景下提升吞吐量
  • 专家并行(EP) :对于 MoE 模型,通过 --ep-size 将专家分布到不同 GPU

8.4 推测解码

对于延迟敏感的场景,可以启用推测解码:

bash 复制代码
python3 -m sglang.launch_server \
  --model-path "Qwen/Qwen3.5-9B" \
  --speculative-algorithm EAGLE3 \
  --speculative-num-steps 3 \
  --speculative-num-draft-tokens 4

九、常见问题排查

9.1 显存不足(OOM)

现象:启动时提示 CUDA Out of Memory

解决方案

  1. 使用 GGUF 量化版本模型
  2. 限制上下文长度:--context-length 64000
  3. 调整 --mem-fraction-static 为更低值(如 0.6)
  4. 使用 --chunked-prefill-size 2048

9.2 模型下载缓慢或失败

解决方案

  1. 设置 Hugging Face 镜像源:

    bash 复制代码
    export HF_ENDPOINT=https://hf-mirror.com
  2. 提前手动下载模型到本地,使用 --model-path 指定本地路径

9.3 端口被占用

解决方案 :更换 --port 参数为其他可用端口

9.4 多模态功能不生效

确认

  1. 使用的是支持多模态的 Qwen3.5-9B 版本(非 Base 版本)
  2. 请求格式正确,使用 content 数组包含 image_url

十、总结

通过本文的完整指南,你应该已经能够在本地成功部署 Qwen3.5-9B 大模型。回顾整个流程:

  1. Qwen3.5-9B 是一款性价比极高的 9B 参数 Dense 模型,性能媲美大10倍参数的模型,原生支持 262K 超长上下文和多模态理解

  2. SGLang 是一款高性能推理框架,在部署 Qwen3.5 系列模型时,推理速度比 vLLM 快 3.1~5.3 倍,其 RadixAttention 机制通过前缀 KV Cache 复用大幅提升了多轮对话等场景的效率

  3. 部署门槛低:单张 24GB 显存的 GPU(如 RTX 4090)即可流畅运行 BF16 精度的 Qwen3.5-9B,使用 GGUF 量化后甚至可在 8GB 显存的 GPU 上运行

无论是用于本地开发测试、RAG 应用构建,还是作为企业级服务的推理后端,这套技术方案都能提供高效、稳定的模型服务能力。

相关推荐
阿伟玩不懂1 小时前
AI帮你读PDF——自建文档解析与智能问答工具
人工智能·pdf
燐妤1 小时前
梦绘片场 ProjectDream故事总纲场景剧本篇:从项目到成片的 AI 漫剧工作台
人工智能·git·ai·项目开发
AINative软件工程1 小时前
AI Agent 证据仲裁工程实践:别让检索结果按自信程度撒谎
人工智能·后端·ai编程
头发够用的程序员1 小时前
Nsight Systems 零基础入门:Trace采集与基础操作
人工智能·深度学习·神经网络·计算机视觉·边缘计算·分析工具
neocheng_5221 小时前
怎么评判 AI 证书的社会认可度?证书价值要结合实际场景判断
人工智能
搜yyzk6685 小时前
智能电话机器人:1天千通电话,高效低成本
人工智能
fthux9 小时前
装闭 RenoPit 源码解析(09):AnalysisEngine装修闭坑分析主流程
人工智能·ai·开源·github·open source·renopit
敏编程9 小时前
开源项目 NextBand:探索融合健康传感、语音交互与 AI Agent 的下一代可穿戴设备
人工智能
ovO10 小时前
我按下“发送”之后:DeepSeek Harness 如何把一次请求变成 1,177 个增量片段
人工智能·开源·deepseek