本地部署 Qwen3.8-27B-FP8 + DFlash2:96GB 总显存实测提速 2.89 倍(保姆级教程)
本地部署 Qwen3.8-27B-FP8 + DFlash2:96GB 总显存实测提速 2.89 倍(保姆级教程)
Agent 一键安装提示词
如果不想手动执行下面的命令,可以把这篇文章连同下面这段提示词交给能够操作 Linux 终端的 AI Agent 或者让codex、opencode之类的工具通过ssh连接服务器安装。Agent 会先检查机器是否满足条件,再安装和验证。
复制下面整段内容:
请在这台 Linux 机器上部署 Qwen3.8-27B-FP8 + DFlash2,并使用 SGLang 提供 OpenAI 兼容 API。请自主完成检查、安装、下载、启动和验证,但严格遵守下面的要求。
【目标配置】
- Target 模型:Qwen/Qwen3.8-27B-FP8
- DFlash2 模型:z-lab/Qwen3.8-27B-DFlash2
- SGLang:0.5.18 稳定版
- Python:3.12
- 推荐运行时:CUDA 12.9
- 默认上下文:131072;稳定运行后可测试 262144 以获得更长上下文能力
- 默认静态显存比例:0.80
- DFlash block size:8
- API 默认监听:0.0.0.0:8002
- 模型目录:优先使用空间充足的 SSD;如果没有指定,使用 $HOME/models
【第一步:只检查,不修改】
1. 检查操作系统、CPU架构、内存、磁盘空间、Conda、NVIDIA驱动、GPU型号、GPU数量、单卡显存、总显存、空闲显存和Compute Capability。
2. 使用nvidia-smi确认驱动正常;确认GPU原生支持FP8。若GPU不适合运行该FP8模型,停止安装并说明原因,不要强行继续。
3. 确认至少有100GB可用SSD空间。空间不足时停止,不要删除已有模型或文件。
4. 检查8002端口和现有SGLang进程。端口被占用或GPU正在运行其他模型时,只报告占用者,不要自行kill进程。
5. 根据实际参与推理的GPU数量确定TP_SIZE。单卡为1、双卡为2、四卡为4;同时确认该TP值能被模型结构支持。多卡型号或显存不同要先提示风险。
6. 先汇总检查结果、拟使用的目录、TP_SIZE、上下文长度和预计磁盘占用,再继续安装。
【环境安装】
1. 创建全新的Conda环境qwen38-fp8-dflash2,不复用、不覆盖其他环境。
2. 按本文“准备Conda环境”章节安装Python 3.12、uv、SGLang 0.5.18及CUDA 12.9对应的PyTorch、SGLang Kernel和DeepGEMM wheel。
3. 不要因为系统显示了更高版本CUDA,就擅自改用CUDA 13;nvidia-smi显示的是驱动支持能力,不等于当前Python环境的CUDA运行时。
4. 不要修改系统CUDA、NVIDIA驱动、系统Python或其他Conda环境。确实需要升级驱动时,先停止并说明原因。
5. 安装后必须验证:torch.cuda.is_available()为True、torch.version.cuda为12.9、GPU数量正确、SGLang版本为0.5.18,并确认launch_server帮助中存在DFLASH参数。
6. 如果指定版本或cu129 wheel无法下载,不要静默换版本;保留完整错误并说明下一步建议。
【模型下载】
1. 从魔塔下载Qwen/Qwen3.8-27B-FP8和z-lab/Qwen3.8-27B-DFlash2到独立目录。
2. 使用可断点续传的下载方式。下载后检查目录大小、配置文件、Safetensors索引和所有权重分片,不能只看到目录存在就认为下载成功。
3. 确认Target与Draft模型匹配。不要用GGUF、其他量化版、微调版或名字相似的模型替换。
4. 检查Target模型的lm_head.weight是否为BF16/FP16/FP32。若被量化并出现“DFlash2 selector requires a dense ... lm_head”,停止并报告,不要随意增加转换参数。
【启动原则】
1. 第一次先以前台方式启动,保留完整日志,方便看到加载和CUDA错误。
2. 使用SGLang默认通信和计算内核。不要预先修改SGLang源码,也不要默认添加以下特定机器兼容参数:
--disable-custom-all-reduce
--cuda-graph-backend-decode=disabled
--mm-feature-transport cpu
3. DFlash使用--speculative-algorithm DFLASH、正确的Draft路径和block size 8;不要启用DP Attention,PP size保持1。
4. 先使用131072上下文和0.80静态显存比例。不要第一次启动就直接拉满256K。
5. 如果OOM,按顺序处理:确认无其他GPU进程;降低context length;将mem fraction从0.80降到0.75;必要时将DFlash block size从8降到4。每次只修改一项并记录结果。
6. 如果FlashInfer在当前GPU上不兼容,再尝试--attention-backend triton和--sampling-backend pytorch;不要把兼容回退当成默认配置。
7. 如果出现内核、NCCL或多卡通信错误,先保存完整日志和GPU拓扑信息,不要直接修改site-packages源码。
【验收项目】
1. 等待日志出现“The server is fired up and ready to roll!”。
2. 验证GET /health返回HTTP 200。
3. 验证GET /model_info能返回正确模型信息。
4. 调用/v1/chat/completions完成一次短对话,确认返回内容正常。
5. 检查日志中DFLASH确实启用,而不是只启动了纯FP8模型。
6. 短请求稳定后再逐步测试长上下文;测试256K时要预留输出token,输入和输出总和不能超过262144。
7. 最后给出实际启动命令、环境版本、模型路径、TP_SIZE、上下文、显存占用、日志路径和API地址。
【端口与安全】
1. 本机验证通过前不要开放防火墙端口。
2. 如果需要局域网访问,确认服务监听0.0.0.0后,只开放TCP 8002,并验证实际连通性。
3. 不要把无认证的SGLang接口直接暴露到公网。公网使用必须增加带身份认证和HTTPS的反向代理。
【最终输出格式】
- 环境检查结果
- 实际执行的安装命令
- 安装版本验证结果
- 两个模型的下载及完整性检查结果
- 最终启动命令和参数说明
- health、model_info、chat completions测试结果
- 显存占用和可用KV/上下文信息
- 遇到的问题、采取的处理以及仍存在的风险
任何步骤失败时先诊断并保留错误信息,不要删除环境、模型、日志或已有服务,也不要为了“继续执行”而静默更换模型、CUDA、PyTorch或SGLang版本。
一、写在前面
最近想在本地跑一个参数量比较大的 Qwen 模型,真正开始部署后才发现,模型文件下载下来只是第一步,显存、推理框架、量化格式、上下文长度和启动参数,每一项都可能影响最后能不能跑起来。
这篇文章把我实际跑通的方案整理出来,使用 SGLang + Qwen3.8-27B-FP8 + DFlash2,最终提供一个兼容 OpenAI 接口的本地模型服务。
如果你只是想在本地聊天,先看第二节的硬件要求;如果硬件符合,再按后面的步骤一步一步执行即可。
本文最终实现的效果:
- 使用约 96GB 总显存运行 Qwen3.8-27B;
- 使用官方 FP8 模型,模型文件约 31GB;
- 使用 DFlash2 加速生成;
- 支持单请求最长约 256K 上下文;
- 提供
/v1/chat/completions接口,可以被 Open WebUI、Cherry Studio 或自己写的程序调用。
如果第一次接触本地大模型,先记住下面几个词:
| 名称 | 简单解释 |
|---|---|
| FP8 | 用 8 位浮点数保存大部分模型权重,可以减少显存占用 |
| token | 模型处理文字时使用的基本单位,不完全等于“一个汉字”或“一个单词” |
| 上下文 | 模型一次能够读取的输入、历史对话和输出总长度 |
| KV Cache | 模型生成时保存在显存中的上下文缓存;上下文越长,占用越大 |
| API | 让聊天软件或其他程序调用本地模型的接口 |
二、先确认硬件够不够
2.1 推荐环境
| 硬件/软件 | 推荐配置 |
|---|---|
| GPU | 支持 FP8 的 NVIDIA GPU,例如 RTX 4090、L40S、H100、H200 或更新型号 |
| GPU 总显存 | 80GB 起步,推荐 96GB 以上 |
| 系统 | Ubuntu 22.04/24.04 或其他常用 Linux 发行版 |
| CPU | 建议 16 核以上,不是硬性要求 |
| 内存 | 64GB 起步,建议 128GB |
| 硬盘 | SSD,至少预留 100GB |
| NVIDIA 驱动 | 至少满足 CUDA 12.x 要求,建议使用当前稳定驱动 |
| CUDA 运行时 | 推荐 CUDA 12.9 |
| Python | 3.12 |
判断能否部署时,先看参与推理的 GPU 总显存,不需要限定显卡数量和型号。例如一张 H100 80GB 就按 80GB 判断,四张 24GB GPU 就按 96GB 判断。后文的 TP_SIZE 要设置为实际参与推理的 GPU 数量。
开始前还需要满足两个条件:
- Linux 中执行
nvidia-smi能看到准备使用的 GPU; - Conda 已经安装并能正常创建环境。
本文选择 CUDA 12.9,是因为 SGLang 官方为它提供了完整的 PyTorch、SGLang Kernel 和 DeepGEMM wheel,适合更多已经部署 CUDA 12 系列驱动的机器。SGLang 当前默认安装路径已经使用 CUDA 13,但没有必要为了本文专门把一台稳定运行的 CUDA 12 服务器升级到 CUDA 13。
这里说的 CUDA 12.9 主要是 Python 环境中安装的运行时版本,不要求系统预先安装完整的 CUDA Toolkit;NVIDIA 驱动需要能够支持该运行时。
2.2 按总显存选择配置
| 可用总显存 | 建议 |
|---|---|
| 24GB 左右 | 不建议运行本文的 27B 方案,优先选择 7B/14B 模型 |
| 48GB 左右 | 可以尝试 27B FP8,但 DFlash2 和长上下文空间较紧,建议从 32K/64K 开始 |
| 64GB~80GB | 可以尝试 FP8 + DFlash2,建议先设为 64K/128K,再逐步增加上下文 |
| 80GB 以上 | 基本具备运行本文方案的显存条件;建议先从 128K 上下文开始 |
| 96GB 及以上 | 可以直接参考本文的 256K 参数;本文已在 96GB 总显存上验证通过 |
显存可以来自一张或多张 NVIDIA GPU。例如:一张 80GB H100 的总显存就是 80GB,四张 24GB GPU 的总显存就是 96GB。本文启动命令中的张量并行数量需要改成实际参与推理的 GPU 数量。
总显存适合用来快速判断硬件是否够用,但多张显卡不会自动变成一整块显存,还需要 SGLang 通过张量并行拆分模型。多卡机器最好使用相同型号、相同显存容量的 GPU。
2.3 磁盘空间不要估少
至少要给以下内容留空间:
- Qwen3.8-27B-FP8:约 31GB;
- DFlash2 草稿模型:约数 GB;
- Conda 环境、缓存和日志:建议预留 20GB;
- 下载过程中的临时文件:最好再留 20GB。
实际部署时建议准备 100GB 以上 SSD 空间。模型放在机械硬盘上也能运行,但启动和读取权重会明显变慢。
三、DFlash2 到底是什么
正常的模型推理是:模型生成一个 token,再生成下一个 token。DFlash2 的思路是增加一个较小的草稿模型,先快速猜一小段内容,再让 Qwen3.8-27B 一次性检查这些猜测。
可以简单理解为:
用户提问
↓
DFlash2 草稿模型:快速猜几个 token
↓
Qwen3.8-27B:一次性验证并接受正确的 token
↓
继续生成
DFlash2 不会改变最终使用的目标模型,回答仍然由 Qwen3.8-27B 决定。它能加速多少,取决于草稿模型猜得准不准:
- 数学、格式固定的任务通常收益较高;
- 代码生成收益中等;
- 开放式聊天、写作类任务收益可能较低;
- 如果目标模型换成了差异很大的微调版本,DFlash2 的接受率可能下降。
四、本文最终效果
在 96GB 总显存(2 × RTX 4090 48GB)、TP=2、256K 上下文、相同提示词和相同输出长度的条件下,实测结果如下。不同 GPU、CUDA 和 SGLang 版本的结果会有差异:
| 测试任务 | 纯 FP8 | FP8 + DFlash2 | 加速比 |
|---|---|---|---|
| 数学推导 | 8.86 token/s | 38.80 token/s | 4.38 倍 |
| Python 代码 | 8.91 token/s | 21.09 token/s | 2.37 倍 |
| 中文说明 | 8.99 token/s | 17.48 token/s | 1.94 倍 |
| 平均 | 8.92 token/s | 25.79 token/s | 2.89 倍 |
需要注意,DFlash2 会占用一部分额外显存,所以它不是“速度和容量同时无条件增加”:
- 纯 FP8 的 KV Cache 容量更大,适合更多并发请求;
- FP8 + DFlash2 的单请求生成速度更快,但并发能力会下降;
- 如果你主要是自己聊天或写代码,优先考虑 FP8 + DFlash2;
- 如果你要给很多人同时提供服务,建议分别测试两套配置。
五、准备 Conda 环境
5.1 创建一个全新的环境
这套配置使用独立的 Conda 环境:
conda create -n qwen38-fp8-dflash2 python=3.12 -y
conda activate qwen38-fp8-dflash2
python -m pip install --upgrade pip
python -m pip install uv
5.2 安装 SGLang 和全部依赖
本文使用 SGLang 0.5.18 稳定版。先安装 SGLang、ModelScope 和 Safetensors:
uv pip install --prerelease=allow \
"sglang==0.5.18" \
"modelscope==1.39.1" \
"safetensors==0.8.0"
然后按照 SGLang 官方的 CUDA 12 安装方式,将 PyTorch 和计算内核切换到 CUDA 12.9 版本:
uv pip install --force-reinstall \
torch==2.13.0 torchaudio==2.11.0 torchvision \
--index-url https://download.pytorch.org/whl/cu129
uv pip install --force-reinstall \
sglang-kernel==0.4.6.post1 \
--index-url https://docs.sglang.ai/whl/cu129/
uv pip install --force-reinstall \
sgl-deep-gemm==0.1.5.post3 \
--index-url https://docs.sglang.ai/whl/cu129/ \
--no-deps
这些命令会自动安装相应的 Python 和 CUDA 运行库依赖,不需要手动逐个安装 nvidia-* 包。
安装完成后检查版本:
python - <<'PY'
import sys
import torch
import sglang
import transformers
import flashinfer
import modelscope
print("Python:", sys.version.split()[0])
print("PyTorch:", torch.__version__)
print("PyTorch CUDA:", torch.version.cuda)
print("CUDA available:", torch.cuda.is_available())
print("GPU count:", torch.cuda.device_count())
print("SGLang:", sglang.__version__)
print("Transformers:", transformers.__version__)
print("FlashInfer:", flashinfer.__version__)
print("ModelScope:", modelscope.__version__)
PY
其中 PyTorch CUDA 应显示 12.9,CUDA available 应为 True。如果这里显示 False,先处理 NVIDIA 驱动或 PyTorch 安装问题,不要继续下载和启动模型。
本文推荐的核心版本如下:
| 软件 | 推荐版本 |
|---|---|
| Python | 3.12 |
| PyTorch | 2.13.0(CUDA 12.9 wheel) |
| SGLang | 0.5.18 |
| Transformers | 5.12.1 |
| Triton | 3.7.1 |
| FlashInfer | 0.6.17 |
| SGLang Kernel | 0.4.6.post1 |
| ModelScope | 1.39.1 |
| Safetensors | 0.8.0 |
最后检查 SGLang 是否带有 DFlash 参数:
python -m sglang.launch_server --help | grep -E 'speculative-(algorithm|dflash)'
能看到下面两个参数,说明当前版本已经包含本文需要的功能:
--speculative-algorithm
--speculative-dflash-block-size
六、下载模型
6.1 创建模型目录
模型放在哪里都可以,只要磁盘空间足够。下面以 /data/models 为例:
export MODEL_ROOT=/data/models
mkdir -p "$MODEL_ROOT"
如果你没有 /data 目录,可以改成自己的路径,例如:
export MODEL_ROOT=$HOME/models
mkdir -p "$MODEL_ROOT"
6.2 下载官方 Qwen3.8 FP8 模型
本文使用的目标模型是:
Qwen/Qwen3.8-27B-FP8
魔塔模型页面:Qwen/Qwen3.8-27B-FP8
使用 ModelScope 下载:
modelscope download \
Qwen/Qwen3.8-27B-FP8 \
--revision master \
--local-dir "$MODEL_ROOT/Qwen3.8-27B-FP8" \
--max-workers 8
下载完成后检查大小:
du -sh "$MODEL_ROOT/Qwen3.8-27B-FP8"
本文下载完成后约为 30.89GB。如果只有几个小文件,说明下载没有完成,不要直接启动。
6.3 下载 DFlash2 草稿模型
本文使用的草稿模型是:
z-lab/Qwen3.8-27B-DFlash2
魔塔模型页面:z-lab/Qwen3.8-27B-DFlash2
下载命令:
modelscope download \
z-lab/Qwen3.8-27B-DFlash2 \
--revision master \
--local-dir "$MODEL_ROOT/Qwen3.8-27B-DFlash2" \
--max-workers 8
检查目录:
du -sh "$MODEL_ROOT/Qwen3.8-27B-DFlash2"
find "$MODEL_ROOT/Qwen3.8-27B-DFlash2" -maxdepth 1 -type f | sort
6.4 为什么官方 FP8 可以配合 DFlash2
DFlash2 要求目标模型的输出头 lm_head 保持为普通的 FP16、BF16 或 FP32,不能被压成不支持的量化格式。
官方 Qwen/Qwen3.8-27B-FP8 的主体权重是 FP8,但 lm_head.weight 保留为 BF16,因此可以直接使用 DFlash2。
如果启动时出现:
DFlash2 selector requires a dense FP16/BF16/FP32 target lm_head
通常说明下载的模型版本不匹配,或者 lm_head 被额外量化了。不要先修改启动参数,先换回官方 FP8 权重并检查文件是否完整。
七、启动 FP8 + DFlash2
7.1 先查看 GPU 是否空闲
nvidia-smi --query-gpu=index,name,memory.total,memory.used,memory.free \
--format=csv
nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits | \
awk '{sum += $1} END {printf "GPU 总显存:%.1f GB\n", sum/1024}'
重点看所有参与推理的 GPU 总显存。启动前还要确认没有其他大模型占用这些 GPU,否则总容量足够也可能在加载过程中 OOM。
7.2 设置路径
把下面的路径改成你自己的实际路径:
export MODEL_ROOT=/data/models
export MODEL="$MODEL_ROOT/Qwen3.8-27B-FP8"
export DRAFT_MODEL="$MODEL_ROOT/Qwen3.8-27B-DFlash2"
export TP_SIZE=2
export CONTEXT_LENGTH=131072
export MEM_FRACTION=0.80
export PORT=8002
export LOG_FILE="$HOME/sglang-qwen38-fp8-dflash2.log"
TP_SIZE 是参与推理的 GPU 数量,按自己的机器修改:
- 单张 H100 80GB:
TP_SIZE=1; - 两张 GPU:
TP_SIZE=2; - 四张 GPU:
TP_SIZE=4。
多卡时建议使用同型号、同显存容量的 GPU。
首次启动建议使用 CONTEXT_LENGTH=131072,也就是 128K 上下文。总显存达到 96GB 并确认运行稳定后,可以改成 262144,启用完整 256K 上下文。
7.3 启动命令
python -m sglang.launch_server \
--model-path "$MODEL" \
--speculative-algorithm DFLASH \
--speculative-draft-model-path "$DRAFT_MODEL" \
--speculative-dflash-block-size 8 \
--tp-size "$TP_SIZE" \
--host 0.0.0.0 \
--port "$PORT" \
--context-length "$CONTEXT_LENGTH" \
--mem-fraction-static "$MEM_FRACTION" \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder \
2>&1 | tee "$LOG_FILE"
第一次启动需要加载几十 GB 权重,并初始化 CUDA,通常需要等待几分钟。看到下面这句话,才表示服务真正启动完成:
The server is fired up and ready to roll!
第一次部署建议先在前台运行,方便直接看到错误信息。需要停止服务时,在这个终端按 Ctrl+C。确认配置稳定后,再使用 tmux、screen 或系统服务让它长期运行。
7.4 参数简单说明
| 参数 | 作用 |
|---|---|
--model-path |
Qwen3.8 FP8 模型目录 |
--speculative-algorithm DFLASH |
开启 DFlash 推测解码 |
--speculative-draft-model-path |
DFlash2 草稿模型目录 |
--speculative-dflash-block-size 8 |
每轮草稿长度,本文使用 8 |
--tp-size |
参与张量并行的 GPU 数量,由 TP_SIZE 指定 |
--host 0.0.0.0 |
允许其他设备通过网络访问 |
--port 8002 |
API 端口 |
--context-length |
单条请求的最大总长度,由 CONTEXT_LENGTH 指定 |
--mem-fraction-static |
SGLang 使用的静态显存比例,由 MEM_FRACTION 指定 |
八、检查服务是否启动成功
8.1 健康检查
在另一个终端执行:
curl http://127.0.0.1:8002/health
返回 HTTP 200,说明服务已经可以接受请求。启动过程中返回 503 不一定是错误,先查看日志并等待初始化完成。
8.2 查看模型信息
curl http://127.0.0.1:8002/model_info
8.3 发起第一条对话请求
curl http://127.0.0.1:8002/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "Qwen3.8-27B-FP8",
"messages": [
{"role": "user", "content": "你好,请用一句话介绍自己"}
],
"temperature": 0.7,
"max_tokens": 128
}'
能看到 JSON 格式的模型回复,就说明本地模型已经跑起来了。
这个接口与 OpenAI 接口格式兼容,因此很多客户端只需要填写:
接口地址:http://127.0.0.1:8002/v1
模型名称:Qwen3.8-27B-FP8
API Key:可以留空;客户端强制要求时填写一个本地占位值
如果要从其他机器访问,把 127.0.0.1 换成运行服务的 Linux 服务器地址。
九、如何使用 256K 上下文
Qwen3.8 的配置中,最大位置长度是 262144 tokens,也就是通常所说的 256K 上下文。
本文已经实际验证过 250000 个输入 token 的请求,可以正常返回结果。
需要注意,输入和输出共用这 262144 个 token:
最大总长度 = 输入长度 + 输出长度
例如准备生成 4096 个 token 时,输入最好不要超过:
262144 - 4096 = 258048 tokens
256K 是单条请求的上限,并不代表可以同时运行很多条 256K 请求。并发数量还会受到显存和 KV Cache 容量影响。
十、开放 API 端口
10.1 本机访问
先试试:
http://127.0.0.1:8002/v1
如果能访问,就不需要额外设置端口转发。
10.2 Linux 服务器开放端口
启动命令已经使用 --host 0.0.0.0,因此服务会监听所有网卡。先查看服务器地址:
hostname -I
如果系统启用了 UFW 防火墙,开放 8002 端口:
sudo ufw allow 8002/tcp
sudo ufw status
局域网内的其他设备即可通过下面的地址访问:
http://Linux服务器IP:8002/v1
云服务器还需要在云平台的安全组中放行 TCP 8002。不要把没有身份验证的接口直接开放到公网;公网服务应在前面配置带认证和 HTTPS 的反向代理。
十一、纯 FP8 和 FP8 + DFlash2 怎么选
如果想做对比,只需要去掉 DFlash2 的相关参数。其他参数保持不变:
python -m sglang.launch_server \
--model-path "$MODEL" \
--tp-size "$TP_SIZE" \
--host 0.0.0.0 \
--port 8002 \
--context-length "$CONTEXT_LENGTH" \
--mem-fraction-static "$MEM_FRACTION" \
--reasoning-parser qwen3 \
--tool-call-parser qwen3_coder
两套服务不能同时占用同一组 GPU。正确做法是:
- 启动纯 FP8,预热后测试;
- 停止纯 FP8,确认显存释放;
- 启动 FP8 + DFlash2,使用完全相同的提示词和输出长度测试;
- 对比 token/s、首 token 延迟和显存占用。
十二、常见问题
1. 启动时报显存不足
先执行:
nvidia-smi
确认没有其他模型占用显存。仍然不足时,可以依次尝试:
继续降低 --context-length,例如从 131072 改成 65536
把 --mem-fraction-static 0.80 改成 0.75
把 --speculative-dflash-block-size 8 改成 4
每次只改一个参数,方便判断是哪一项起作用。
2. /health 返回 503
如果刚启动服务,通常是模型还在加载。查看启动终端或日志,等出现:
The server is fired up and ready to roll!
如果等待很久仍然没有这句话,再检查模型目录和显存。
3. 出现 lm_head 相关错误
检查是否使用了官方 Qwen/Qwen3.8-27B-FP8,以及模型文件是否下载完整。不要把其他量化模型目录直接替换进来。
4. FlashInfer 兼容性错误
SGLang 默认使用 FlashInfer。对于较旧或暂时没有适配的 GPU,可以在启动命令中加入:
--attention-backend triton
--sampling-backend pytorch
这是 SGLang 官方提供的兼容回退方案,速度可能低于默认内核,但适用范围更广。
5. 升级 SGLang 后突然不能启动
SGLang 更新较快,新版本可能改变参数或依赖。本文固定使用 0.5.18,建议先在新的 Conda 环境中验证升级,不要直接覆盖正在使用的环境。
更多推荐

所有评论(0)