Qwen3 30B A3B GGUF
模型简介
模型特点
模型能力
使用案例
🚀 Qwen/Qwen3-30B-A3B的实验性逐层量化
本项目聚焦于优化大语言模型(LLM)在资源受限环境(如普通硬件、桌面设备、笔记本电脑、移动设备和边缘设备等)中的推理性能。通过使用定制的量化和剪枝方法,生成了一系列实验性的模型版本。这些版本在保持模型性能的同时,显著减少了模型的大小和推理所需的资源。
🚀 快速开始
本项目使用 LLaMA C++ 发布版 b5343 进行量化。原始模型为 Qwen/Qwen3-30B-A3B。
模型生成流程
- 将原始模型的张量转换为 GGUF F16*。
- 使用 wikitext-2-raw-v1 数据集估计 F16 模型的困惑度得分(基线),并保存 logits。
- 从选定的校准数据集生成 imatrix。
- 使用修改后的
llama-imatrix
确定张量和层的重要性得分贡献。 - 为每个张量选择合适的量化级别,并使用
llama-quantize
对模型进行量化。 - 计算每个量化模型的困惑度、KL 散度、ARC(Easy+Challenge)、HellaSwag、MMLU、Truthful QA 和 WinoGrande 得分。
- 保留得分最佳的版本。
- 重复上述步骤,直到生成所有所需的量化版本。
*BF16 是更优的选择,但苹果的 GPU 目前尚不支持,因此任何操作都在 CPU 上执行,这会导致速度慢得难以接受。预计在不久的将来情况会有所改变,但在此之前,如果您使用的是苹果设备,请避免使用任何标记为 BF16 的模型。
✨ 主要特性
原始模型特性
- 独特的思维模式切换:在单个模型中支持在思维模式(用于复杂逻辑推理、数学和编码)和非思维模式(用于高效的通用对话)之间无缝切换,确保在各种场景下都能实现最佳性能。
- 显著增强的推理能力:在数学、代码生成和常识逻辑推理方面,超越了之前的 QwQ(思维模式)和 Qwen2.5 指令模型(非思维模式)。
- 卓越的人类偏好对齐:在创意写作、角色扮演、多轮对话和指令遵循方面表现出色,提供更自然、引人入胜和沉浸式的对话体验。
- 强大的代理能力:能够在思维和非思维模式下与外部工具进行精确集成,并在复杂的基于代理的任务中在开源模型中取得领先性能。
- 支持 100 多种语言和方言:具备强大的多语言指令遵循和翻译能力。
实验版本特性
- 优化推理性能:通过量化和剪枝,在资源受限的环境中显著提高推理速度。
- 逐层量化:根据张量的重要性,对不同层进行不同级别的量化,以平衡模型大小和性能。
- 详细的统计信息:使用修改后的
llama-imatrix
生成有用的统计信息,指导张量选择过程。
📦 安装指南
文档中未提及具体安装步骤,可参考 LLaMA C++ 和相关工具的官方文档进行安装。
💻 使用示例
文档中未提供具体代码示例。
📚 详细文档
模型信息
属性 | 详情 |
---|---|
基础模型 | Qwen/Qwen3-30B-A3B |
数据集 | eaddario/imatrix-calibration |
语言 | 英文 |
许可证 | apache-2.0 |
任务类型 | 文本生成 |
标签 | gguf, quant, experimental |
模型版本
模型大小(GB)
模型 | Bartowski | Unsltoth | 仓库 | 收缩率 |
---|---|---|---|---|
Qwen3-30B-A3B-IQ3_M | 14.1 | N/A | 14.0 | 0.7% |
Qwen3-30B-A3B-IQ3_S | 12.7 | N/A | 13.3 | -4.7% |
Qwen3-30B-A3B-IQ4_NL | 17.4 | 17.3 | 17.1 | 1.7% |
Qwen3-30B-A3B-Q3_K_L | 14.6 | N/A | 14.2 | 2.7% |
Qwen3-30B-A3B-Q3_K_M | 14.1 | 14.7 | 13.5 | 4.3% |
Qwen3-30B-A3B-Q3_K_S | 13.4 | 13.3 | 12.8 | 4.5% |
Qwen3-30B-A3B-Q4_K_M | 18.6 | 18.6 | 17.1 | 8.1% |
Qwen3-30B-A3B-Q4_K_S | 18.0 | 17.5 | 16.5 | 8.3% |
Qwen3-30B-A3B-Q5_K_M | 21.7 | 21.7 | 20.4 | 6.0% |
Qwen3-30B-A3B-Q5_K_S | 21.1 | 21.1 | 19.7 | 6.6% |
Qwen3-30B-A3B-Q6_K | 25.1 | 25.1 | 25.3 | -0.8% |
Qwen3-30B-A3B-Q8_0 | 32.5 | 32.5 | 29.9 | 8.0% |
困惑度和 KL 散度得分
模型 | 平均困惑度 | 相对困惑度 | 平均 KL 散度 | RMS 偏差 |
---|---|---|---|---|
Qwen3-30B-A3B-IQ3_M | 8.855147 ±0.069027 | 98.10% | 0.081621 ±0.000566 | 8.907 ±0.055 |
Qwen3-30B-A3B-IQ3_S | 9.141469 ±0.071687 | 97.40% | 0.115653 ±0.000636 | 10.469 ±0.057 |
Qwen3-30B-A3B-IQ4_NL | 8.674113 ±0.067361 | 98.92% | 0.043268 ±0.000351 | 6.596 ±0.049 |
Qwen3-30B-A3B-Q3_K_L | 8.950671 ±0.069566 | 97.80% | 0.095434 ±0.000689 | 9.560 ±0.056 |
Qwen3-30B-A3B-Q3_K_M | 8.949256 ±0.069263 | 97.57% | 0.104258 ±0.000668 | 9.937 ±0.057 |
Qwen3-30B-A3B-Q3_K_S | 9.058327 ±0.069783 | 97.14% | 0.127036 ±0.000807 | 11.057 ±0.060 |
Qwen3-30B-A3B-Q4_K_M | 8.825116 ±0.069885 | 99.07% | 0.036448 ±0.000348 | 5.866 ±0.045 |
Qwen3-30B-A3B-Q4_K_M-bartowski | (待添加) | |||
Qwen3-30B-A3B-Q4_K_M-unsloth | (待添加) | |||
Qwen3-30B-A3B-Q4_K_S | 8.761190 ±0.068775 | 98.99% | 0.040228 ±0.000389 | 6.156 ±0.047 |
Qwen3-30B-A3B-Q5_K_M | 8.617271 ±0.067500 | 99.51% | 0.016456 ±0.000172 | 4.070 ±0.041 |
Qwen3-30B-A3B-Q5_K_S | 8.654473 ±0.067965 | 99.48% | 0.017938 ±0.000223 | 4.231 ±0.044 |
Qwen3-30B-A3B-Q6_K | 8.486339 ±0.065924 | 99.69% | 0.008701 ±0.000170 | 3.018 ±0.044 |
Qwen3-30B-A3B-Q8_0 | 8.485838 ±0.065999 | 99.75% | 0.006176 ±0.000153 | 2.561 ±0.043 |
Qwen3-30B-A3B-F16 | 8.445938 ±0.065177 | 100% | N/A | N/A |
ARC、HellaSwag、MMLU、Truthful QA 和 WinoGrande 得分
模型 | ARC | HellaSwag | MMLU | Truthful QA | WinoGrande | 平均得分 |
---|---|---|---|---|---|---|
Qwen3-30B-A3B-IQ3_M | 64.6667 ±1.7466 | 75.07 | 39.0667 ±1.7827 | 33.3333 ±1.7225 | 68.0000 ±1.7045 | 56.03 |
Qwen3-30B-A3B-IQ3_S | 58.8000 ±1.7984 | 73.73 | 38.6667 ±1.7794 | 32.0000 ±1.7045 | 69.8667 ±1.6766 | 54.61 |
Qwen3-30B-A3B-IQ4_NL | 63.7333 ±1.7567 | 76.13 | 40.4000 ±1.7930 | 32.8000 ±1.7155 | 69.8667 ±1.6766 | 56.59 |
Qwen3-30B-A3B-Q3_K_L | 59.4667 ±1.7939 | 74.40 | 38.2667 ±1.7759 | 29.8667 ±1.6723 | 69.7333 ±1.6787 | 54.35 |
Qwen3-30B-A3B-Q3_K_M | 58.8000 ±1.7984 | 74.40 | 38.4000 ±1.7771 | 30.2667 ±1.6787 | 67.4667 ±1.7119 | 53.87 |
Qwen3-30B-A3B-Q3_K_S | 60.0000 ±1.7900 | 75.20 | 39.2000 ±1.7838 | 30.2667 ±1.6787 | 69.4667 ±1.6828 | 54.83 |
Qwen3-30B-A3B-Q4_K_M | 63.8667 ±1.7553 | 75.87 | 40.4000 ±1.7930 | 32.8000 ±1.7155 | 70.8000 ±1.6614 | 56.75 |
Qwen3-30B-A3B-Q4_K_M-bartowski | (待添加) | |||||
Qwen3-30B-A3B-Q4_K_M-unsloth | (待添加) | |||||
Qwen3-30B-A3B-Q4_K_S | 64.0000 ±1.7539 | 76.00 | 40.1333 ±1.7910 | 32.2667 ±1.7082 | 68.9333 ±1.6909 | 56.27 |
Qwen3-30B-A3B-Q5_K_M | 64.0000 ±1.7539 | 76.80 | 41.3333 ±1.7993 | 32.4000 ±1.7100 | 69.8667 ±1.6766 | 56.88 |
Qwen3-30B-A3B-Q5_K_S | 63.8667 ±1.7553 | 76.93 | 41.3333 ±1.7993 | 32.0000 ±1.7045 | 70.5333 ±1.6658 | 56.93 |
Qwen3-30B-A3B-Q6_K | 63.7333 ±1.7567 | 76.67 | 40.8000 ±1.7958 | 32.4000 ±1.7100 | 69.7333 ±1.6787 | 56.67 |
Qwen3-30B-A3B-Q8_0 | 63.7333 ±1.7567 | 75.86 | 41.3333 ±1.7993 | 32.2667 ±1.7082 | 71.0667 ±1.6569 | 56.85 |
Qwen3-30B-A3B-F16 | 64.6667 ±1.7466 | 76.80 | 41.6000 ±1.8010 | 32.5333 ±1.7119 | 70.8000 ±1.6614 | 57.28 |
每秒令牌数 - 基准测试
模型 | 大小 | 参数 | 后端 | 线程数 | 测试类型 | 每秒令牌数 |
---|---|---|---|---|---|---|
Qwen3-30B-A3B-Q4_K_M | 15.90 GiB | 30.53 B | Metal,BLAS | 6 | pp512 | 428.41 ± 2.21 |
Qwen3-30B-A3B-Q4_K_M | 15.90 GiB | 30.53 B | Metal,BLAS | 6 | tg128 | 43.81 ± 0.16 |
Qwen3-30B-A3B-Q4_K_M | 15.90 GiB | 30.53 B | Metal,BLAS | 6 | pp1024+tg1024 | 59.98 ± 0.11 |
Qwen3-30B-A3B-Q4_K_M-bartowski | (待添加) | |||||
Qwen3-30B-A3B-Q4_K_M-bartowski | (待添加) | |||||
Qwen3-30B-A3B-Q4_K_M-bartowski | (待添加) | |||||
Qwen3-30B-A3B-Q4_K_M-unsloth | (待添加) | |||||
Qwen3-30B-A3B-Q4_K_M-unsloth | (待添加) | |||||
Qwen3-30B-A3B-Q4_K_M-unsloth | (待添加) |
评估指标
- 困惑度:自然语言处理评估中使用的关键指标之一。它通过评估语言模型在给定特定单词序列的情况下预测下一个标记的能力来衡量模型的质量。困惑度为 1 表示预测与实际完全匹配,而大于 1 的值表示生成的标记与预期不同的“意外”程度。
- Kullback–Leibler (KL) 散度:一种统计指标,用于衡量一个概率分布与另一个概率分布的差异程度。在量化模型(或以任何方式改变原始张量)时,我们应尽可能使权重的概率分布与原始模型保持一致,因此该值越接近 0 越好。
- AI2 推理挑战 (ARC):一个基准测试,用于评估 AI 模型回答需要逻辑推理而非模式匹配的复杂科学问题的能力。
- HellaSwag:即 Harder Endings, Longer contexts, and Low-shot Activities for Situations With Adversarial Generations(有点拗口!),是一个旨在测试常识自然语言推理的基准测试。它要求模型预测句子最可能的结尾。
- MMLU:大规模多任务语言理解评估大语言模型在 57 个主题(包括初等数学、美国历史、计算机科学和法律)上的常识和问题解决能力。
- Truthful QA:评估大语言模型对问题生成真实响应的能力。它用于识别 AI 模型是否能够避免生成虚假或误导性信息,特别是在人类知识容易产生误解的领域。
- Winogrande:基于 Winograd Schema Challenge,是一个自然语言理解任务,要求模型解决涉及代词引用的句子中的歧义。
🔧 技术细节
量化方法
本项目使用的生成这些实验版本的方法在 Squeezing Tensor Bits: the quest for smaller LLMs 中有详细介绍。简而言之,它涉及使用 llama-imatrix
和 llama-quantize
的自定义版本来识别有影响力的张量,并将最重要的层量化到更高的比特精度,而将不太重要的层量化到较低的比特精度。这一过程部分受到了 Dumitru 等人的 Layer-Wise Quantization: A Pragmatic and Effective Method for Quantizing LLMs Beyond Integer Bit-Levels 的启发。
统计信息
修改后的 llama-imatrix 会生成有用的统计信息,以指导张量选择过程。--show-statistics
会显示以下信息:
- ∑(Bias):张量上所有激活的总和(即重要性得分)
- Min & Max:最小和最大激活值
- μ & σ:激活的均值和标准差
- % Active:平均激活超过非常小阈值(1e-6)的元素比例。有助于确定张量在推理过程中的活跃程度
- N:张量中的激活数量
- Entropy:激活分布的熵,以比特为单位(标准香农熵测量)
- E (norm):归一化熵
- ZD Score:如逐层量化论文中 3.1 层重要性得分所述的 z 得分分布
- CosSim:与前一层相同类型张量之间的余弦相似度(例如,blk.7.attn_k 和 blk.6.attn_k)
请注意,统计信息是针对每个单独的张量计算的,仅应用于比较相同类型的张量。例如,假设第 10 层的 attn_k 在推理过程中的影响比第 7 层的 attn_k 更大,因为其 ∑(Bias) 更大,这是合理的;而在 attn_k 和 ffn_down 之间得出相同的结论则不合理。
代码修改
有一个 拉取请求 试图将这些更改合并回核心 llama.cpp 项目。这可能会也可能不会实现,因此在此之前,修改后的版本将在 GitHub 上提供。
📄 许可证
本项目采用 apache-2.0 许可证。
致谢
- 非常感谢 Colin Kealty 的诸多贡献,以及他是 Huggingface 上高质量量化模型的最佳来源之一。
- 特别感谢 Georgi Gerganov 在 llama.cpp 和 ggml/gguf 库方面的杰出工作。



