license: mit
language:
- zh
- en
pipeline_tag: text-generation
library_name: transformers
GLM-Z1-9B-0414 GGUF 模型
模型生成详情
该模型使用 llama.cpp 在提交版本 e291450
时生成。
IQ-DynamicGate 超低位量化(1-2 比特)
我们最新的量化方法引入了针对超低位模型(1-2 比特)的精度自适应量化,在 Llama-3-8B 上验证了基准性能的提升。该方法采用分层策略,在保持极致内存效率的同时保留准确性。
基准测试背景
所有测试均在 Llama-3-8B-Instruct 上进行,使用:
- 标准困惑度评估流程
- 2048 个 token 的上下文窗口
- 所有量化版本使用相同的提示集
方法
- 动态精度分配:
- 前/后 25% 的层 → IQ4_XS(选定层)
- 中间 50% → IQ2_XXS/IQ3_S(提高效率)
- 关键组件保护:
- 嵌入层和输出层使用 Q5_K
- 相比标准 1-2 比特量化减少 38% 的误差传播
量化性能对比(Llama-3-8B)
量化方式 |
标准 PPL |
DynamicGate PPL |
Δ PPL |
标准大小 |
DG 大小 |
Δ 大小 |
标准速度 |
DG 速度 |
IQ2_XXS |
11.30 |
9.84 |
-12.9% |
2.5G |
2.6G |
+0.1G |
234s |
246s |
IQ2_XS |
11.72 |
11.63 |
-0.8% |
2.7G |
2.8G |
+0.1G |
242s |
246s |
IQ2_S |
14.31 |
9.02 |
-36.9% |
2.7G |
2.9G |
+0.2G |
238s |
244s |
IQ1_M |
27.46 |
15.41 |
-43.9% |
2.2G |
2.5G |
+0.3G |
206s |
212s |
IQ1_S |
53.07 |
32.00 |
-39.7% |
2.1G |
2.4G |
+0.3G |
184s |
209s |
说明:
- PPL = 困惑度(越低越好)
- Δ PPL = 从标准到 DynamicGate 的百分比变化
- 速度 = 推理时间(CPU avx2,2048 token 上下文)
- 大小差异反映了混合量化的开销
关键改进:
- 🔥 IQ1_M 显示困惑度大幅降低 43.9%(27.46 → 15.41)
- 🚀 IQ2_S 在仅增加 0.2GB 的情况下将困惑度降低 36.9%
- ⚡ IQ1_S 尽管是 1 比特量化,仍保持 39.7% 的更高准确率
权衡:
- 所有变体都有适度的体积增加(0.1-0.3GB)
- 推理速度保持相近(差异 <5%)
何时使用这些模型
📌 将模型适配到 GPU VRAM 中
✔ 内存受限的部署
✔ CPU 和边缘设备,可以容忍 1-2 比特误差
✔ 超低位量化的研究
选择正确的模型格式
选择正确的模型格式取决于您的硬件能力和内存限制。
BF16(Brain Float 16)– 如果支持 BF16 加速则使用
- 一种 16 位浮点格式,专为更快计算而设计,同时保留良好的精度。
- 提供与 FP32 相似的动态范围,但内存占用更低。
- 如果您的硬件支持BF16 加速(检查设备规格),则推荐使用。
- 与 FP32 相比,适用于高性能推理和减少内存占用。
📌 使用 BF16 如果:
✔ 您的硬件具有原生 BF16 支持(例如较新的 GPU、TPU)。
✔ 您希望在节省内存的同时获得更高的精度。
✔ 您计划将模型重新量化为另一种格式。
📌 避免使用 BF16 如果:
❌ 您的硬件不支持 BF16(可能会回退到 FP32 并运行较慢)。
❌ 您需要与缺乏 BF16 优化的旧设备兼容。
F16(Float 16)– 比 BF16 更广泛支持
- 一种 16 位浮点格式,精度较高,但数值范围比 BF16 小。
- 在大多数支持 FP16 加速的设备上工作(包括许多 GPU 和一些 CPU)。
- 数值精度略低于 BF16,但通常足以满足推理需求。
📌 使用 F16 如果:
✔ 您的硬件支持 FP16 但不支持 BF16。
✔ 您需要在速度、内存使用和准确性之间取得平衡。
✔ 您在GPU或其他优化 FP16 计算的设备上运行。
📌 避免使用 F16 如果:
❌ 您的设备缺乏原生 FP16 支持(可能比预期运行更慢)。
❌ 您有内存限制。
量化模型(Q4_K、Q6_K、Q8 等)– 适用于 CPU 和低 VRAM 推理
量化减少了模型大小和内存使用,同时尽可能保持准确性。
- 低位模型(Q4_K) → 最小内存占用的最佳选择,但精度可能较低。
- 高位模型(Q6_K、Q8_0) → 更好的准确性,但需要更多内存。
📌 使用量化模型如果:
✔ 您在 CPU 上运行推理并需要优化模型。
✔ 您的设备VRAM 较低,无法加载全精度模型。
✔ 您希望减少内存占用,同时保持合理的准确性。
📌 避免使用量化模型如果:
❌ 您需要最高精度(全精度模型更适合)。
❌ 您的硬件有足够的 VRAM 支持更高精度的格式(BF16/F16)。
超低位量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
这些模型针对极致内存效率进行了优化,非常适合低功耗设备或大规模部署,其中内存是关键限制。
-
IQ3_XS:超低位量化(3 比特),极致内存效率。
- 使用场景:适用于超低内存设备,甚至 Q4_K 都太大时。
- 权衡:与高位量化相比,准确性较低。
-
IQ3_S:小块大小,最大内存效率。
- 使用场景:适用于低内存设备,其中 IQ3_XS 过于激进。
-
IQ3_M:中等块大小,比 IQ3_S 更好的准确性。
- 使用场景:适用于低内存设备,其中 IQ3_S 过于受限。
-
Q4_K:4 比特量化,块优化以提高准确性。
- 使用场景:适用于低内存设备,其中 Q6_K 太大。
-
Q4_0:纯 4 比特量化,针对 ARM 设备优化。
- 使用场景:适用于基于 ARM 的设备或低内存环境。
总结表:模型格式选择
模型格式 |
精度 |
内存使用 |
设备要求 |
最佳使用场景 |
BF16 |
最高 |
高 |
支持 BF16 的 GPU/CPU |
高速推理,减少内存占用 |
F16 |
高 |
高 |
支持 FP16 的设备 |
GPU 推理,BF16 不可用时 |
Q4_K |
中低 |
低 |
CPU 或低 VRAM 设备 |
内存受限环境的最佳选择 |
Q6_K |
中 |
中等 |
内存较多的 CPU |
量化模型中更好的准确性 |
Q8_0 |
高 |
中等 |
CPU 或足够 VRAM 的 GPU |
量化模型中最高的准确性 |
IQ3_XS |
极低 |
极低 |
超低内存设备 |
极致内存效率,低准确性 |
Q4_0 |
低 |
低 |
ARM 或低内存设备 |
llama.cpp 可针对 ARM 优化 |
包含的文件及详情
GLM-Z1-9B-0414-bf16.gguf
- 模型权重以 BF16 保留。
- 如果您想将模型重新量化为其他格式,请使用此文件。
- 如果您的设备支持 BF16 加速,则最佳。
GLM-Z1-9B-0414-f16.gguf
- 模型权重以 F16 存储。
- 如果您的设备支持 FP16,尤其是 BF16 不可用时使用。
GLM-Z1-9B-0414-bf16-q8_0.gguf
- 输出和嵌入层保持为 BF16。
- 其他所有层量化为 Q8_0。
- 如果您的设备支持 BF16 并且您想要量化版本,请使用此文件。
GLM-Z1-9B-0414-f16-q8_0.gguf
- 输出和嵌入层保持为 F16。
- 其他所有层量化为 Q8_0。
GLM-Z1-9B-0414-q4_k.gguf
- 输出和嵌入层量化为 Q8_0。
- 其他所有层量化为 Q4_K。
- 适用于内存有限的 CPU 推理。
GLM-Z1-9B-0414-q4_k_s.gguf
- 最小的 Q4_K 变体,以准确性为代价减少内存使用。
- 适用于极低内存设置。
GLM-Z1-9B-0414-q6_k.gguf
- 输出和嵌入层量化为 Q8_0。
- 其他所有层量化为 Q6_K。
GLM-Z1-9B-0414-q8_0.gguf
- 完全 Q8 量化模型,提供更好的准确性。
- 需要更多内存,但提供更高的精度。
GLM-Z1-9B-0414-iq3_xs.gguf
- IQ3_XS 量化,针对极致内存效率优化。
- 适用于超低内存设备。
GLM-Z1-9B-0414-iq3_m.gguf
- IQ3_M 量化,提供中等块大小以提高准确性。
- 适用于低内存设备。
GLM-Z1-9B-0414-q4_0.gguf
- 纯 Q4_0 量化,针对 ARM 设备优化。
- 适用于低内存环境。
- 如需更高准确性,推荐 IQ4_NL。
🚀 如果您觉得这些模型有用
❤ 请点击“点赞”如果觉得有用!
帮助我测试AI 驱动的网络监控助手,具备量子就绪安全检查:
👉 免费网络监控
💬 如何测试:
- 点击聊天图标(页面右下角)
-
选择一种AI 助手类型: