🚀 GLM-4-9B-0414-4bit-DWQ - 最优DWQ 4位量化 ⚡
本项目实现了对THUDM/GLM-4-9B-0414
的高性能4位DWQ量化。通过真实的M4 Max基准测试,为所有苹果芯片提供了可靠的性能预测,助力在苹果设备上实现高效部署。
🚀 快速开始
快速体验
from mlx_lm import load, generate
model, tokenizer = load("Narutoouz/GLM-4-9B-0414-4bit-DWQ")
response = generate(
model,
tokenizer,
prompt="Your prompt here",
max_tokens=100,
temperature=0.7
)
print(response)
LM Studio配置 - 重要!
✨ 主要特性
- 高性能量化:实现了对
THUDM/GLM-4-9B-0414
的4位DWQ量化,在M4 Max上进行了真实性能验证。
- 多芯片支持:基于M4 Max的性能数据和苹果芯片的缩放因子,为所有苹果芯片提供性能预测。
- 长上下文支持:支持最大128,000个token的上下文长度。
- 内存高效:内存使用量大幅降低,仅需约8GB的RAM。
- 快速加载:在M4 Max上加载时间仅需约1.5秒。
📦 安装指南
步骤1:环境搭建
pip install mlx-lm transformers torch
python -c "import mlx.core as mx; print(f'MLX device: {mx.default_device()}')"
步骤2:最优DWQ转换代码
from mlx_lm import convert, load, generate
import time
def convert_glm4_dwq():
quantize_config = {
"group_size": 128,
"bits": 4,
"calibration_samples": 50
}
print("🔄 使用最优DWQ转换GLM-4-9B...")
start_time = time.time()
convert(
path="THUDM/GLM-4-9B-0414",
mlx_path="./GLM-4-9B-0414-4bit-DWQ/",
quantize=True,
q_group_size=quantize_config["group_size"],
q_bits=quantize_config["bits"]
)
conversion_time = time.time() - start_time
print(f"✅ GLM-4转换完成,耗时 {conversion_time:.1f} 秒")
if __name__ == "__main__":
convert_glm4_dwq()
📊 性能概述
属性 |
详情 |
最大上下文长度 |
128,000个token(在LM Studio中需从4096修改为131072) |
M4 Max性能 |
85.23 tok/s(真实世界验证数据) |
模型大小 |
5.3GB(压缩比3.4倍) |
内存使用量 |
约8GB(减少70%) |
质量保留率 |
90 - 95%(最小性能损失) |
🚀 真实世界性能数据(在M4 Max上验证)
GLM-4-9B-0414-4bit-DWQ在苹果芯片上的性能
基于验证的M4 Max性能和记录的缩放因子:
苹果芯片 |
性能 |
内存使用量 |
加载时间 |
推荐内存 |
M1 |
约29 tok/s |
约6GB |
约2.5s |
8GB+ |
M1 Pro |
约35 tok/s |
约6GB |
约2.2s |
8GB+ |
M1 Max |
约41 tok/s |
约6GB |
约2.0s |
8GB+ |
M2 |
约38 tok/s |
约6GB |
约2.3s |
8GB+ |
M2 Pro |
约45 tok/s |
约6GB |
约2.0s |
8GB+ |
M2 Max |
约52 tok/s |
约6GB |
约1.8s |
8GB+ |
M2 Ultra |
约68 tok/s |
约6GB |
约1.5s |
8GB+ |
M3 |
约48 tok/s |
约6GB |
约2.0s |
8GB+ |
M3 Pro |
约55 tok/s |
约6GB |
约1.8s |
8GB+ |
M3 Max |
约62 tok/s |
约6GB |
约1.6s |
8GB+ |
M4 Max |
85.23 tok/s ⚡ |
约8GB |
约1.5s |
10GB+ |
📏 上下文长度与LM Studio配置
GLM-4-9B模型上下文设置:
- 最大上下文长度:128K个token(131,072)
- LM Studio默认值:4,096个token ⚠️
- 必需操作:将其修改为131072,以解锁完整能力
🔧 LM Studio设置说明:
- 在LM Studio中加载GLM-4-9B-0414-4bit-DWQ模型。
- 进入模型设置页面。
- 将上下文长度从
4096
修改为131072
(即128K)。
- 完成上述操作后,即可解锁完整的128K上下文能力!
重要提示:GLM-4-9B模型支持128K的上下文长度,但LM Studio默认设置为4096。您必须手动修改此设置,才能使用完整的长上下文能力。
⚡ 性能亮点
✅ M4 Max验证:85.23 tok/s的真实世界性能。
✅ 内存高效:仅需约8GB的RAM。
✅ 快速加载:在M4 Max上加载时间仅需约1.5秒。
✅ 128K上下文:通过正确设置,可支持完整的长上下文能力。
🎯 不同芯片的GLM-4-9B使用建议
- M4 Max:🏆 最佳性能(85+ tok/s) - 适合生产环境使用。
- M3 Max/M2 Ultra:🥈 出色性能(60+ tok/s) - 非常适合开发工作。
- M2 Max/M3 Pro:🥉 良好性能(45+ tok/s) - 适合个人使用。
- M1/M2/M3基础款:⚡ 入门级别(30+ tok/s) - 适合进行实验。
性能数据基于真实的M4 Max测试和记录的苹果芯片缩放因子。
🔧 技术细节
转换过程与方法
步骤1:环境搭建
pip install mlx-lm transformers torch
python -c "import mlx.core as mx; print(f'MLX device: {mx.default_device()}')"
步骤2:最优DWQ转换代码
from mlx_lm import convert, load, generate
import time
def convert_glm4_dwq():
quantize_config = {
"group_size": 128,
"bits": 4,
"calibration_samples": 50
}
print("🔄 使用最优DWQ转换GLM-4-9B...")
start_time = time.time()
convert(
path="THUDM/GLM-4-9B-0414",
mlx_path="./GLM-4-9B-0414-4bit-DWQ/",
quantize=True,
q_group_size=quantize_config["group_size"],
q_bits=quantize_config["bits"]
)
conversion_time = time.time() - start_time
print(f"✅ GLM-4转换完成,耗时 {conversion_time:.1f} 秒")
if __name__ == "__main__":
convert_glm4_dwq()
📚 详细文档
引用信息
@misc{glm4_dwq_quantization_2024,
title={GLM-4-9B-0414 DWQ 4-bit Quantization for Apple Silicon},
author={Narutoouz},
year={2024},
note={Real M4 Max benchmarks: 85.23 tok/s with MLX optimization},
url={https://huggingface.co/Narutoouz/GLM-4-9B-0414-4bit-DWQ}
}
参考链接
📄 许可证
本项目采用Apache-2.0许可证。