32G 显存 Qwen3.8-27B-GGUF 配置分享

23 小时 13 分钟前
 SSang

本文使用 V100-SXM2-16GB 双卡运行:

起始配置

基础配置从 UD-IQ4_XS + 256k context + Q4 KV + mmproj 开始

这个配置是我感觉目前最理想的配置:

所以可以从这个配置开始,进行微调

services:
  qwen3.8-27b:
    image: ghcr.io/ggml-org/llama.cpp:server-cuda
    container_name: qwen3.8-27b
    restart: unless-stopped
    ports:
      - "8013:8013"
    volumes:
      - /home/debian/models/gguf:/models
    command: >-
      --port 8013
      --metrics
      --verbosity 4
      -m /models/unsloth/Qwen3.8-27B-UD-IQ4_XS.gguf
      --alias "Qwen3.8-27B"
      --n-gpu-layers all
      --ctx-size 262144
      --predict 32768
      --batch-size 4096
      --ubatch-size 1024
      --flash-attn auto
      --cache-prompt
      --cache-type-k q4_0
      --cache-type-v q4_0
      --spec-type ngram-simple
      --spec-ngram-mod-n-max 32
      --temp 1.0
      --top-p 0.95
      --top-k 20
      --min-p 0.00
      --mmproj /models/unsloth/Qwen3.8-27B-mmproj-F16.gguf
      --image-min-tokens 1024
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              capabilities: [gpu]
              device_ids: ["0", "1"]
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8013/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

调整项

然后说一下一些调整:

模型量化

往下调到 Q2 劣化非常明显,我认为达不到生产可用程度,但如果你只有 16G 显存,可以考虑用这个玩玩,也能跑到 256k 上下文

Q4 可以再往上调一点,显存是够的,理论上 Q5/Q6 都是能跑的。

缓存量化

Q4 的缓存实际上也是有比较明显的劣化的。

但实测 Q8 KCache (只调整 Key )的 Prefill 速度只剩 60tok/s 了。你的 ttft 会从 20s 内涨到 160s 以上,我认为是生产不可用的程度。

Q5 则是提升不明显,但速度降低显著,也不推荐。

所以我认为 Q4 Cache 虽然有劣化,但仍然是当前 v100 的最优解。

多模态

多模态加不加都行,也就占 1G 左右,我测试过程中就没出现就差 1G 就能跑的情况,所以就一直开着

投机解码

这个投机解码( ngram )收益不是很高,看不太出区别,换 mtp 也差不多,我的建议是显存还够就可以开,但是命中率也很低,看不出明显区别。

总结

总的来说,32G 内存跑 Q4 实际上是很够的,剩下的内存可以用来:提高一点 batch-size (可以 prefill 快一点);加多模态;加投机解码。如果你想要跑更高的量化模型,则可以考虑去掉上面说的这些。或者你也可以继续尝试其他厂家量化的模型,会有些许区别。

3109 次点击
所在节点    程序员
43 条回复
SSang
18 小时 36 分钟前
@GuardX 反正我看了其他的帖子基本上也是这个结论:「 Q4 及以上质量良好,Q4 以下断崖式下降」
SSang
18 小时 22 分钟前
@lyonll 我有空也测测 turbo3 ,但其实 q4 我觉得就已经有些不太行了。

我就是体感劣化,有的是很明显的劣化的,就是很简单的任务,比如我让他改一个前端展示从 ID 改成获取名称展示,改了量化之后他直接开始一直循环不输出结果,这种就是明显的劣化了。

我 q8 跑就是很慢,但是基本上任务都能完成,但是 q4 还是会有概率出现乱回答或者死循环。

---

然后还有就是我个人感觉本地部署 prefill 速度比 decode 速度重要,decode 只要有 10tok/s 就有一点安慰作用了,但是我要是等几分钟他还在那转圈,就会开始怀疑是不是模型挂了还是报错了。

(我之前其实是有算过的,特别是长上下文编码的场景,prefill 速度会很大程度决定任务的总耗时,100k 左右的上下文,基本上要缓存命中到 98% 以上,decode 速度才会对总耗时有些影响)
catazshadow
18 小时 17 分钟前
@SSang 图灵,相当于 2080 这代

nvlink 自己玩玩用不上,PCIe 就足够了,我这个甚至是跨了 NUMA 节点的 PCIe 通信。T10 也没有 nvlink 。

