Skip to content

Latest commit

 

History

History
290 lines (173 loc) · 14.7 KB

README_zh.md

File metadata and controls

290 lines (173 loc) · 14.7 KB

LLMC: 准确高效的LLM压缩工具

llmc

License arXiv GitHub Stars visitors Discord Banner QQ Doc Doc

[ English | 中文 | 日本語 ]

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模型以及✨Qwen2VLLlama3.2VLM模型的量化。支持的量化方案包括✅整型量化、✅浮点量化,以及✅AWQ、✅GPTQ、✅SmoothQuant 和 ✅Quarot 等先进算法。

  • 2024年11月12日: 🔥 我们新增对各种模型和算法的💥激活静态 per-tensor量化支持,涵盖✅整型量化和✅浮点量化,进一步优化性能和效率。同时支持导出✨真实量化模型,并使用 VLLMSGLang后端进行推理加速,具体请参阅VLLM文档SGLang文档

  • 2024年9月26日: 🔥 我们现在支持从🚀 LLMC导出💥 FP8 量化(E4M3,E5M2)模型到一些先进的推理后端,例如VLLMSGLang。关于详细使用方法,请参阅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日: 🔥我们支持许多小型语言模型,包括当前SOTA的 SmolLM(参见支持的模型列表)。

  • 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日: 🍺🍺🍺 我们发布了量化基准论文:

    LLM-QBench: A Benchmark Towards the Best Practice for Post-training Quantization of Large Language Models

    Ruihao Gong*, Yang Yong*, Shiqiao Gu*, Yushi Huang*, Yunchen Zhang, Xianglong Liu📧, Dacheng Tao

    (* 表示同等贡献,📧 表示通讯作者。)

    comp

    我们模块化且公平地基准测试了量化技术,考虑了校准成本、推理效率和量化准确性。在多种模型和数据集上进行了近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

StarCoder

OPT

Falcon

InternLM2

Mistral

LLaMA V3

Mixtral

Qwen V2

LLaVA

InternLM2.5

StableLM

Gemma2

Phi2

Phi 1.5

MiniCPM

SmolLM

DeepSeekv2.5

LLaMA V3.2 Vision

Qwen MOE

Qwen2-VL

InternVL2

你可以参考 llmc/models/*.py 文件添加自己的模型类型。

支持的后端列表

VLLM

LightLLM

Sglang

MLC-LLM

AutoAWQ

支持的算法列表

量化

✅ Naive

AWQ

GPTQ

SmoothQuant

OS+

OmniQuant

NormTweaking

AdaDim

QUIK

SpQR

DGQ

OWQ

LLM.int8()

HQQ

QuaRot

SpinQuant (见此分支)

TesseraQ

剪枝

✅ Naive(Magnitude)

Wanda

ShortGPT

鸣谢

我们的代码参考了以下仓库:

Star 历史

Star History Chart

引用

引用

如果您认为我们的 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},
}