今までQwen3.6の「27B」や「35B-A7B」を使っていたが、その後に出たQwen3.8-27Bに乗り換えた。
ちなみに、Qwen3.6-27Bのチューニング前は「約23トークン/秒」が出ていた
以下のチューニング後で「約49トークン/秒」が出るようになった
環境
使用してた環境は以下
RAMがDDR5ではなく「DDR4」だったり、GPUがかなり古い「RTX2080Ti」だとか、生成AIを動かすにしてはチープな環境だ
・llama.cpp
・NVIDIA GeForce RTX 2080 Ti(VRAM 22GB)
・Intel Core i5 14500
・RAM 64GB(DDR4)
結論
私の環境では、llama.cpp の起動を以下のようにすると良さそうだ
llama-server
--port 1234
--host 0.0.0.0
--parallel 1
--threads 6
--jinja
--cache-type-k q4_0
--cache-type-v q4_0
-ngl 66
-fa on
-c 256000
--no-mmproj-offload
--temp 0.6
--top-p 0.95
--top-k 20
--presence_penalty 0.0
--min-p 0.00
--repeat-penalty 1.1
-sm none
-mg 0
--device CUDA0
--chat-template-kwargs "{\"preserve_thinking\":true,\"reasoning_effort\":\"low\"}"
--alias "default_model"
--mmproj "C:\models\unsloth\Qwen3.8-27B-GGUF\mmproj-F16.gguf"
-m "C:\models\unsloth\Qwen3.8-27B-GGUF\Qwen3.8-27B-UD-IQ4_XS.gguf"
--chat-template-file "C:\models\unsloth\Qwen3.8-27B-GGUF\template_fix.txt"
--spec-type draft-mtp
--spec-draft-model "C:\models\unsloth\Qwen3.8-27B-GGUF\mtp-Qwen3.8-27B-Q4_0.gguf"
--spec-draft-n-max 3
ポイント1:MTP有効化
MTPを有効にして、1回の検証で最大3トークン分の候補をドラフト生成する。
- --spec-type draft-mtp
- --spec-draft-model "……\mtp-Qwen3.8-27B-Q4_0.gguf"
- --spec-draft-n-max 3
ポイント2:KVのVRAM削減
コンテキスト長を「256000」にしているので、そのままだとVRAMを大量消費してしまうので、Q4_0にして節約する。
- --cache-type-k q4_0
- --cache-type-v q4_0
ポイント3:mmproj はGPUに載せない
プログラミングが主要な目的なので画像を読んで分析することが少ない。
ただ、自動でデバックするときにスクリーンショットを読み込むなど画像が読みたくなる時もある
それで、mmprojは有効にしつつも使用頻度が低い"目"の機能をGPUにオフロードしないことでVRAMの消費を節約する
- --mmproj "……\mmproj-F16.gguf"
- --no-mmproj-offload
ポイント4:思考は短めにする
Qwen3.8ではthinkingが長すぎて時間とトークンを消費するということが一般的に言われる。lowにしても全体として品質は保てるそうなので low にする
- --chat-template-kwargs "{"preserve_thinking":true,"reasoning_effort":"low"}"
ポイント5:モデルをIQ4_XSにする
「Qwen3.8-27B-UD-Q4_K_M.gguf」はファイルサイズが16GB程度
「Qwen3.8-27B-UD-IQ4_XS.gguf」はファイルサイズが14GB程度
悩んだが、試してみて品質に大きな影響がなさそうと思えたので「IQ4_XS」を採用してVRAMを節約することにした
上記の環境でのVRAM使用量
理論上の残り:約944 MiB
| 項目 | VRAM使用量 | 内容 |
|---|---|---|
| メインモデル | 13,061.10 MiB | Qwen3.8-27B UD-IQ4_XS、66/66層をGPUへオフロード |
| メインモデル KVキャッシュ | 4,500.00 MiB | 256K context、K=q4_0 2,250 MiB + V=q4_0 2,250 MiB |
| RSバッファ | 598.50 MiB | Qwen3.8の内部状態用。R=22.5 MiB、S=576 MiB |
| メインモデル Compute buffer | 1,330.28 MiB | 推論計算用の一時バッファ |
| MTPドラフトモデル | 774.71 MiB | mtp-Qwen3.8-27B-Q4_0.gguf |
| MTPドラフト側 KVキャッシュ | 1,000.00 MiB | K=f16 500 MiB + V=f16 500 MiB |
| MTPドラフト側 Compute buffer | 318.02 MiB | ドラフトモデルの計算用 |
| 合計(上記) | 21,582.61 MiB | 約 21.08 GiB |
