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 庫方面的傑出工作。



