量化者:ubergarm
任务标签:文本生成
基础模型:Qwen/Qwen3-30B-A3B
许可证:Apache-2.0
许可证链接:https://huggingface.co/Qwen/Qwen3-30B-A3B/blob/main/LICENSE
基础模型关系:量化版本
标签:
- imatrix
- qwen3_moe
- 对话式
- ik_llama.cpp
ik_llama.cpp
对 Qwen/Qwen3-30B-A3B 的 imatrix 量化
此量化集合必须使用 ik_llama.cpp 分支以支持先进的非线性 SotA 量化。不要下载这些大文件并期望它们能在主线的普通 llama.cpp、ollama、LM Studio、KoboldCpp 等上运行!
这些量化在给定内存占用下提供了同类最佳的质量。
特别感谢
向 Wendell 和 Level1Techs 团队、社区论坛、YouTube 频道致敬!非常感谢你们提供强大的硬件专业知识和资源来运行这些实验,并为社区提供这些出色的量化模型!!!
同时也感谢量化与推理社区的所有人,无论是在这里还是 r/LocalLLaMA
上,大家互相分享技巧,帮助彼此运行各种有趣的新模型!
很高兴能一起分享和学习。谢谢!
量化集合
目前,这些是我提供的最佳量化方案,在良好的内存占用断点上提供了高质量。
ubergarm/Qwen3-30B-A3B-mix-IQ4_K
此量化在提供良好速度性能的同时,提供了同类最佳的质量。该量化设计用于在 24GB VRAM 的 GPU 上运行超过 32k 上下文,并使用 GPU 高效的 f16 KV-Cache。你也可以尝试通过 -nkvo -ctk q8_0 -ctv q8_0
将部分计算卸载到 CPU,并使用 -rtr
在启动时优化 RAM 张量打包(不支持 mmap()
),通过将重复层卸载到 CPU 来减少 VRAM 占用至约 18396MiB 或更低,但速度会有所下降。
17.679 GiB (4.974 BPW)
f32: 241 张量
q8_0: 6 张量
iq4_k: 96 张量
iq5_k: 48 张量
iq6_k: 188 张量
最终估计:PPL = 9.1184 +/- 0.07278 (wiki-test.raw,与 BF16 的 9.0703 +/- 0.07223 对比)
*注意*:包括 `wiki.test.raw` 的 PPL 和 `ubergarm-kld-test-corpus.txt` 的 KLD 的基准测试结果看起来很有趣!将很快发布!
快速开始
ik_llama.cpp
API 服务器用于 GPU 推理
./build/bin/llama-server
--model ubergarm/Qwen3-30B-A3B-GGUF/Qwen3-30B-A3B-mix-IQ4_K \
--alias ubergarm/Qwen3-30B-A3B-mix-IQ4_K \
-fa \
-ctk f16 -ctv f16 \
-c 32768 \
-fmoe \
-ngl 99 \
--threads 1
--host 127.0.0.1 \
--port 8080
如果你需要更大的上下文和/或更少的 VRAM 使用,可以尝试:
- 更小的 KV 缓存量化
-ctk q4_0 -ctv q4_0
如果你需要更高的吞吐量,可以尝试:
- 将上下文增加到 VRAM 的最大限制
- 使用
--parallel N
使每个插槽可用 (上下文 / N)
- 使用异步客户端并保持队列满载
量化方法
👈秘密配方
#!/usr/bin/env bash
custom="
# 注意力层(为第 0 层额外分配一些,因为它在余弦相似度得分中最低)
blk\.0\.attn_k.*=q8_0
blk\.0\.attn_q.*=q8_0
blk\.0\.attn_v.*=q8_0
blk\.0\.attn_output.*=q8_0
blk\..*\.attn_k.*=iq6_k
blk\..*\.attn_q.*=iq6_k
blk\..*\.attn_v.*=iq6_k
blk\..*\.attn_output.*=iq6_k
# 词嵌入(将这些放在第二位,以免 attn_output 正则匹配过早)
token_embd\.weight=q8_0
output\.weight=q8_0
# 专家层
blk\..*\.ffn_down_exps\.weight=iq5_k
blk\..*\.ffn_(gate|up)_exps\.weight=iq4_k
"
custom=$(
echo "$custom" | grep -v '^#' | \
sed -Ez 's:\n+:,:g;s:,$::;s:^,::'
)
./build/bin/llama-quantize \
--custom-q "$custom" \
--imatrix /mnt/raid/models/ubergarm/Qwen3-30B-A3B-GGUF/imatrix-Qwen3-30B-A3B.dat \
/mnt/raid/models/Qwen/Qwen3-30B-A3B/Qwen3-30B-A3B-BF16-00001-of-00002.gguf \
/mnt/raid/models/ubergarm/Qwen3-30B-A3B-GGUF/Qwen3-30B-A3B-mix-IQ4_K.gguf \
IQ4_K \
24
讨论
待办:讨论一些关于量化比较的内容,例如 bartowski、unsloth 和 mradermacher,包括“质量”和“速度”。
基准测试
在 llama-sweep-bench
的初步测试中,我的 3090TI FE 24GB VRAM 上达到了超过 1600 tok/sec 的 PP 和 105 tok/sec 的 TG。当然,随着上下文接近完整的 32k,速度会有所下降。请查看链接的基准测试讨论以获取更新,因为目前这一切都非常新鲜。对于如此规模的模型来说,生成质量和速度的表现都非常惊人!


参考资料