nvlink 黄鱼上 300 块一个桥接器简直就是抢钱
SSang
18 小时 5 分钟前
@catazshadow 噢噢,就是直接 pcie 拆分 4 卡的是吧。确实 pcie 也听够了,我之前搞过一个 pcie x1 拆分 4 卡的,当时也测不出有什么差距,但后来不知道被我丢哪去了。
catazshadow
18 小时 3 分钟前
@SSang 垃圾佬服务器主板上直插的,甚至都不全是 x16 的槽
realJamespond
18 小时 0 分钟前
我这边是双 3090 有 50ts 左右,c64k 一般用在主 agent 分配任务给子 agent + 任务列表 修改多个文件还行。子 agent 不会被主 agent 上下文影响。
ashong
17 小时 57 分钟前
7900xtx 现在跑 unsloth/ud-q5-k-xl 或者 unsloth/ud-q5-k_m
cache-kv q8_0 上下文 140k
或者
cache-kv bf16 上下文 100k
lyonll
17 小时 28 分钟前
@SSang 期待测试 turbo3 的结果
我用 turbo3 可以节省很多显存,看原理好像很强 几乎没有降智的感觉
不过就是一直没合并到主线,因为好像 turbo3 目前只针对特定平台
wises
17 小时 16 分钟前
最近想买显卡的心越来越重, 一个消费级别小主机, 配了 48G DDR5 内存, 跑了下 qwen3.5/3.6 - 27B/35B 全卡那里却显卡了. 不知道买 24G 显存的显卡是否可以?
paranoiagu
16 小时 40 分钟前
楼主,今天我看到这个,你试过吗?

1CatAI/1Cat-vLLM: V100 / SM70-focused vLLM engineering fork for modern LLM inference. https://share.google/ltDrm9bzMUKScR6xR
BingoW
16 小时 29 分钟前
如果是单卡 4080s 32G 情况会更好吗?我本人是 2080ti 22G 的卡,再考虑要不要升级
strobber16
16 小时 28 分钟前
建议上 kvarn 试下
zzutmebwd
16 小时 24 分钟前
今晚要发布高度稀疏的 3.8 flash next 了,源神启动!
zzutmebwd
16 小时 20 分钟前
@BingoW 我的升级路线是 mi50 32g x2 → 2080ti 22g x2 → 4080s 32G x2 → pro6000 96G 。感受就是欲望永无止境。4080s 32g 跑 27b 还是慢,预填充两三千,解码六七十。换 pro6000 感觉就是翻倍多一点,显存用不完。
SSang
11 小时 58 分钟前
@paranoiagu 他这个是用来跑原生 tensor 模型的,好像最少也得 64G 显存吧。玩不起,32G 还是老老实实 gguf 吧
SSang
11 小时 56 分钟前
@strobber16 主要不是显存不够,是 prefill 太慢了
SSang
11 小时 54 分钟前
@zzutmebwd 有些过于富有了,只能说玩 V100 的都是穷人
paranoiagu
4 小时 24 分钟前
@SSang 看了介绍好像可以 awq 量化模型,但是有人反应上下文不够长,我今天试试
ljian6530
3 小时 13 分钟前
# 我也试了一下,2 张 T4 卡,启动参数如下:
export CUDA_VISIBLE_DEVICES=0,1

/opt/llama.cpp/build/bin/llama-server \
--host 0.0.0.0 \
--port 8000 \
--metrics \
--verbosity 3 \
-m /var/unsloth/Qwen3.8-27B-GGUF/Qwen3.8-27B-UD-IQ4_XS.gguf \
--alias Qwen3.8-27B \
--n-gpu-layers all \
--split-mode layer \
--tensor-split 1,1 \
--ctx-size 131072 \
--parallel 1 \
--predict 8192 \
--batch-size 4096 \
--ubatch-size 1024 \
--flash-attn on \
--cache-type-k q4_0 \
--cache-type-v q4_0 \
--cache-prompt \
--temp 1.0 \
--top-p 0.95 \
--top-k 20 \
--min-p 0.0 \
--load-mode mmap
# 结果
Prefill:70.50 tok/s
Decode:13.51 tok/s
1024 tokens:75.8s
这速度几乎是无法生产的,大佬看看这堆废铁( nvidia Tesla T4 16GiB )还有必要跑吗,但使用 8 张卡跑四个实例并行是不是也是可以?
coefu
2 小时 53 分钟前
@ljian6530 你用 8 卡 128G 跑最新的 qwen3.8 flash ,都比这个好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1237309

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX