• 请不要在回答技术问题时复制粘贴 AI 生成的内容
SSang
V2EX  ›  程序员

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

  •  
  •   SSang · 2h 36m ago · 892 views

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

    起始配置

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

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

    • 能跑满 256k 上下文,真正可以用在编码/生产场景了
    • prefill 速度在 300-400tok/s ,decode 速度在 30-60tok/s
    • 默认就是 4 并发,再往上调意义不大,4 并发的 decode 就只剩 10tok/s 了

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

    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 快一点);加多模态;加投机解码。如果你想要跑更高的量化模型,则可以考虑去掉上面说的这些。或者你也可以继续尝试其他厂家量化的模型,会有些许区别。

    11 replies    2026-08-26 14:23:49 +08:00
    paranoiagu
        1
    paranoiagu  
       2h 21m ago   ❤️ 1
    我也分享一下我的。
    以下是 7900XTX 24G 的

    nohup ./build/bin/llama-server \
    -hf unsloth/Qwen3.8-27B-GGUF:UD-IQ4_XS \
    --ctx-size 262144 \
    --parallel 1 \
    --n-gpu-layers 999 \
    --flash-attn on \
    --cache-type-k q4_0 \
    --cache-type-v q4_0 \
    --split-mode none \
    --spec-type draft-mtp \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 20 \
    --min-p 0.0 \
    --presence-penalty 0.0 \
    --repeat-penalty 1.0 \
    --jinja \
    --chat-template-file qwen3.8.jinja \
    --reasoning on \
    --reasoning-preserve \
    --chat-template-kwargs '{"enable_thinking":true,"reasoning_effort":"xhigh"}' \
    --host 0.0.0.0 \
    --port 4086 \
    -fit off \
    --cache-ram 1024 \
    --batch-size 2048 \
    --ubatch-size 512 \
    --log-file run_Qwen3.8-27B-GGUF-Thinking.log \
    > /dev/null 2>&1 &


    以下是 2 张 16G V100 的

    #!/bin/bash

    nohup ./build/bin/llama-server \
    -hf unsloth/Qwen3.8-27B-GGUF:Q4_K_M \
    --parallel 1 \
    --ctx-size 262144 \
    --split-mode none \
    --cache-type-k q4_0 \
    --cache-type-v q4_0 \
    --flash-attn on \
    --split-mode tensor \
    --spec-type draft-mtp \
    --temp 1.0 \
    --top-p 0.95 \
    --top-k 20 \
    --min-p 0.0 \
    --presence_penalty 0.0 \
    --repeat_penalty 1.0 \
    --jinja \
    --chat-template-file /mnt/data/llama.cpp/qwen3.8.jinja \
    --reasoning on \
    --reasoning-preserve \
    -fit off \
    --cache-ram 1024 \
    --host 0.0.0.0 \
    --port 4086 \
    --n-gpu-layers 999 \
    --chat-template-kwargs '{"enable_thinking":true,"reasoning_effort":"xhigh"}' \
    --log-file run_Qwen3.8-27B-GGUF-Thinking.log \
    > /dev/null 2>&1 &
    SSang
        2
    SSang  
    OP
       2h 13m ago via Android
    @paranoiagu 这个 chat template 你用的是哪个。有用吗,我还没自己测这块,之前 Qwen3.6 的时候调了半天,最后发现调的乱七八糟的。
    paranoiagu
        3
    paranoiagu  
       2h 11m ago via Android   ❤️ 1
    https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates

    用了这个才能在 Claude code 中调用
    catazshadow
        4
    catazshadow  
       1h 55m ago via Android
    4 张 T10 ,AWQ 量化,F16 的 kv ,256K 长度,vllm tp ,mtp 长度 2 ,decode 能有 45 tps ,并发 2 的时候能摸到 80 tps ,爽了很久了
    SSang
        5
    SSang  
    OP
       1h 47m ago
    @catazshadow prefill 的速度怎么样
    SSang
        6
    SSang  
    OP
       1h 42m ago
    我觉得 V100 用 Q4 KV 就是极限了,只有用 Q4 能到 500 左右的 prefill 速度,Q5 开始就几乎上不了 3 位数了。
    catazshadow
        7
    catazshadow  
       1h 39m ago
    @SSang 看 log 平均 7 、800 的样子吧,有时能飙到一千多但我觉得应该是算错了,还见过一次一万多的
    catazshadow
        8
    catazshadow  
       1h 27m ago
    @SSang Q5 应该是有些量化方法在反量化的时候,硬件没有原生支持,需要的指令太多。老卡上我都不敢碰非 2 的整数次幂的量化
    chengsitom
        9
    chengsitom  
       22 mins ago
    电费呢?
    SSang
        10
    SSang  
    OP
       20 mins ago
    @chengsitom 一天 4 度左右吧
    SSang
        11
    SSang  
    OP
       18 mins ago
    @catazshadow 确实是这样。V100 Q4 有时候也能 1000 多,应该不是算错,感觉是合理峰值。Q5 性能确实比 Q8 还更差,Q8 偶尔还能上 100.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5508 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:42 · PVG 14:42 · LAX 23:42 · JFK 02:42
    ♥ Do have faith in what you're doing.