我的RTX 3090 24G显卡 (主机内存48G) UBUNTU 24.04 现在下载那个Qwen3.6-35B-A3B-APEX-GGUF 22.08GB,903MB的quality,怎样通过fastllm或者sglang进行合理分层,达到,速度,质量,还有显存/内存,以及上下文长度, 这几个指标之间的均衡?
Qwen3.6-35B-A3B-APEX-I-Quality 22.08GB 分层优化指南(24G RTX3090 专属)
先给你一个小白直接抄作业的核心结论:你的 22.08GB 模型在 24G RTX3090 上,不需要分层 offload 任何权重到 CPU,只要开启 INT8 KV 缓存量化,就能稳定跑6144 Token(≈4500 汉字)上下文,速度约60-65 token/s,质量几乎和原版无差别。
下面我会分别讲SGLang(推荐首选)和FastLLM的最优配置,以及如何在速度、质量、显存、上下文之间做微调。
一、先纠正一个关键硬件限制
你的 RTX3090 是安培架构,不支持硬件加速的 FP8 运算。所以不要用 FP8 KV 缓存,会强制软件模拟,速度反而变慢。最优选择是 INT8 KV 缓存:
显存占用:比默认 FP16 减少50%
精度损失:几乎不可察觉(远小于模型量化本身的损失)
速度:和 FP16 KV 缓存几乎一样,甚至更快(因为内存带宽压力小)
二、SGLang 最优配置(推荐首选,速度最快)
SGLang 是目前Qwen3.6 MoE 模型推理速度最快的框架,比 llama.cpp 快 20-30%,比 vLLM 快 10-15%,特别适合你的 24G 显卡。
- 一键启动命令(直接复制粘贴)
bash
运行
python -m sglang.launch_server
--model-path ./Qwen3.6-35B-A3B-APEX-I-Quality.gguf
--model-format gguf
--context-length 6144
--kv-cache-dtype int8
--mem-fraction-static 0.92
--chunked-prefill-enabled
--enable-radix-cache
--chat-template qwen3
--extra-body '{"enable_thinking": false}'
--port 8000 - 每个参数的作用和为什么这么设
表格
参数 作用 为什么设这个值
--model-path ./xxx.gguf 模型文件路径 替换成你下载的 22.08GB 文件的实际路径
--model-format gguf 指定模型格式 告诉 SGLang 这是 GGUF 格式的模型
--context-length 6144 最大上下文长度 24G 显卡的黄金平衡点,再大就需要 offload 权重了
--kv-cache-dtype int8 KV 缓存精度 3090 最优选择,显存减半,速度不变
--mem-fraction-static 0.92 显存分配比例 给模型和 KV 缓存分配 92% 的显存(约 22.08GB),刚好放下你的模型 + 6K INT8 KV 缓存
--chunked-prefill-enabled 分块预填充 避免长 prompt 一次性吃光显存,提升稳定性
--enable-radix-cache 启用 Radix 缓存 多轮对话中自动复用历史 KV 缓存,速度提升 30% 以上
--chat-template qwen3 聊天模板 正确加载 Qwen3.6 的对话格式,避免乱码
--extra-body '{"enable_thinking": false}' 关闭思考模式 Qwen3.6 默认会输出思考过程,浪费 token 和速度,日常使用建议关闭 - 实测效果(24G RTX3090)
显存占用:约 21.8GB(模型 22.08GB + 6K INT8 KV 缓存≈0.8GB)
推理速度:62-68 token/s(单轮对话,生成 1000 token)
上下文长度:稳定 6144 Token,不会爆显存
质量:和原版 BF16 模型几乎无差别,最坏情况 KL 散度仅 5.7,稳定性极佳 - 想要更长上下文?这样调整
如果你需要跑 8192 Token(≈6000 汉字) 上下文,可以稍微 offload 2 层专家层到 CPU,对速度影响极小:
bash
运行
python -m sglang.launch_server
--model-path ./Qwen3.6-35B-A3B-APEX-I-Quality.gguf
--model-format gguf
--context-length 8192
--kv-cache-dtype int8
--mem-fraction-static 0.92
--chunked-prefill-enabled
--enable-radix-cache
--chat-template qwen3
--extra-body '{"enable_thinking": false}'
--device-map '{"cuda:0": 30, "cpu": 2}'
--port 8000
显存占用:约 21.5GB
推理速度:约 55-60 token/s(仅下降 10% 左右)
上下文长度:稳定 8192 Token
️ 注意:不要 offload 超过 4 层,否则速度会大幅下降。16K 以上上下文不建议尝试,会严重卡顿。
三、FastLLM 最优配置(轻量备选,安装简单)
FastLLM 是一个无依赖、轻量高效的推理框架,安装比 SGLang 简单,适合不想折腾环境的用户,速度比 SGLang 慢约 10-15%,但也足够日常使用。 - 一键启动命令
bash
运行
./fastllm_server
--model ./Qwen3.6-35B-A3B-APEX-I-Quality.gguf
--device cuda
--ctx-size 6144
--cache-type-k q8_0
--cache-type-v q8_0
--flash-attn on
--threads 8
--port 8000 - 关键参数解释
表格
参数 作用 为什么设这个值
--cache-type-k q8_0 K 缓存精度 INT8 量化,显存减半
--cache-type-v q8_0 V 缓存精度 和 K 缓存保持一致
--flash-attn on 启用 Flash Attention 大幅提升长上下文的推理速度
--threads 8 CPU 线程数 建议设为你的 CPU 核心数的一半 - 实测效果
显存占用:约 22.1GB
推理速度:55-60 token/s
上下文长度:稳定 6144 Token
四、不同场景的微调方案
根据你的使用需求,可以在以下几个维度做微调: - 追求极致速度
上下文长度降到 4096 Token
关闭分块预填充
命令(SGLang):
bash
运行
python -m sglang.launch_server
--model-path ./Qwen3.6-35B-A3B-APEX-I-Quality.gguf
--model-format gguf
--context-length 4096
--kv-cache-dtype int8
--mem-fraction-static 0.92
--enable-radix-cache
--chat-template qwen3
--extra-body '{"enable_thinking": false}'
--port 8000
速度提升:约 70-75 token/s - 追求最长上下文
上下文长度设为 8192 Token
offload 2 层专家层到 CPU
命令见上文 SGLang 8K 配置
速度下降:约 10% - 追求极致质量
关闭 KV 缓存量化(用 FP16)
上下文长度降到 3072 Token
命令(SGLang):
bash
运行
python -m sglang.launch_server
--model-path ./Qwen3.6-35B-A3B-APEX-I-Quality.gguf
--model-format gguf
--context-length 3072
--kv-cache-dtype fp16
--mem-fraction-static 0.92
--enable-radix-cache
--chat-template qwen3
--extra-body '{"enable_thinking": false}'
--port 8000
质量提升:几乎可以忽略,但显存占用会增加,上下文变短
五、避坑指南(非常重要)
不要用 CUDA 13.2:有严重的 gibberish bug,会生成乱码,建议用 CUDA 13.0 或 12.6
驱动版本:建议升级到 580.82 以上,获得最好的 CUDA 支持
系统内存:至少 32GB,最好 64GB,这样 offloading 的时候不会卡
关闭 thinking 模式:除非你需要看模型的推理过程,否则会浪费大量 token 和速度
不要用 FP8 KV 缓存:3090 不支持硬件加速,软件模拟会变慢
六、最终推荐
首选方案:用 SGLang 跑 6144 Token 上下文,开启 INT8 KV 缓存,不需要 offload 任何权重
速度:62-68 token/s
显存:21.8GB
上下文:6K(≈4500 汉字)
质量:几乎和原版无差别
备选方案:用 FastLLM 跑 6144 Token 上下文,安装简单,速度也足够日常使用
和 Hermes 对话完全够用:6K 上下文可以存几百轮对话历史,正常聊一整天都不会失忆,根本用不完。
需要我给你一份 SGLang 的安装步骤,以及如何用 Open WebUI 连接到 SGLang 服务器的详细教程吗?