GPTQModel
GPTQModel 是一款专为大型语言模型(LLM)打造的量化压缩工具包,旨在通过降低模型精度来显著减少显存占用并提升推理速度,同时尽量保持模型的智能表现。它有效解决了大模型在消费级显卡或普通 CPU 上难以运行、响应缓慢的痛点,让部署高性能 AI 变得更加轻松。
无论是希望将大模型本地化的开发者、需要高效实验的研究人员,还是想要在自己电脑上运行先进 AI 的技术爱好者,都能从中受益。GPTQModel 的最大亮点在于其广泛的硬件兼容性,不仅支持 NVIDIA 显卡,还全面适配 AMD、Intel GPU 以及苹果 M 系列芯片和各类主流 CPU。此外,它无缝集成 Hugging Face、vLLM 和 SGLang 等流行框架,并拥有动态编译内核、针对混合专家模型(MoE)的特殊优化策略以及多种前沿量化算法(如 AWQ、FP8 等),确保在不同硬件环境下都能实现极致的运行效率与稳定性。
使用场景
一家初创团队试图在单张消费级 NVIDIA RTX 4090 显卡上部署 70B 参数的大语言模型,以构建低成本的私有知识库问答系统。
没有 GPTQModel 时
- 显存严重溢出:70B 模型的 FP16 权重需占用约 140GB 显存,远超 4090 的 24GB 上限,导致程序直接崩溃无法启动。
- 硬件资源闲置:团队被迫租用昂贵的多卡 A100 云服务器,本地高性能显卡完全派不上用场,运营成本居高不下。
- 推理延迟过高:即便勉强在多卡环境运行,未量化的模型通信开销大,首字生成延迟高达数秒,用户体验极差。
- 部署流程繁琐:缺乏统一的量化接口,针对不同架构(如 CUDA、ROCm)需手动修改代码,适配周期长达数周。
使用 GPTQModel 后
- 显存占用骤降:利用 GPTQModel 将模型量化为 4-bit,显存需求压缩至 48GB 以内,配合 offload 技术成功在单卡或双卡消费级设备上流畅运行。
- 成本大幅降低:直接复用本地现有的 RTX 4090 集群,无需租赁云端高端算力,硬件投入成本减少 90% 以上。
- 推理速度飞跃:借助 GPTQModel 集成的 Marlin 和 Machete 加速内核,量化后的模型推理吞吐量提升 3-4 倍,实现毫秒级响应。
- 跨平台一键部署:通过 Hugging Face 和 vLLM 原生支持,一条命令即可完成从量化到服务部署的全流程,且自动适配 NVIDIA、AMD 及 Intel 等多种硬件后端。
GPTQModel 通过极致的模型压缩与硬件加速,让顶级大模型得以在边缘设备和消费级显卡上高效落地,彻底打破了高昂的算力门槛。
运行环境要求
- Linux
- macOS
- 支持 NVIDIA CUDA (Turing 架构及以上,如 3090)、AMD ROCm、Intel XPU
- CPU 模式支持 Intel/AMD/Apple
- 显存需求视模型大小而定,大模型量化建议使用 24GB+ (如 RTX 3090) 或多卡并行以降低显存压力
未说明(但提到默认开启 offload_to_disk 以大幅减少 CPU 内存占用)

快速开始
GPT-QModel
大语言模型量化(压缩)工具包,支持NVIDIA CUDA、AMD ROCm、Intel XPU以及通过HF、vLLM和SGLang实现的Intel/AMD/Apple CPU硬件加速。
最新消息
- 2026年4月16日 6.1.0: 🚀🔥⚡ CUDA内核现已完全采用JIT编译,使轮子文件缩小约300倍,仅构建您使用的部分;Marlin现支持NVIDIA
Turing+GPU,Machete内核验证现已覆盖所有受支持的GPU,GLM 5/5.1加入阵容,而LazyTurtle与AWQ/多GPU MoE修复则使大模型量化更轻松、更轻量、更流畅。 - 2026年4月3日 6.0.3: 🎉 新的量化方法:
ParoQuant、GGUF、FP8、EXL3和FOEM: First-Order Error Matters。新增PrismML/Bonsai 1bit模型量化(仅推理),更快的ParoQuant/AWQ内核,ParoQuant优化范围控制:模块(Paro Lite)或层(Paro参考),此外还支持Gemma4、MiniCPM-O、MiniCPM-V和GLM4 MoE Lite模型。 - 2026年3月19日 5.8.0: ✨支持HF Transformers 5.3.0,并通过pypi包Defuser自动解除
融合模型的封装。新增Qwen 3.5系列支持。为GPTQ/AWQ添加了新的快速HFcpu内核。为GPTQ实验性地添加了INT8cpu内核。
存档新闻
* 2026年2月9日 [5.7.0](https://github.com/ModelCloud/GPTQModel/releases/tag/v5.7.0): ✨新的 `MoE.Routing`配置,带有`Bypass`和`Override`选项,允许对MoE路由进行多重暴力控制,以提高MoE专家的量化质量。结合`FailSafeStrategy`,GPT-QModel现在拥有三种独立的控制设置,用于高效量化MoE专家。 `AWQ` `qcfg.zero_point`属性已合并为统一的`sym`对称属性;`zero_point=True`现在等同于`sym=False`。 修复了`AWQ` `sym=True`打包/推理与某些Qwen3模型的量化兼容性问题。新增Exaone 4.0支持。2025年12月31日 5.7.0-dev: ✨新的
FailSafe配置和FailSafeStrategy,默认自动启用,以解决MoE专家路由不均导致的部分MoE模块量化问题。在FailSafeStrategy中引入了Smooth操作,以减少使用RTN进行FailSafe量化时异常值的影响。可选择不同的FailSafeStrategy和Smoothers。还可自定义激活FailSafe的Threshold。 新增Voxtral和Glm-4v模型支持,以及针对Qwen2-Omni的音频数据集校准。修复了GLM 4.5-Air的AWQ兼容性问题。2025年12月17日 5.6.2-12 Patch: 修复了
uv兼容性问题。无论是uv还是pip安装,现在都会显示外部轮子/依赖下载的UI进度。修复了macOS和AWQMarlin内核加载导入回归问题。解决了Ubuntu、Arch、RedHat等发行版上的大多数multi-arch编译问题。修复了多GPU上的multi-arch构建问题和Tritonv2内核启动错误。修复了3位Triton GPTQ内核去量化/推理与最新pip/setuptools许可证属性的兼容性问题。2025年12月9日 5.6.0: ✨新的
HF Kernel专为CPU优化,支持AMX、AVX2和AVX512。自动模块树实现自动模型支持。新增AfMoE和Dots1模型支持。修复了预层传递量化速度下降的问题。改进了HF Transformers、PEFT和Optimum对GPTQ和AWQ的支持。修复了许多AWQ兼容性bug和回归问题。2025年11月9日 5.4.0: ✨新的英特尔CPU和XPU硬件优化的AWQ
TorchFusedAWQ内核。Torch Fused内核现与torch.compile兼容。修复了AWQ MoE模型的兼容性,并减少了VRAM占用。2025年11月3日 5.2.0: ✨MiniMax M2支持,配备ModelCloud BF16 M2 Model。新增
VramStrategy.Balanced量化属性,用于在多台3090(24GB)设备上降低大型MoE的内存使用。✨Marin模型。新的AWQ Torch参考内核。修复了AWQ Marlin内核的bf16问题。修复了GLM 4.5/4.6 MoE保存模型时缺少mtp层的问题(HF bug)。模块化重构。🎉AWQ正式脱离beta阶段,全面支持包括多GPU量化和MoE VRAM节省等功能。✨Brumby(无注意力机制)模型支持。✨IBM Granite Nano支持。新增calibration_concat_separator配置选项。2025年10月24日 5.0.0: 🎉 支持使用
nogilPython在多GPU上对MoE模型进行数据并行量化。默认启用offload_to_disk功能,以大幅减少CPU内存占用。新增Intel和AMDCPU硬件加速的TorchFused内核。打包阶段现在快了4倍,并与量化过程内联。量化过程中降低了大型模型的VRAM压力。act_group_aware的速度提升了16000多倍,现在当desc_act=False时成为默认设置,以在不牺牲推理性能的情况下实现更高质量的恢复。新增具有完整gemm、gemm_fast和marlin内核支持的beta版AWQ支持。新增LFM、Ling、Qwen3 Omni模型支持。Bitblas内核已更新,以支持Bitblas0.1.0.post1版本发布。 量化过程现在更快,且VRAM占用更少。增强了日志记录支持,配备了LogBar。2025年9月16日 4.2.5:将
hyb_act重命名为act_group_aware。移除了setup.py中繁琐的torch导入。修复了打包问题,并提供了预构建的 PyTorch 2.8 轮子。2025年9月12日 4.2.0:✨ 新增模型支持:Qwen3-Next、Apertus、Kimi K2、Klear、FastLLM、Nemotron H。在
.quantize()方法中新增了一个fail_safe布尔开关,用于临时修复因 MoE 模型训练极不均衡而导致未激活的 MoE 模块问题。修复了与 LavaQwen2 的兼容性。针对多 GPU 环境下的 GIL=0 CUDA 错误进行了补丁修复。同时修复了与 autoround 和新版 Transformers 的兼容性问题。2025年9月4日 4.1.0:✨ 支持美团 LongCat Flash Chat、Llama 4、GPT-OSS(BF16)以及 GLM-4.5-Air。新增实验性配置
mock_quantization,可在量化过程中跳过复杂的计算路径,从而加速模型量化测试。2025年8月21日 4.0.0:🎉 新增群组感知重排(GAR)支持。新增模型支持:字节跳动 Seed-OSS、百度文心一言、华为盘古、Gemma3、小米 Mimo、Qwen 3/MoE、Falcon H1、GPT-Neo。修复了与 Transformers >= 4.54 相关的内存泄漏及多模型兼容性问题。新增对 Python >= 3.13t 自由线程的支持,使得 MoE 模型的量化性能接近 N 倍 GPU 数的线性扩展,而打包阶段的性能也能实现 N 倍 CPU 核数的线性扩展。提前支持 PyTorch 2.8 在 Intel XPU 上的融合算子,最高可提升约 50% 的速度。
2025年10月17日 5.0.0-dev
main:👀:EoRA 现已支持多 GPU。修复了多 GPU 量化中的质量稳定性问题及显存占用问题。新增 LFM 和 Ling 模型支持。2025年9月30日 5.0.0-dev
main:👀:新的数据并行 + 多 GPU + Python 3.13T(PYTHON_GIL=0)使大型 MoE 模型的整体量化时间相比 v4.2.5 缩短了 80% 以上。2025年9月29日 5.0.0-dev
main:🎉 新增 Qwen3 Omni 模型支持。集成 AWQ Marlin 内核,并修复了多项磁盘卸载、线程和内存使用相关问题。2025年9月24日 5.0.0-dev
main:🎉 对于大型 MoE 模型,采用更快/内联打包方式可节省高达 90% 的 CPU 内存!Qwen3 MoE 的量化时间缩短了 26%!新增 AWQ Marlin 内核。修复了 AWQ Gemm 加载错误。“act_group_aware” 现在速度更快,并在desc_act为 False 时自动启用 GPTQ,以提升量化质量。2025年9月19日 5.0.0-dev
main:👀 在量化阶段,通过新的offload_to_disk量化配置选项,默认设置为True,可节省约 73.5% 的 CPU 内存。2025年9月18日 5.0.0-dev
main:🎉 支持 AWQ 量化!对模型定义进行了全面重构和简化,为未来的量化格式做准备。2025年8月19日 4.0.0-dev
main:修复了部分模型在推理过程中错误应用config.use_cache导致的量化内存占用问题。修复了与Transformers≥ 4.54.0 的兼容性问题,该版本改变了部分模型的层前向返回签名。2025年8月18日 4.0.0-dev
main:支持 GPT-Neo 模型。修复了错误捕获(堆栈跟踪)中的内存泄漏问题,并解决了许多模型中lm_head量化兼容性问题。2025年7月31日 4.0.0-dev
main:新增分组感知重排(GAR)支持,以及面向 Intel XPU 的初步 PyTorch 2.8 融合操作,可实现最高 50% 的加速。2025年7月3日 4.0.0-dev
main:新增百度 Ernie 和华为 PanGu 模型支持。2025年7月2日 4.0.0-dev
main:修复了 Gemma3 4B 模型的兼容性问题。2025年5月29日 4.0.0-dev
main:支持 Falcon H1 模型。修复了与 Qwen 2.5 VL 模型相关的Transformers4.52+ 兼容性问题。2025年5月19日 4.0.0-dev
main:支持 Qwen 2.5 Omni 模型。2025年5月5日 4.0.0-dev
main:新增 Python 3.13t 自由线程支持,对于 MoE 模型的量化可实现接近 N x GPU 的线性扩展,同时打包阶段也可实现 N x CPU 核心的线性扩展。2025年4月29日 3.1.0-dev(现为 4.0.0)
main:支持小米 Mimo 模型。支持 Qwen 3 及 Qwen 3 MoE 模型。新增参数quantize(..., calibration_dataset_min_length=10),用于过滤公共数据集(如 wikitext)中不良的校准数据。2025年4月13日 [3.0.0](https://github.com/ModelCloud/Model/releases/tag/v3.0.0):🎉 新增实验性
v2量化选项,经GSM8K_PLATINUM基准测试 验证,可提升模型量化精度,优于原版gptq。新增Phi4-MultiModal模型支持。新增 Nvidia Nemotron-Ultra 模型支持。新增Dream模型支持。新增实验性多 GPU 量化支持。降低了显存占用,加快了量化速度。2025年4月2日 [2.2.0](https://github.com/ModelCloud/GPTQModel/releases/tag/v2.2.0):新增
Qwen 2.5 VL模型支持。量化过程中新增samples日志列,用于追踪 MoE 模型中的模块激活情况。Loss日志列现采用颜色编码,突出显示易于或难以量化的模块。量化过程中的每步进度统计现已实时输出到日志文件。根据模型配置自动加载bfloat16数据类型。修复了 PyTorch/ROCm 的内核编译问题。量化速度略有提升,并自动解决了一些低显存 GPU 的低级别 OOM 问题。2025年3月12日 [2.1.0](https://github.com/ModelCloud/GPTQModel/releases/tag/v2.1.0):✨ 新增
QQQ量化方法及推理支持! 新增 GoogleGemma 3零日模型支持。 新增 AlibabaOvis 2VL 模型支持。 新增 AMDInstella零日模型支持。新增GSM8K Platinum和MMLU-Pro基准测试支持。 使用 GPT-QModel 进行 Peft Lora 训练,在所有 GPU 和 IPEX 设备上速度提升了 30% 以上。 自动检测因校准数据不足而在量化过程中未激活的 MoE 模块。 修复了ROCmsetup.py的兼容性问题,以及与Optimum和Peft的兼容性问题。 修复了Peft的bfloat16训练问题。2025年3月3日 [2.0.0](https://github.com/ModelCloud/GPTQModel/releases/tag/v2.0.0):🎉
GPTQ量化内部现在被拆分为多个阶段(流程),以便功能扩展。 同步上游的Marlin内核推理质量修复。新增低精度 Marlin 累加模式,可通过环境变量控制(GPTQMODEL_MARLIN_USE_FP32=0可禁用,默认启用)。 新增ModelScope支持。日志记录和 CLI 进度条输出经过重新设计,底部进度条变为固定显示。 修复了generation_config.json的保存和加载问题。修复了与 Transformers v4.49.0 的兼容性问题。修复了无bos的模型的兼容性问题。修复了group_size=-1和bits=3打包回归问题。 修复了 Qwen 2.5 MoE 的回归问题。 新增 CI 测试,用于追踪内核推理质量的回归,并覆盖所有位数/组大小。将日志记录/进度条功能委托给 LogBar 包。 修复了setup安装中 ROCm 版本的自动检测问题。2025年2月12日 [1.9.0](https://github.com/ModelCloud/GPTQModel/releases/tag/v1.9.0):⚡ 将
tokenizer相关修复移至 Toke(n)icer 包。优化了lm_head量化时间和显存占用。 优化了DeepSeek v3/R1模型的量化显存占用。修复了 v1.8.1 中与Optimum的兼容性回归问题。当使用 PyTorch ≥ 2.5.0 并调用model.optimize()时,Torch内核速度提升 3 倍。新增calibration_dataset_concat_size选项,可启用校准数据的“拼接”模式,以模拟原始 GPTQ 数据打包策略,从而可能提高像wikitext2这样的数据集的量化速度和精度。2025年2月8日 [1.8.1](https://github.com/ModelCloud/GPTQModel/releases/tag/v1.8.1):⚡ 支持
DeepSeek v3/R1模型。新增灵活的权重“打包”方式:允许将量化后的权重打包为[int32, int16, int8]数据类型。Triton和Torch内核均支持全新的QuantizeConfig.pack_dtype范围。 新增quantize()中的auto_gc: bool控制,可减少小型模型量化时出现 OOM 的可能性。 新增buffered_fwd: bool控制,应用于model.quantize()。视觉(vl)模型的量化速度提升超过 50%。 修复了 v1.7.4 中的bits=3打包和group_size=-1回归问题。2025年1月26日 [1.7.4](https://github.com/ModelCloud/GPTQModel/releases/tag/v1.7.4):新增
compile()API,可提升约 4–8% 的推理 TPS。后量化模型保存时的“打包”速度更快。验证了Triton内核在安装 Intel Triton 软件包时对 Intel/XPU的适用性。修复了Transformers在保存时向下转换 tokenizer 类的问题。2025年1月20日 [1.7.3](https://github.com/ModelCloud/GPTQModel/releases/tag/v1.7.3):新增 Telechat2(中国电信)和 PhiMoE 模型支持。修复了嵌入共享模型在后量化保存时
lm_head权重重复的问题。2025年1月19日 [1.7.2](https://github.com/ModelCloud/GPTQModel/releases/tag/v1.7.2):在
load()过程中将记录有效的 BPW(每权重位数)。在 Intel Arc A770/B580XPU上,加载时间可缩短 3.3 倍。降低 MLX 转换中的内存占用,并修复了 Marlin 内核自动选择未检查 CUDA 计算版本的问题。2025年1月17日 [1.7.0](https://github.com/ModelCloud/GPTQModel/releases/tag/v1.7.0):👀 ✨ 新增
backend.MLX,用于在 Apple Silicon(M1+)上的 AppleMLX框架上进行 GPTQ 模型的运行时转换和执行。✨lm_head量化现已被 GPT-QModel 完全支持,无需外部软件包依赖。2025年1月7日 [1.6.1](https://github.com/ModelCloud/GPTQModel/releases/tag/v1.6.1):🎉 新增兼容 OpenAI API 的端点,通过
model.serve(host, port)实现。推理时自动启用 flash-attention2。修复了sym=False加载回归问题。2025年1月6日 [1.6.0](https://github.com/ModelCloud/GPTQModel/releases/tag/v1.6.0):⚡ 量化速度提升 25%。显存占用较 v1.5 减少 35%。👀 新增 AMD ROCm(6.2+)支持,并验证适用于 7900XT+ GPU。通过
load()API 自动加载 tokenizer。对于大多数模型,您不再需要手动初始化 tokenizer 用于推理和量化。2025年1月1日 [1.5.1](https://github.com/ModelCloud/GPTQModel/releases/tag/v1.5.1):🎉 2025 年到来!新增
QuantizeConfig.device,用于明确指定用于量化的设备:默认为auto。非量化模型始终默认在 CPU 上加载,而每一层会在量化时移动到QuantizeConfig.device,以最大限度地减少显存占用。修复了最新版Transformers中attn_implementation_autoset的兼容性问题。2024年12月23日 1.5.0:为Qwen 2-VL和Ovis 1.6-VL新增了多模态(图像到文本)优化量化支持。此前的图像到文本模型量化未使用图像校准数据,导致量化后效果不够理想。1.5.0版本首次提供了稳定的多模态量化路径:仅对文本层进行量化。
2024年12月19日 1.4.5:新增并验证了Windows 11支持;支持使用图像数据集进行校准的Ovis VL模型;修复了
dynamic加载问题;降低了量化过程中的显存占用。2024年12月15日 1.4.2:新增并验证了macOS下的
GPU(Metal)和CPU(M+)推理与量化支持;新增了Cohere 2模型支持。2024年12月13日 1.4.1:新增Qwen2-VL模型支持;在
QuantizeConfig中公开了mse量化控制选项;添加了patch_vllm()和patch_hf()猴子补丁API,以便在上游PR待处理期间,让Transformers/Optimum/PEFT及vLLM能够正确加载GPT-QModel量化模型。2024年12月10日 1.4.0:将
EvalPlus测试框架集成合并至上游。现同时支持旧版评估框架和EvalPlus。新增纯PyTorchTorch内核;重构Cuda内核为DynamicCuda内核。Triton内核现已自动填充以支持最大模型尺寸。Dynamic量化现同时支持正向+::默认模式,以及负向-:匹配模式,允许完全跳过匹配模块的量化。修复了自动选择Marlin内核的问题;增加了针对不支持的内核/模块组合的自动回退机制。为迎接Transformers/Optimum/PEFT上游PR的合并,进行了大量内部重构与清理工作。废弃了保存Marlin权重格式的做法,因为Marlin可在运行时自动将gptq格式转换为Marlin格式。2024年11月29日 1.3.1:新增Olmo2模型支持;通过IPEX实现Intel XPU加速;修复了由于HF API弃用导致的模型分片与Transformers兼容性问题;移除了对Triton的依赖,Triton内核现可选择性地依赖Triton包。
2024年11月26日 1.3.0:新增Zero-Day Hymba模型支持;移除了
tqdm和rogue依赖。2024年11月24日 1.2.3:新增HF GLM模型支持;集成ClearML日志记录;使用
device-smi替代gputil+psutil依赖;修复了模型单元测试。2024年11月11日 🚀 1.2.1:新增Meta MobileLLM模型支持;旧版评估集成已合并至上游;Intel/IPEX CPU推理功能已合并,取代了已弃用的QBits;自动修复并适配ChatGLM-3/GLM-4与最新Transformers版本的兼容性;新增
.load()和.save()API。2024年10月29日 🚀 1.1.0:新增IBM Granite模型支持;实现了从PyPI的完整无编译wheel安装;量化过程中最高CPU内存占用降低超过20%;模型及功能的CI覆盖率达到100%。
2024年10月12日 ✨ 1.0.9:将AutoRound设为可选,并修复了v1.0.8版本中pip安装出现的回归问题。
2024年10月11日 ✨ 1.0.8:新增Python 3.12和CUDA 11.8的wheel包。
2024年10月8日 ✨ 1.0.7:修复了部分模型未自动选择更快的Marlin内核的问题。
2024年9月26日 ✨ 1.0.6:修复了Llama 3.2视觉模型的量化加载器。
2024年9月26日 ✨ 1.0.5:部分支持Llama 3.2 Vision模型(mllama);目前仅支持文本层的量化。
2024年9月26日 ✨ 1.0.4 集成了 Liger Kernel 支持,在量化过程中可为部分模型减少约一半的显存占用。新增了用于禁用并行打包的控制开关。
2024年9月18日 ✨ 1.0.3 增加了对 Microsoft GRIN-MoE 和 MiniCPM3 的支持。
2024年8月16日 ✨ 1.0.2 支持 Intel/AutoRound v0.3、预构建的 whl 包以及 PyPI 发布。
2024年8月14日 ✨ 1.0.0
packing速度提升 40%,修复了 Python 3.9 兼容性问题,并新增了评估 API。2024年8月10日 🚀 0.9.11 增加了对 LG EXAONE 3.0 模型的支持。引入了新的
dynamic每层/模块灵活量化方式,允许每层或模块使用不同的位数和参数设置。同时为backend.BITBLAS添加了适当的分片支持,并能自动修复因阻尼值过小导致的量化错误。2024年7月31日 🚀 0.9.10 移植了 vllm/nm 的
gptq_marlin推理内核,扩展了位宽(8bit)、group_size(64,32)以及 desc_act 支持,适用于所有采用FORMAT.GPTQ格式的 GPTQ 模型。能够根据校准数据集自动计算 auto-round 的 nsamples/seglen 参数。修复了在未受支持后端上对已量化模型调用 save_quantized() 的问题。更新了 HF transformers 依赖,以确保 Llama 3.1 的修复正确应用于量化和推理过程。2024年7月25日 🚀 0.9.9: 增加了对 Llama-3.1 的支持,通过 vLLM 实现 Gemma2 27B 的量化推理支持,自动进行 pad_token 归一化,修复了 vLLM/SGLang 的 auto-round 量化兼容性等问题。
2024年7月13日 🚀 0.9.8: 可以直接使用 GPT-QModel 和快速的
vLLM或SGLang后端运行量化模型!vLLM 和 SGLang 均针对动态批处理推理进行了优化,以实现最高的 TPS(请参阅示例中的使用方法)。Marlin 后端也实现了完整的端到端输入输出填充功能,从而提升当前及未来模型的兼容性。2024年7月8日 🚀 0.9.7: 增加了对 InternLM 2.5 模型的支持。
2024年7月8日 🚀 0.9.6: 增加了对 Intel/AutoRound QUANT_METHOD 的支持,可实现更高品质的量化,并支持
lm_head模块量化以进一步降低显存占用:格式导出为FORMAT.GPTQ以获得最大的推理兼容性。2024年7月5日 🚀 0.9.5: CUDA 内核已被完全弃用,取而代之的是 Exllama(v1/v2)/Marlin/Triton。
2024年7月3日 🚀 0.9.4: 增加了与 HF Transformers 的集成,并修复了 Gemma 2 的支持问题。
2024年7月2日 🚀 0.9.3: 增加了对 Gemma 2 的支持,提升了 GPU 上的质量和基准测试计算速度,并对代码和参数进行了更多重构。
2024年6月30日 🚀 0.9.2: 为 exllama 和 exllama v2 添加了模型输入输出特征的自动填充功能。 修复了 OPT 和 DeepSeek V2-Lite 模型的量化问题。同时修复了 DeepSeek V2-Lite 的推理问题。
2024年6月29日 🚀 0.9.1: 新增了三款模型(DeepSeek-V2、DeepSeek-V2-Lite、DBRX Converted),推出了 BITBLAS 新格式/内核,对校准数据集进行了合理的批处理,使量化速度提升了 50%以上,增加了加载模型权重的安全哈希校验,进行了大量代码重构和易用性改进,修复了多个 bug,并做了许多其他工作。
2024年6月20日 ✨ 0.9.0: 感谢 ModelCloud 团队以及开源 ML 社区的所有贡献!
特别说明:
PrismAI/Bonsai 推理示例脚本。GPT-QModel 通过其原生 GGUF 加载路径和内部 GGUF 运行时适配层,加载 Prism/Bonsai 的 GGUF 检查点。无需外部 gguf PyPI 包。
• from gptqmodel import GPTQModel
model = GPTQModel.load("prism-ml/Bonsai-1.7B-gguf")
# 或:model = GPTQModel.load("prism-ml/Bonsai-1.7B-gguf", profile="low_memory")
tokens = model.generate(
"谁写了《罗密欧与朱丽叶》?",
max_new_tokens=128,
)[0]
print(model.tokenizer.decode(tokens, skip_special_tokens=True))
什么是 GPT-QModel?
GPT-QModel 是一款生产就绪的 LLM 模型压缩/量化工具包,支持通过 HF Transformers、vLLM 和 SGLang 在 CPU/GPU 上进行硬件加速推理。
目前,GPT-QModel 支持 GPTQ、AWQ、ParoQuant、QQQ、GGUF、FP8、EXL3、GPTAQ、EoRa、GAR 和 FOEM 等多种量化方法,并计划推出更多量化方法和功能增强。
量化支持
GPT-QModel 采用模块化设计,支持多种量化方法和功能扩展。
| 功能 | GPT-QModel | Transformers | vLLM | SGLang | LoRA 训练 |
|---|---|---|---|---|---|
| GPTQ | ✅ | ✅ | ✅ | ✅ | ✅ |
| AWQ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ParoQuant | ✅ | x | x | x | ✅ |
| GGUF | ✅ | x | x | x | x |
| FP8 | ✅ | x | x | x | x |
| Exllama V3 / EXL3 | ✅ | x | x | x | x |
| EoRA | ✅ | ✅ | ✅ | ✅ | x |
| Group Aware Act Reordering | ✅ | ✅ | ✅ | ✅ | ✅ |
| QQQ | ✅ | x | x | x | x |
| Rotation | ✅ | x | x | x | x |
| GPTAQ | ✅ | ✅ | ✅ | ✅ | ✅ |
| FOEM | ✅ | ✅ | ✅ | ✅ | ✅ |
GGUF、FP8、EXL3 和 ParoQuant 目前是 GPT-QModel 的原生量化/运行时路径。vLLM 和 SGLang 的集成目前主要针对 GPTQ 和 AWQ。
量化方法 / 格式 / 后端矩阵
以下列出了规范的后端名称。旧版别名,如 BACKEND.TORCH、BACKEND.MARLIN、BACKEND.GEMM 和 BACKEND.PARO 仍被接受,并会被规范化为所选量化方法对应的规范后端。
| 量化方法 | 格式 | 后端/内核 |
|---|---|---|
METHOD.GPTQ |
FORMAT.GPTQ、FORMAT.GPTQ_V2、FORMAT.MARLIN、FORMAT.BITBLAS |
FORMAT.GPTQ: BACKEND.GPTQ_TORCH_ATEN、BACKEND.GPTQ_MACHETE、BACKEND.GPTQ_MARLIN、BACKEND.GPTQ_EXLLAMA_V2、BACKEND.GPTQ_TORCH_FUSED、BACKEND.GPTQ_TRITON、BACKEND.GPTQ_BITBLAS、BACKEND.GPTQ_TORCH、BACKEND.GPTQ_TORCH_INT8FORMAT.GPTQ_V2: BACKEND.GPTQ_TORCH_ATEN、BACKEND.GPTQ_EXLLAMA_V2、BACKEND.GPTQ_TORCH_FUSED、BACKEND.GPTQ_TRITON、BACKEND.GPTQ_BITBLAS、BACKEND.GPTQ_TORCH、BACKEND.GPTQ_TORCH_INT8FORMAT.MARLIN: BACKEND.GPTQ_MARLINFORMAT.BITBLAS: BACKEND.GPTQ_BITBLAS |
METHOD.AWQ |
FORMAT.GEMM、FORMAT.GEMV、FORMAT.GEMV_FAST、FORMAT.LLM_AWQ、FORMAT.MARLIN、FORMAT.BITBLAS |
FORMAT.GEMM: BACKEND.AWQ_TORCH_ATEN、BACKEND.AWQ_MACHETE、BACKEND.AWQ_MARLIN、BACKEND.AWQ_EXLLAMA_V2、BACKEND.AWQ_GEMM、BACKEND.AWQ_GEMM_TRITON、BACKEND.AWQ_TORCH_FUSED、BACKEND.AWQ_TORCH、BACKEND.AWQ_TORCH_INT8、BACKEND.AWQ_BITBLASFORMAT.GEMV: BACKEND.AWQ_GEMVFORMAT.GEMV_FAST: BACKEND.AWQ_GEMV_FASTFORMAT.LLM_AWQ: BACKEND.AWQ_GEMV_FASTFORMAT.MARLIN: BACKEND.AWQ_MACHETE、BACKEND.AWQ_MARLINFORMAT.BITBLAS: BACKEND.AWQ_BITBLAS |
METHOD.PARO |
FORMAT.PAROQUANT |
BACKEND.PAROQUANT_CUDA、BACKEND.PAROQUANT_TRITON |
METHOD.QQQ |
FORMAT.QQQ |
BACKEND.QQQ |
METHOD.GGUF |
FORMAT.GGUF |
BACKEND.GGUF_TRITON、BACKEND.GGUF_CPP_CUDA、BACKEND.GGUF_CPP_CPU、BACKEND.GGUF_TORCH |
METHOD.FP8 |
FORMAT.FP8 |
BACKEND.FP8_TORCH |
METHOD.BITSANDBYTES |
FORMAT.BITSANDBYTES |
BACKEND.BITSANDBYTES |
METHOD.EXL3 |
FORMAT.EXL3 |
BACKEND.EXL3_EXLLAMA_V3、BACKEND.EXL3_TORCH |
BACKEND.VLLM、BACKEND.SGLANG 和 BACKEND.MLX 是外部运行时后端,不属于上述原生内核矩阵的一部分。
Marlin 使用 GPTQMODEL_MARLIN_USE_FP32(默认启用)来控制 fp32 累加。
特性
- ✨ 与 HF Transformers、Optimum 和 Peft 的原生集成
- 🚀 支持格式为
FORMAT.[GPTQ/AWQ]的量化模型的 vLLM 和 SGLang 推理集成 - ✨ 支持 GPTQ、AWQ、ParoQuant、QQQ、GGUF、FP8、EXL3、GPTAQ 和 FOEM 量化
- ✨ Prism Bonsai 的
Q1_0_g128GGUF 检查点可以通过常规的model_id_or_path参数加载,用于后量化推理。GPT-QModel 会通过其原生 GGUF 运行时在内部将 GGUF 工件规范化,以供 HF Transformers 使用,但不支持 Prism Bonsai 量化或导出。 - 🚀 即使在极端路由激活偏差的情况下,也能轻松量化 MoE 模型,只需使用
Moe.Routing和/或FailSafe即可 - 🚀 多 GPU 数据并行化可将量化速度提升 80% 以上
- 🚀 针对 Python >= 3.13t(无锁线程)进行了优化,采用无锁线程技术
- ✨ 支持 Linux、macOS 和 Windows 平台上的 CUDA(NVIDIA)、XPU(Intel)、ROCm(AMD)、MPS(Apple Silicon)以及 CPU(Intel/AMD/Apple Silicon)
- ✨ 每个模块的“动态”混合量化控制:每一层/模块都可以拥有独特的量化配置,或者完全排除量化
- 🚀 Intel Torch 2.8 融合内核支持 XPU [
Arc+Datacenter Max] 和 CPU [avx、amx] - 🚀 支持 Python 3.13.3t(无锁线程,禁用 GIL),可用于加速 MoE 模型的多 GPU 量化,以及多核 CPU 的打包加速
- ✨ 支持非对称量化 (
Sym=False) - ✨ 支持
lm_head模块的量化推理,以进一步减少 VRAM 使用 - 🚀 基于 Microsoft/BITBLAS(https://github.com/microsoft/BitBLAS)优化的分块推理
- 💯 对所有支持的模型和内核进行 CI 单元测试覆盖,包括后量化质量回归测试
谁在使用 GPT-QModel?
以下是一些公开引用,其中团队或公司明确在文档、集成说明或量化模型使用中提到了 GPT-QModel。这并非详尽的客户列表。
Hugging Face
Intel
NVIDIA
Alibaba Cloud
质量:GPTQ 4bit 可与原生 BF16 相媲美:
🤗 ModelCloud 在 HF 上量化 Vortex 模型
模型支持
| 模型 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| Apertus | ✅ | EXAONE 3/4 | ✅ | Dots1 | ✅ | Mistral3 | ✅ | Qwen 2/3/3.5 (Next/MoE) | ✅ |
| Baichuan | ✅ | Falcon (H1) | ✅ | InternLM 1/2/2.5 | ✅ | Mixtral | ✅ | Qwen 2/2.5/3 VL | ✅ |
| Bloom | ✅ | FastVLM | ✅ | Kimi K2 | ✅ | MobileLLM | ✅ | Qwen 2.5/3 Omni | ✅ |
| ChatGLM | ✅ | Gemma 1-4 | ✅ | Klear | ✅ | MOSS | ✅ | RefinedWeb | ✅ |
| CodeGen | ✅ | GPTBigCode | ✅ | LING/RING | ✅ | MPT | ✅ | StableLM | ✅ |
| Cohere 1-2 | ✅ | GPT-Neo / NeoX | ✅ | Llama 1-3.3 | ✅ | Nemotron H | ✅ | StarCoder2 | ✅ |
| DBRX Converted | ✅ | GPT-2 | ✅ | Llama 3.2 VL | ✅ | Nemotron Ultra | ✅ | TeleChat2 | ✅ |
| Deci | ✅ | GPT-J | ✅ | Llama 4 | ✅ | OPT | ✅ | Trinity | ✅ |
| DeepSeek-V2/V3/R1 | ✅ | GPT-OSS | ✅ | LongCat Flash | ✅ | OLMo2 / LLaDA2 | ✅ | Yi | ✅ |
| DeepSeek-V2-Lite | ✅ | Granite / Granite MoE | ✅ | LongLLaMA | ✅ | Ovis 1.6/2 | ✅ | Seed-OSS | ✅ |
| Dream | ✅ | GRIN-MoE | ✅ | Instella | ✅ | Phi 1-4 | ✅ | Voxtral | ✅ |
| ERNIE 4.5 / 4.5 MoE | ✅ | GLM 4/4V/5/5.1 | ✅ | GLM4 MoE / Lite | ✅ | MiniCPM 3/O/V | ✅ | PanGu-α | ✅ |
| XVERSE | ✅ | Brumby | ✅ | Hymba | ✅ | Mistral | ✅ | Qwen 1/2/3/3.5 | ✅ |
| MiniMax M2 | ✅ | AfMoE | ✅ | Bailing-MoE | ✅ | LFM2-MoE | ✅ | Marin | ✅ |
Prism Bonsai GGUF 检查点仅可通过 GPT-QModel 的原生 GGUF 路径和内部 GGUF 运行时进行推理。Bonsai 检查点通过常规模型路径或仓库参数加载,无需外部 gguf 包。Prism 模型量化不包含在内。
平台与硬件支持
GPT-QModel 已在 Linux、macOS 和 Windows 11 上验证:
| 平台 | 设备 | 优化架构 | 内核 | |
|---|---|---|---|---|
| 🐧 Linux | NVIDIA GPU | ✅ | Turing+ |
Marlin, Exllama V2, Exllama V1, Triton, Torch |
| 🐧 Linux | AMD GPU | ✅ | 7900XT+, ROCm 6.2+ |
Exllama V2, Exllama V1, Torch |
| 🐧 Linux | Intel XPU | ✅ | Arc, Datacenter Max |
TorchFused, TorchFusedAWQ, Torch |
| 🐧 Linux | Intel/AMD CPU | ✅ | avx, amx |
TorchFused, TorchFusedAWQ, Torch |
| 🍎 macOS | GPU (Metal) / CPU | ✅ | Apple Silicon, M1+ |
Torch, MLX via conversion |
| 🪟 Windows | GPU (NVIDIA) / CPU | ✅ | NVIDIA |
Torch |
Marlin 和 JIT CUDA 内核现已支持 NVIDIA Turing+(sm_75+)GPU。
安装
PIP/UV
# 您可以安装可选模块,如 autoround、ipex、vllm、sglang、bitblas。
# 示例:pip install -v gptqmodel[vllm,sglang,bitblas]
pip install -v gptqmodel
uv pip install -v gptqmodel
该软件包依赖于 ninja,用于首次使用时的 JIT 内核编译。
从源代码安装
# 克隆仓库
git clone https://github.com/ModelCloud/GPTQModel.git && cd GPTQModel
# 部分源码安装需要 python3-dev
apt install python3-dev
# 使用 pip 从源代码安装:
# 您可以安装可选模块,如 vllm、sglang、bitblas。
# 示例:pip install -v .[vllm,sglang,bitblas]
pip install -v .
推理
使用 GPT-QModel 进行 GPTQ 模型推理的三行 API:
from gptqmodel import GPTQModel
model = GPTQModel.load("ModelCloud/Llama-3.2-1B-Instruct-gptqmodel-4bit-vortex-v2.5")
result = model.generate("Uncovering deep insights begins with")[0] # tokens
print(model.tokenizer.decode(result)) # string output
若要使用 ModelScope 中的模型而非 HuggingFace Hub,请设置环境变量:
export GPTQMODEL_USE_MODELSCOPE=True
FP32 累加切换
部分 AWQ 和 ParoQuant CUDA/Triton 内核支持 fp32 累加模式,以减少融合量化矩阵乘法中的数值漂移。此设置默认为 True,因为优先考虑精度而非速度。
# 默认行为:更高精度,部分内核速度略低
export GPTQMODEL_FP32_ACCUM=1
# 部分内核可选的速度优先模式
export GPTQMODEL_FP32_ACCUM=0
注意事项:
- 这是一个运行时切换,不会改变模型权重或保存的检查点。
- 主要影响部分融合的 AWQ 和 ParoQuant CUDA/Triton 内核。密集/反量化回退路径基本不受影响。
- 建议在回归测试和对质量敏感的评估中使用
1。如果追求小幅延迟提升且可接受质量损失,则可使用0。
OpenAI API 兼容端点
# 首先按照上述推理指南加载模型
model.serve(host="0.0.0.0",port="12345")
量化
使用 GPT-QModel 对 LLM 模型进行量化的基本示例:
from datasets import load_dataset
from gptqmodel import GPTQConfig、GPTQModel
model_id = "meta-llama/Llama-3.2-1B-Instruct"
quant_path = "Llama-3.2-1B-Instruct-gptqmodel-4bit"
校准数据集由以下内容组成:
load_dataset(
"allenai/c4",
data_files="en/c4-train.00001-of-01024.json.gz",
split="train"
).select(range(1024))["text"]
量化配置为 GPTQConfig(bits=4, group_size=128)
model = GPTQModel.load(model_id, quant_config)
# 增加 `batch_size` 以匹配 GPU/VRAM 规格,从而加快量化速度
model.quantize(calibration_dataset, batch_size=1)
model.save(quant_path)
其他量化格式
QuantizeConfig 仍然是一个广泛的工厂类。具体的配置类现在包括 GPTQConfig、AWQConfig、ParoConfig、QQQConfig、RTNConfig、GGUFConfig、FP8Config、BitsAndBytesConfig 和 EXL3Config。
GPTQ、AWQ、ParoQuant 和 EXL3 是基于校准的量化方法。而 GGUF 和 FP8 则是仅权重量化的方法,应使用 calibration=None 进行量化。
预处理模块
preprocessors=[...] 在量化或重新打包之前添加可选的模块权重预处理步骤。这些预处理模块适用于 GPTQConfig、AWQConfig、ParoConfig、RTNConfig、GGUFConfig、FP8Config 和 BitsAndBytesConfig。
SmootherConfig: 在量化之前应用权重平滑。AutoModuleDecoderConfig: 将 FP8/FP4 来源模块解码为稠密的target_dtype,以便进行下游的量化或重新打包。TensorParallelPadderConfig: 选择性地添加张量并行填充元数据,用于与 TP 对齐的打包。
import torch
from gptqmodel import GGUFConfig、GPTQConfig
from gptqmodel.quantization import (
AutoModuleDecoderConfig,
SmoothMAD,
SmootherConfig,
TensorParallelPadderConfig,
)
gptq_cfg = GPTQConfig(
bits=4,
group_size=128,
preprocessors=[
SmootherConfig(smooth=SmoothMAD(k=2.0)),
AutoModuleDecoderConfig(target_dtype=torch.bfloat16),
TensorParallelPadderConfig(),
],
)
gguf_cfg = GGUFConfig(
bits=4,
format="q_k_m",
preprocessors=[
AutoModuleDecoderConfig(target_dtype=torch.bfloat16),
TensorParallelPadderConfig(),
],
)
GGUF 示例:Llama 3.2 1B 指令版
from gptqmodel import BACKEND、GGUFConfig、GPTQModel
model_id = "meta-llama/Llama-3.2-1B-Instruct"
quant_path = "Llama-3.2-1B-Instruct-GGUF-Q4_K_M"
qcfg = GGUFConfig(
bits=4,
format="q_k_m",
)
model = GPTQModel.load(model_id, qcfg)
model.quantize(calibration=None, backend=BACKEND.GGUF_TORCH)
model.save(quant_path)
FP8 示例:Llama 3.2 1B 指令版
from gptqmodel import BACKEND、FP8Config、GPTQModel
model_id = "meta-llama/Llama-3.2-1B-Instruct"
quant_path = "Llama-3.2-1B-Instruct-FP8-E4M3"
qcfg = FP8Config(
format="float8_e4m3fn", # 或 "float8_e5m2"
bits=8,
weight_scale_method="row",
)
model = GPTQModel.load(model_id, qcfg)
model.quantize(calibration=None, backend=BACKEND.GPTQ_TORCH)
model.save(quant_path)
Exllama V3 / EXL3 示例:Llama 3.2 1B 指令版
from datasets import load_dataset
from gptqmodel import BACKEND、EXL3Config、GPTQModel
model_id = "meta-llama/Llama-3.2-1B-Instruct"
quant_path = "Llama-3.2-1B-Instruct-EXL3"
calibration_dataset = load_dataset(
"allenai/c4",
data_files="en/c4-train.00001-of-01024.json.gz",
split="train",
).select(range(1024))["text"]
qcfg = EXL3Config(
bits=4.0, # 目标平均每位权重的比特数
head_bits=6.0, # 可选的更高比特率,用于注意力头和敏感张量
codebook="mcg", # 可选值:mcg、mul1、3inst
)
model = GPTQModel.load(model_id, qcfg)
model.quantize(calibration_dataset, batch_size=1, backend=BACKEND.EXL3_EXLLAMA_V3)
model.save(quant_path)
MoE 量化
一些 MoE(专家混合模型)在将输入路由到各个专家时存在极大的不均衡或偏差,导致某些专家模块几乎接收不到激活的输入,从而无法完成基于校准的量化(GPTQ/AWQ)。为了更好地量化这些严重偏向的 MoE 路由模块,GPT-QModel 提供了三种控制手段:
Moe.Routing = ExpertsRoutingOverride: 手动覆盖用于模型路由计算的num_experts_per_tok参数。例如,如果模型每条输入只路由到 48 个专家中的 4 个,你可以将其设置为 24,实现 50% 的路由比例;或者设置为 48,实现 100% 的路由比例。ExpertsRoutingOverride要求模型公开num_experts_per_tok或等效的配置控制参数。Moe.Routing = ExpertsRoutingBypass: 强制绕过所有路由计算,使所有专家都能接收到全部激活的输入。这相当于将ExpertsRoutingOverride.num_experts_per_tok设置为专家总数。ExpertsRoutingBypass已在部分模型上启用并测试过,但由于其生命周期复杂性,需要针对每个模型单独验证。FailSafe: 默认启用,是一种简单的仅权重量化技术,采用如“最邻近”等基础量化方法,并可选配平滑处理。 此功能有多种FailSafeStrategy和SmoothMethod选项可供选择。FailSafe不需要激活数据,但其量化误差通常比正常激活下的 GPTQ/AWQ 更大。它速度快,适用于所有 MoE 模型。
FailSafe 可以与 ExpertsRoutingOverride 结合使用。目前并没有一种万能的 MoE 量化方法,我们建议用户尝试这三种方式。
量化后的推理
# 测试量化后的推理
model = GPTQModel.load(quant_path)
result = model.generate("揭示深刻见解始于")[0] # tokens
print(model.tokenizer.decode(result)) # 字符串输出
EoRA 精度恢复:通过 LoRA 实现增强的后量化误差恢复
GPT-QModel 支持 EoRA,这是一种由 Nvidia 开发的 LoRA 方法,可以进一步提升量化模型的精度。
# EoRa 目前仅对 GPTQ 有效
# 更高的秩可以提高精度,但会增加 VRAM 的消耗
# 建议先尝试秩 64 和 32,再考虑 128 或 256,因为后者可能会导致过拟合并增加内存占用
eora = Lora(
# 生成 EoRa 时,路径为适配器保存路径;加载时,则为加载路径
path=f"{quant_path}/eora_rank32",
rank=32,
)
# 提供一个已用 GPTQ 量化过的模型路径
GPTQModel.adapter.generate(
adapter=eora,
model_id_or_path=model_id,
quantized_model_id_or_path=quant_path,
calibration_dataset=calibration_dataset,
calibration_dataset_concat_size=0,
)
# EoRa 后的推理
model = GPTQModel.load(
model_id_or_path=quant_path,
adapter=eora
)
tokens = model.generate("法国的首都是")[0]
result = model.tokenizer.decode(tokens)
print(f"结果:{result}")
# 关于 EoRA 的更多详情,请参阅 docs/eora/
# 请使用本 README 后面的基准测试工具来评估 EoRA 的效果
如何为新模型添加支持
请阅读 gptqmodel/models/llama.py 文件中的代码,其中通过注释详细说明了如何定义模型支持。可以以此为参考,提交 PR 来添加新模型的支持。大多数模型都遵循类似的模式。
与 Evaluation 配合使用,用于量化后 LLM 基准测试
GPT-QModel 的评估已集成到 Evalution 中,这是一款现代化的基准测试工具包,包含全球最广泛使用的 150 多个基准测试套件。 我们强烈建议使用 Evalution 来衡量量化后的精度恢复情况,而不是仅依赖于狭义的语言模型回归指标。
# 安装 Evalution
pip install Evalution
以下是一个简短示例,通过 Evalution 的原生 GPT-QModel 引擎运行 gsm8k_platinum 测试。
import evalution as eval
run = (
eval.GPTQModel(
backend="marlin",
device="cuda:0",
)
.model(eval.Model(path="ModelCloud/Llama-3.2-1B-Instruct-gptqmodel-4bit-vortex-v1"))
.run(eval.benchmarks.gsm8k_platinum(apply_chat_template=True, batch_size=16))
)
print(run.to_dict()["tests"][0]["metrics"])
动态量化(按模块覆盖 QuantizeConfig)
QuantizeConfig.dynamic 是一种动态控制机制,允许跳过特定匹配模块的量化(负匹配),或者为每个匹配模块单独指定独特的 [bits, group_size, sym, desc_act, mse, pack_dtype] 属性设置,以覆盖基础的 QuantizeConfig(正匹配并覆盖)。
QuantizeConfig.dynamic 的使用示例:
dynamic = {
# `.*\.` 匹配 layers_node 前缀
# 层索引从 0 开始
# 正匹配:第 19 层,gate 模块
r"+:.*\.18\..*gate.*": {"bits": 4, "group_size": 32},
# 正匹配:第 20 层,gate 模块(前缀缺失时默认为正匹配)
r".*\.19\..*gate.*": {"bits": 8, "group_size": 64},
# 负匹配:跳过第 21 层,gate 模块
r"-:.*\.20\..*gate.*": {},
# 负匹配:跳过所有层的 down 模块
r"-:.*down.*": {},
}
分组感知重排(GAR)
分组感知重排(GAR)是由 Intel 开发的一种增强型激活重排方案,旨在提高量化模型的准确性,同时不增加额外的推理开销。与传统的激活重排不同,GAR 将排列限制在单个组内,或仅对整个组进行重新排列。这样可以确保每个组相关的缩放因子和零点在推理过程中仍能高效访问,从而避免任何推理时间上的额外开销。
如何启用 GAR:
将 act_group_aware 参数设置为 True,并禁用默认的激活重排,即将 desc_act 设置为 False。例如:
quant_config = QuantizeConfig(bits=4, group_size=128, act_group_aware=True)
实验性功能
使用 GPTAQ(实验性,不兼容 MoE,结果可能不如原版)
通过设置 gptaq = GPTAQConfig(...) 启用 GPTAQ 量化。
# 注意,GPTAQ 目前处于实验阶段,不兼容 MoE,且执行时需要 2–4 倍的显存。
# 我们收到许多反馈称 GPTAQ 的效果并不优于 GPTQ,因此请仅用于测试。
# 如果在单 GPU 上出现 OOM,请设置 CUDA_VISIBLE_DEVICES=0,1 以使用两块 GPU,gptqmodel 会自动使用第二块 GPU。
quant_config = QuantizeConfig(bits=4, group_size=128, gptaq=GPTAQConfig(alpha=0.25, device="auto"))
使用 FOEM
FOEM(一阶误差补偿)为 GPTQ 风格的量化添加了一阶误差补偿。通过设置 foem = FOEMConfig(...) 启用 FOEM。
# FOEM 的默认超参数为 alpha=0.0 和 beta=0.2
quant_config = QuantizeConfig(bits=4, group_size=128, foem=FOEMConfig(alpha=0.0, beta=0.2, device="auto"))
从 AutoGPTQ 和 AutoAWQ 迁移:
GPT-QModel 已完全取代 AutoGPTQ 和 AutoAWQ,用于 HF Transformers/Optimum/Peft 的集成。模型推理支持无缝替换,无需任何更改。
对于模型量化,AutoAWQ 的配置有一些变化:
- AutoAWQ:
version属性现改为format。zero_point现改为sym(对称量化):sym = True等价于zero_point = False。
由 GPT-QModel 量化后的模型与 HF Transformers(除 dynamic 外)、vLLM 和 SGLang 兼容。
致谢:
- GPTQ:IST-DASLab,主要作者:Elias Frantar,arXiv:2210.17323
- AWQ:主要作者:Lin、Ji、Tang Jiaming、Tang Haotian、Yang Shang、Dang Xingyu 和 Han Song
- ParoQuant:Z-Lab,主要作者:Yesheng Liang、Haisheng Chen、Song Han 和 Zhijian Liu。官方实现,论文
- EoRA:Nvidia,主要作者:Shih-Yang Liu,arXiv 预印本 arXiv:2410.21271。
- GAR:Intel,主要作者:T Gafni、A Karnieli、Y Hanani,论文
- GPTAQ:耶鲁智能计算实验室,主要作者:Yuhang Li,arXiv:2504.02692。
- QQQ:美团,主要作者 Ying Zhang,arXiv:2406.09904
- FOEM:Zheng、Xingyu、Qin、Haotong、Li、Yuye、Chu、Haoran、Wang、Jiakai、Guo、Jinyang、Magno 和 Liu、Xianglong 论文
引用:
# GPT-QModel
@misc{qubitium2024gptqmodel,
author = {ModelCloud.ai 和 qubitium@modelcloud.ai},
title = {GPT-QModel},
publisher = {GitHub},
journal = {GitHub 仓库},
howpublished = {\url{https://github.com/modelcloud/gptqmodel}},
note = {联系人:qubitium@modelcloud.ai},
year = {2024},
}
# GPTQ
@article{frantar-gptq,
title={{GPTQ}: 生成式预训练 Transformer 的精确训练后压缩},
author={Elias Frantar、Saleh Ashkboos、Torsten Hoefler 和 Dan Alistarh},
journal={arXiv 预印本 arXiv:2210.17323},
year={2022}
}
# AWQ
@article{lin2023awq,
title={AWQ:面向 LLM 压缩与加速的激活感知权重量化},
author={Lin、Ji、Tang Jiaming、Tang Haotian、Yang Shang、Dang Xingyu 和 Han Song},
journal={arXiv},
year={2023}
}
# ParoQuant
@inproceedings{liang2026paroquant,
title = {{ParoQuant:用于高效推理的 LLM 推理中的成对旋转量化}},
author = {Liang、Yesheng、Chen、Haisheng、Han、Song 和 Liu、Zhijian},
booktitle = {国际学习表征会议(ICLR)},
year = {2026}
}
# GGUF / llama.cpp
@misc{ggerganov2023gguf,
author = {Georgi Gerganov 和 ggml-org 的贡献者},
title = {llama.cpp 和 GGUF 模型格式},
publisher = {GitHub},
journal = {GitHub 仓库},
howpublished = {\url{https://github.com/ggml-org/llama.cpp}},
note = {GGUF 的标准实现和格式参考;更多信息请参阅 \url{https://github.com/ggml-org/llama.cpp/wiki/dev-notes}},
year = {2023}
}
# EoRA
@article{liu2024eora,
title={EoRA: 基于特征空间低秩近似的无训练压缩大模型补偿方法},
author={刘世扬、杨 Huck、王建义、冯乃志、殷洪旭、萨克尔·沙贝尔、穆拉利达兰·索拉夫、程光廷、考茨·扬、王宇昌以及其他作者},
journal={arXiv 预印本 arXiv:2410.21271},
year={2024}
}
# GPTAQ
@article{li2025gptaq,
title={GPTAQ:用于非对称校准的高效无微调量化方法},
author={李宇航、尹若凯、李东贤、肖诗婷、普里亚达尔希尼·潘达},
journal={arXiv 预印本 arXiv:2504.02692},
year={2025}
}
# FOEM
@inproceedings{zheng2026first,
title={一阶误差至关重要:量化大语言模型的精确补偿},
author={郑星宇、秦浩彤、李雨烨、褚浩然、王嘉凯、郭金阳、马格诺·米凯莱、刘祥龙},
booktitle={AAAI 人工智能会议论文集},
volume={40},
number={34},
pages={28883--28891},
year={2026}
}
# QQQ
@article{zhang2024qqq,
title={QQQ:面向大语言模型的四比特高质量量化},
author={张颖、张鹏、黄敏聪、向景阳、王宇杰、王超、张艺能、于雷、刘川、林伟},
journal={arXiv 预印本 arXiv:2406.09904},
year={2024}
}
# ExLlama V3 / EXL3
@misc{turboderp2026exllamav3,
author = {turboderp 及 exllamav3 贡献者},
title = {ExLlamaV3 与 EXL3 量化格式},
publisher = {GitHub},
journal = {GitHub 仓库},
howpublished = {\url{https://github.com/turboderp-org/exllamav3}},
note = {项目仓库及 EXL3 格式文档:\url{https://github.com/turboderp-org/exllamav3/blob/master/doc/exl3.md}},
year = {2026}
}
# 群组感知重排序 (GAR)
@article{gar,
title={用于高效且准确的深度神经网络推理的双精度量化,CVPRW 2025。},
author={T. 加夫尼、A. 卡尔涅利、Y. 哈纳尼},
journal={arXiv 预印本 arXiv:2505.14638},
year={2025}
}
# Marlin 内核
@article{frantar2024marlin,
title={MARLIN:大语言模型上的混合精度自回归并行推理},
author={弗兰塔尔、埃利亚斯;卡斯特罗、罗伯托·L;陈佳乐;霍夫勒、托斯滕;阿利斯塔赫、丹},
journal={arXiv 预印本 arXiv:2408.11743},
year={2024}
}
快速提示
设置日志级别
GPT-QModel 使用共享的 LogBar 日志记录器。请在进程启动时设置一次日志级别:
from logbar import LogBar
LogBar.shared().setLevel("WARNING") # DEBUG、INFO、WARNING、ERROR、CRITICAL
在多包脚本中尽早应用 Triton nogil 补丁
如果您的脚本同时导入了多个使用 Triton 的库(例如 gptqmodel、vllm 和 sglang),请务必在其他任何与 Triton 相关的导入之前,在脚本的最顶部应用该补丁:
from gptqmodel import TritonPatch
# 修复在启用 nogil/自由线程模式的 Python 3.13+ 中,Triton 内核缓存存储不线程安全导致的崩溃问题
TritonPatch.apply()
版本历史
v6.0.32026/04/02v5.8.02026/03/19v5.7.02026/02/10v5.6.122025/12/17v5.6.102025/12/16v5.6.82025/12/16v5.6.62025/12/15v5.6.42025/12/15v5.6.22025/12/12v5.6.02025/12/09v5.4.22025/11/15v5.4.02025/11/09v5.2.02025/11/02v5.0.02025/10/24v4.2.52025/09/16v4.2.02025/09/12v4.1.02025/09/04v4.0.02025/08/22v3.0.02025/04/14v2.2.02025/04/03常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
