@
kaidong21 一楼正确个锤子,这种车轱辘话回答上到点子了?有半点信息量? GGUF 的量化的资料特别少,学术界也不怎么研究,答案基本都只在代码里,问大模型能问出个锤子。
回楼主:
对单个张量而言,GGUF K-量化方法常见的只有 Q2_K / Q3_K / Q4_K / Q5_K / Q6_K 。而同一个模型里面包含了多个张量,每个张量的精度都可以不同。
而后缀 _S / _M / _L / _XL 的意思就是,如果这个量化模型里含有的高精度张量越多,就把他的规模标得越大。比如 Q4_K_M ,大部分张量是 Q4_K ,但对于小部分重要的张量(如注意力部分),就使用 Q6_K 。比如 Q4_K_S ,默认 Q4_K ,重要的张量用 Q5_K 。所以 Q4_K_M 的大小和精度都比 Q4_K_S 要好一些。
但是 _S / _M / _L / _XL 的具体定义可从来没有标准而言。这些规模根本不能说是一个标准,只能说这是一个预设。甚至 llama.cpp 中根本就没有预先定义好 Q4_K_L 和 Q4_K_XL 这两个预设,所以某某预设下的 _XL 甚至不如另一种预设下的 _M 大,也是正常的,因为这些东西本来就没有标准。
回到你说的那个模型,你点进 huggingface 的文件详情能看到每个张量的格式,Q4_K_M 中的张量有 Q4_K 和 Q6_K ,这应该是 llama.cpp 默认的预设。而那个 Q4_K_XL 中的张量基本只有 Q4_K 和 Q5_K ,是 UD 自己定义的预设。所以前者体积大,就这么简单。
这就是楼主想要的准确的回答(并且撰写过程中完全没有使用任何 AI )