MagicQuant (v2.0) - 混合式GGUF量化模型 + Unsloth动态学习量化配置 + 包含可折叠赢家的基准表等
摘要
MagicQuant v2.0 是一个用于创建混合式GGUF量化模型的管道,它通过学习Unsloth和其他方法,基于KLD基准找到最优量化配置,重点关注非线性赢家和异常检测。
过去5个多月,我构建了一个用于创建混合式GGUF量化混合模型的管道。我还让它能够通过利用Unsloth(或其他)模型的量化张量分配来学习它们。某些架构(如 Qwen3.6 27B)具有非常奇特的模式,可以在显著减小模型体积的同时获得更低的KLD。不过这完全取决于架构!构建这个项目对我来说非常有趣。我将其命名为“MagicQuant”。我很乐意展示它当前产出的成果以及已发布的仓库。混合方面非常有趣,也是我将主要讨论的内容。但最终的结果表不仅包含混合模型,还包括Unsloth、llama.cpp或其他它所学习到的模型,但它只显示通过管道考验的幸存者。MagicQuant 具有支配性、溢价、非线性子空间赢家和折叠逻辑,而不是像那种量化转储仓库那样说:“我不知道 IQ4_XS 和 Q4_K_S 哪个更好,尽管它们大小相同。我也不知道这个模型是否对 IQ4_NL 过敏,但祝你好运!” MagicQuant 的目标是基于你拥有的VRAM,实际测试哪种配置最具性价比。有些模型非常可预测、乏味,没有太大的改进空间,但可能有一些不错的可选子区域、良好的折叠空间等。有些模型则很奇怪、有古怪之处,系统会识别这一点并对其进行极致优化。MagicQuant 旨在解决我个人对该领域的一些关键问题:1.) 每个人都会发布 Q8/Q6/Q5 等。但没有基准测试。从一个量化到另一个量化时,KLD是否有剧烈下降?如果是,你为什么要展示一个明显糟糕的交易?2.) 如果我需要处于 Q4 大小范围,但愿意牺牲更多字节以换取非线性的 KLD 提升呢?也就是说,找到值得作为选项存在的良好非线性 KLD 交易点。3.) 下载模型时,我只想知道哪些量化值得关注,而不是当前可用的每一个量化。哪些是值得的?哪些在这个模型上表现更好?提示:模型架构很奇怪,有些喜欢某些量化,有些喜欢奇怪的量化但仅限于某些比特范围(其中噪声变得有益),有些则过敏,有些则大量偏爱奇怪的量化。有些非常喜欢 MXFP4,尽管大多数模型讨厌它,哈哈。4.) 检测异常,追踪它们,验证其存在,并利用学到的模式。这种情况很少见,但当它存在时,就利用它!Qwen3.6 27B 就属于这种可以被利用的奇怪类别。
**这篇文章很长。以下是可跳过的内容:**
* **示例部分** - 展示实际结果。建议阅读以理解。
* **请理解** - 我知道专门设一个章节说“这比你想的更接地气,请理解 X”很奇怪。但没有这一部分,你可能会误判或误解 MagicQuant。如果你想可以跳过,但我认为它很重要。
* **克隆部分** - 可选阅读,但很酷。
* **非线性赢家部分** - 如果你不关心如何选择赢家或这意味着什么,可以跳过。
* **什么是 MagicQuant 部分** - 可能应该阅读,但如果你只想看结果、点击下载并试用,也可以跳过。基本上,示例和最后一部分就是全部必要内容。其余部分是为那些想了解、有疑问等的人准备的。再次为篇幅道歉,但这付出了大量工作,非常有趣,并且在业余时间付出了很多努力。
# MagicQuant 仓库示例
首先展示迄今为止我最喜欢也是最好的结果,因为它最有趣。大多数模型更温和,但 Qwen3.6 27B 有很大的空间来展示 MagicQuant 的发现。
# Qwen3.6 27B
还有许多模型被淘汰并上传。但我只展示了几个被划掉的模型,以提供参考点。用于学习配置模式的是 Unsloth Dynamic XL 模型(它们只有 XL 模型)和 llama.cpp 默认配置。
|名称|KLD|大小 (GB)|
|:-|:-|:-|
|~~LM-Q8\_0~~|~~0.003768~~|~~28.60~~|
|[MQ-Q6\_K\_1](#winner-notes)|0.002845|27.25|
|MQ-Q6\_K\_2|0.003884|25.23|
|MQ-Q6\_K\_3|0.004914|23.66|
|~~LM-Q6\_K~~|~~0.007249~~|~~22.08~~|
|[MQ-Q5\_K\_S\_1](#winner-notes)|0.006477|21.90|
|MQ-Q5\_K\_S\_2|0.007617|20.86|
|LM-Q5\_K\_S|0.010790|18.68|
|~~UD-Q4\_K\_XL~~|~~0.023521~~|~~17.61~~|
|[MQ-IQ4\_NL\_1](#winner-notes)|0.019687|17.59|
|LM-IQ4\_NL|0.025714|15.80|
|LM-IQ4\_XS|0.027015|15.08|
|[MQ-IQ3\_M\_1](#winner-notes)|0.043802|14.49|
|[LM-IQ3\_S](#winner-notes)|0.064393|12.42|
|[LM-IQ3\_XXS](#winner-notes)|0.093578|11.19|
|LM-IQ2\_M|0.163117|10.00|
|[LM-IQ2\_S](#winner-notes)|0.210251|9.36|
|LM-IQ2\_XXS|0.302597|8.43|
# 比 Q8 更小但 KLD 更低?
那么,让我指出房间里的大象。MagicQuant 是如何构建出一个比 Q8\_0 小 1.35 GB 但 KLD 损伤降低了近 25% 的模型?因为 `ffn_down` 中的 `Q6_K` 产生的 KLD 比使用 `Q8_0` 还要低!这在隔离环境中并不是可检测到的模式,但当整个模型周围 BF16 少得多时,量化时出现了这种涌现行为。MagicQuant 有办法对异常进行冒烟测试,在这种场景下它发现了多个异常,但我只指出一个。而 `MQ-Q6_K_1` 只是用 `Q8_0` 重建了相同的模型,除了 `ffn_down` 之外的所有组都是 `Q8_0`。
# 发生了什么?
MagicQuant 会构建在 KLD 与大小权衡上具有非线性优势的赢家,或者我称之为免费午餐(即更小或相同大小且更好)。当涉及到支配性赢家或非线性赢家时,那只是发现得很好的获胜模型。像“溢价”赢家或“折叠”赢家则具有更尖锐的逻辑,并不总是“纯粹更好”,但总体而言仍然是合理的逻辑。但 `MQ-Q6_K_1` 只是一个混合模式的简单示例,一旦你开始触及更低的比特位,就会开始看到像下面这样非常有趣的模式。这是 `MQ-Q5_K_S_1`:
{
"embeddings": "IQ4_NL",
"lm_head": "Q6_K",
"attn_q": "IQ4_XS",
"attn_kv": "Q8_0",
"attn_output": "Q8_0",
"ffn_up_gate": "UD-Q6_K_XL",
"ffn_down": "Q5_K"
}
或者有时没那么疯狂,你会看到像 `UD-Q4_K_XL` 被 `MQ-IQ4_NL_1` 淘汰这样的获胜,其模式如下:
{
"embeddings": "IQ4_NL",
"lm_head": "UD-Q4_K_XL",
"attn_q": "IQ4_XS",
"attn_kv": "Q5_K_S",
"attn_output": "UD-Q4_K_XL",
"ffn_up_gate": "UD-Q4_K_XL",
"ffn_down": "UD-Q4_K_XL"
}
我喜欢它只是直接使用了 Unsloth 的 Q4\_K\_XL,然后说:“哦,如果我仅仅改变这两个组,就是免费午餐。” 实际上,`UD-Q3_K_XL` 也是以这种方式被淘汰的,不过它是因为“溢价”逻辑而不是因为纯粹“更好”。溢价赢家意味着它比我们比较的基线最大只大 1%,并且 KLD 比下一个比特锚点具有非线性优势。所以在我的管道中,这是一个更具倾向性的尖锐赢家,但我认为这也是一个非常高的门槛。但如你所见,MagicQuant 在这个模型上能够非常有力地命中。异常检测很少见,但一旦发生,你就会看到这样的疯狂。而这就是 7 个混合模型被果断选为最终幸存者的原因。但根据我的观察,通常情况下,27B 模型特别尖锐,但更温和、正常的结果就像 Qwen3 4B 那样。
# Qwen3 4B 2507 Instruct
现在,[Qwen3-4B-Instruct-2507](https://huggingface.co/magiccodingman/Qwen3-4B-Instruct-2507-Unsloth-MagicQuant-v2-GGUF) 更符合我所说的 MagicQuant 的“正常”表现。没有异常,没有疯狂,只有我认为的直接价值。
|名称|量化系列|KLD|大小 (GiB)|
|:-|:-|:-|:-|
|LM-Q8\_0|Q8\_0|0.001339|3.99|
|MQ-Q6\_K\_1|Q6\_K|0.001817|3.58|
|UD-Q6\_K\_XL|UD-Q6\_K\_XL|0.002111|3.41|
|LM-Q6\_K|Q6\_K|0.004640|3.08|
|[MQ-Q5\_K\_1](#winner-notes)|Q5\_K|0.006632|2.88|
|[UD-Q5\_K\_XL](#winner-notes)|UD-Q5\_K\_XL|0.009839|2.73|
|[MQ-Q4\_K\_M\_1](#winner-notes)|Q4\_K\_M|0.020346|2.44|
|[LM-Q4\_K\_S](#winner-notes)|Q4
相似文章
@outsource_: 全新 GLM+ Qwen 18B 可在消费级 GPU 上运行,仅用一半显存就打败 35B MoE
全新的 18B 融合量化模型 Qwopus-GLM-18B-GGUF,仅用一半显存即可在消费级 GPU 上运行,性能超越 35B MoE 模型。
KyleHessling1/Qwopus-GLM-18B-Merged-GGUF
实验性 18B 参数模型:将两个 Qwen-3.5-9B 微调模型堆叠后,用 1000 步 QLoRA“缝合”层边界;生成的 GGUF 在 44 项测试集上超越 Qwen 3.6-35B MoE,却只占 9.2 GB 显存。
Jackrong/Qwopus-GLM-18B-Merged-GGUF
Jackrong 发布了 Qwopus-GLM-18B-Merged-GGUF,这是一个结合两个 Qwen3.5-9B 微调模型的 64 层“弗兰肯合并”模型,参数规模约 18B。通过 1000 步 LoRA 微调修复了层边界问题。该模型在能力基准测试中达到 90.9%,而显存消耗不到 Qwen 3.6-35B MoE 的一半。
hesamation/Qwen3.6-35B-A3B-Claude-4.6-Opus-Reasoning-Distilled-GGUF
一个 35B 参数的 Qwen3.6 模型,使用 Claude-Opus 风格的思维链蒸馏数据微调,并以 GGUF 量化格式发布,可在本地高效推理。
QuantCode-Bench:评估大语言模型生成可执行算法交易策略能力的基准
# 论文页面 - QuantCode-Bench:评估大语言模型生成可执行算法交易策略能力的基准 来源:[https://huggingface.co/papers/2604.15151](https://huggingface.co/papers/2604.15151) ## 摘要 QuantCode\-Bench 通过测试大语言模型能否将自然语言描述转化为可在历史金融数据上正确运行的功能性代码,来评估其生成可执行交易策略的能力。