LLMC 是一个开箱即用的工具,专为压缩LLM设计,利用最先进的压缩算法提高效率并减少模型体积,同时不影响预测精度。
英文文档在此处。
中文文档在此处。
Docker hub在此处。
阿里云docker: registry.cn-hangzhou.aliyuncs.com/yongyang/llmcompression:[tag]
你可以通过以下命令下载可以运行llmc的docker镜像,中国大陆用户推荐使用阿里云docker。
docker hub
docker pull llmcompression/llmc:pure-latest
阿里云docker
docker pull registry.cn-hangzhou.aliyuncs.com/yongyang/llmcompression:pure-latest
社区:
-
2024年11月20日: 🔥 我们现已全面支持✨
DeepSeekv2(2.5)
等MOE
模型以及✨Qwen2VL
、Llama3.2
等VLM
模型的量化。支持的量化方案包括✅整型量化、✅浮点量化,以及✅AWQ、✅GPTQ、✅SmoothQuant 和 ✅Quarot 等先进算法。 -
2024年11月12日: 🔥 我们新增对各种模型和算法的💥
激活静态 per-tensor量化
支持,涵盖✅整型量化和✅浮点量化,进一步优化性能和效率。同时支持导出✨真实量化模型
,并使用 VLLM和SGLang后端进行推理加速,具体请参阅VLLM文档和SGLang文档。 -
2024年9月26日: 🔥 我们现在支持从🚀
LLMC
导出💥FP8 量化(E4M3,E5M2)
模型到一些先进的推理后端,例如VLLM和SGLang。关于详细使用方法,请参阅VLLM文档和SGLang文档。 -
2024年9月24日: 🔥 我们正式发布了 ✨
Llama-3.1-405B
的 ✅INT4 和 ✅INT8 模型,这些模型通过 🚀LLMC
使用save_lightllm
模式进行量化。你可以在此处下载模型参数。 -
2024年9月23日: 🔥 我们现在支持从 🚀
LLMC
导出 ✨真正量化的(INT4, INT8)
模型到先进推理后端,例如 VLLM, SGLang, AutoAWQ, 和 MLC-LLM 用于量化推理部署,从而实现 ✨减少内存使用
和 ✨加快推理速度
。 详细使用方法,请参考 VLLM 文档、SGLang 文档、AutoAWQ 文档 和 MLC-LLM 文档。 -
2024年9月9日: 🔥 我们提供了一些最佳实践配置,帮助提升性能(参见最佳实践此处)。
-
2024年9月3日: 🔥 我们支持通过opencompass 评估 🚀
LLMC
模型。请参考此文档试用! -
2024年8月22日: 🔥此外,我们还支持通过我们修改的 lm-evaluation-harness 进行下游任务评估 🤗。具体操作,用户可以先采用
save_trans
模式(参见 配置 中的save
部分)保存权重修改后的模型。在获得转换模型后,可以直接参考 run_lm_eval.sh 对量化模型进行评估。更多细节请见此处。 -
2024年7月23日: 🍺🍺🍺 我们发布了全新的基准论文:
LLMC: Benchmarking Large Language Model Quantization with a Versatile Compression Toolkit。
Ruihao Gong*, Yang Yong*, Shiqiao Gu*, Yushi Huang*, Chengtao Lv, Yunchen Zhang, Xianglong Liu📧, Dacheng Tao
(* 表示同等贡献,📧 表示通讯作者。)
历史消息
-
2024年7月16日: 🔥我们现在支持 Wanda/Naive(幅度)进行 LLM 稀疏化和逐层混合比特量化!
-
2024年7月14日: 🔥我们现在支持基于旋转的量化 QuaRot!
-
2024年5月17日: 🚀 我们现在支持一些先进的大型模型,例如 LLaVA、Mixtral、LLaMA V3 和 Qwen V2。快来试试吧!
-
2024年5月13日: 🍺🍺🍺 我们发布了量化基准论文:
Ruihao Gong*, Yang Yong*, Shiqiao Gu*, Yushi Huang*, Yunchen Zhang, Xianglong Liu📧, Dacheng Tao
(* 表示同等贡献,📧 表示通讯作者。)
我们模块化且公平地基准测试了量化技术,考虑了校准成本、推理效率和量化准确性。在多种模型和数据集上进行了近600次实验,得出了三个关于校准数据、算法管道和量化配置选择的有见地的结论。基于这些结论,设计了一种LLM后训练量化管道的最佳实践,以在各种场景下实现最佳的准确性和效率平衡。
-
2024年3月7日: 🚀 我们发布了一个功能强大且高效的LLM压缩工具的量化部分。值得注意的是,我们的基准论文即将发布😊。
-
💥综合算法支持: 提供广泛的 ✨
SOTA压缩算法
支持,包括 ✅量化、✅混合精度量化 和 ✅稀疏化,同时保持与原始仓库一致的精度。我们还提供 ✨量化最佳实践
(参见✨最佳实践
章节此处),确保最佳性能和效率。 -
💥支持的格式: 支持 ✨
量化
(整型和浮点)和 ✨稀疏化
,具体包括 ✅权重激活量化、✅权重量化、✅混合精度量化,以及 ✅结构化 和 ✅非结构化稀疏化。 -
💥广泛模型支持: 支持多种 ✨
LLM模型
,包括 ✅LLama、✅Mistral、✅InternLM2、✅Qwen2 等,以及 ✅MOE(DeepSeekv2, Deepseekv2.5) 和 ✅VLM(Llama3.2-vision, Qwen2-vl) 模型(参见支持的模型列表)。 -
💥多后端兼容性: 无缝集成多个后端,增强部署灵活性。多种量化设置和模型格式兼容广泛的后端和硬件平台,例如 ✅VLLM、✅Sglang、✅LightLLM、✅MLC-LLM 和 ✅AutoAWQ,使其高度灵活(参见✨
推理后端
章节 此处)。 -
💥性能效率: 支持大规模LLM的量化,例如 ✨
Llama3.1-405B
和 ✨DeepSeekV2-236B
,并可在单个 A100/H100/H800 GPU
上评估 PPL。
请参阅 🚀快速入门
章节此处。
✅ BLOOM
✅ LLaMA
✅ LLaMA V2
✅ OPT
✅ Falcon
✅ Mistral
✅ LLaMA V3
✅ Mixtral
✅ Qwen V2
✅ LLaVA
✅ StableLM
✅ Gemma2
✅ Phi2
✅ Phi 1.5
✅ MiniCPM
✅ SmolLM
✅ Qwen MOE
✅ Qwen2-VL
你可以参考 llmc/models/*.py
文件添加自己的模型类型。
✅ VLLM
✅ LightLLM
✅ Sglang
✅ MLC-LLM
✅ AutoAWQ
✅ Naive
✅ AWQ
✅ GPTQ
✅ OS+
✅ AdaDim
✅ QUIK
✅ SpQR
✅ DGQ
✅ OWQ
✅ HQQ
✅ QuaRot
✅ TesseraQ
✅ Naive(Magnitude)
✅ Wanda
✅ ShortGPT
我们的代码参考了以下仓库:
- https://github.com/mit-han-lab/llm-awq
- https://github.com/mit-han-lab/smoothquant
- https://github.com/OpenGVLab/OmniQuant
- https://github.com/IST-DASLab/gptq
- https://github.com/ModelTC/Outlier_Suppression_Plus
- https://github.com/IST-DASLab/QUIK
- https://github.com/Vahe1994/SpQR
- https://github.com/ilur98/DGQ
- https://github.com/xvyaward/owq
- https://github.com/TimDettmers/bitsandbytes
- https://github.com/mobiusml/hqq
- https://github.com/spcl/QuaRot
- https://github.com/locuslab/wanda
- https://github.com/EleutherAI/lm-evaluation-harness
- https://github.com/facebookresearch/SpinQuant
- https://github.com/Intelligent-Computing-Lab-Yale/TesseraQ
如果您认为我们的 LLM-QBench 论文/llmc 工具对您的研究有用或相关,请务必引用我们的论文:
@misc{llmc,
author = {llmc contributors},
title = {llmc: Towards Accurate and Efficient LLM Compression},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/ModelTC/llmc}},
}
@misc{gong2024llmqbench,
title={LLM-QBench: A Benchmark Towards the Best Practice for Post-training Quantization of Large Language Models},
author={Ruihao Gong and Yang Yong and Shiqiao Gu and Yushi Huang and Yunchen Zhang and Xianglong Liu and Dacheng Tao},
year={2024},
eprint={2405.06001},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
@misc{gong2024llmcbenchmarkinglargelanguage,
title={LLMC: Benchmarking Large Language Model Quantization with a Versatile Compression Toolkit},
author={Ruihao Gong and Yang Yong and Shiqiao Gu and Yushi Huang and Chentao Lv and Yunchen Zhang and Xianglong Liu and Dacheng Tao},
year={2024},
eprint={2405.06001},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2405.06001},
}