LLMC は、大規模言語モデル(LLM)の圧縮を目的とした、最新の圧縮アルゴリズムを活用して、パフォーマンスを損なうことなく効率を向上させ、モデルサイズを削減するためのツールです。
英語のドキュメントはこちら。
中国語のドキュメントはこちら。
Docker Hubはこちら。
aliyun 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日: 🔥私たちは現在の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日: 🔥私たちはLLMの疎化のためのWanda/Naive(マグニチュード)および層ごとの混合ビット量子化のサポートを追加しました!
-
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件近い実験を行い、校正データ、アルゴリズムパイプライン、および量子化構成の選択に関する3つの洞察を得ました。これらの洞察に基づいて、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 など、幅広いバックエンドおよびハードウェアプラットフォームと互換性があり、高い柔軟性を実現しています(
Backend
セクションはこちらをご覧ください)。 -
💥パフォーマンス効率: ✨
Llama3.1-405B
や ✨DeepSeekV2-236B
などの大規模LLMの量子化をサポートし、単一の A100/H100/H800 GPU
でPPL評価を可能にします。
使用ガイドは 🚀Quick Start
セクションこちらをご覧ください。
✅ 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(マグニチュード)
✅ 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},
}