英特尔开源的 Python 模型压缩库,通过量化、稀疏化和蒸馏压缩深度学习模型。
microsoft/TransformerCompression
SliceGPT 是一种训练后压缩方法,通过裁剪权重矩阵的行和列来缩小 Transformer 模型(包括大语言模型)。
- Star
- 466
- Fork
- 59
- 未关闭 Issue
- 27
- 最近提交
- 2个月前
这是什么?
SliceGPT 是一种训练后的稀疏化压缩方法,适用于 Transformer 网络,包括大语言模型。它先对每一层施加正交变换,模型输出保持不变,然后依据特征值衰减,裁掉权重矩阵中最不重要的行和列。模型结构保持不变,但嵌入维度被缩小,因此在不做额外代码优化的情况下即可获得加速,并降低显存占用。
仓库中包含 `slicegpt` Python 包,以及复现 ICLR'24 论文实验的脚本,涵盖模型切片、基于 LoRA 的恢复微调,以及使用 LM Eval Harness 进行评估。当前支持 Phi-2、Phi-3-mini、多个 Llama-2 和 Llama-3 版本,以及参数量从 125M 到 66B 的 OPT 模型。
若要支持新的模型架构,需要实现模型适配器和层适配器,并更新 Hugging Face 模型加载工具。
核心功能
- 01训练后压缩,通过裁剪权重矩阵缩小嵌入维度。
- 02切片前对每层施加正交变换,保持模型功能不变。
- 03生成更小的稠密权重矩阵,无需自定义算子即可获得加速。
- 04支持基于 LoRA 的恢复微调,并可用贝叶斯优化搜索超参数。
- 05集成 LM Eval Harness 进行评估。
- 06提供适配器接口,便于接入新的 Hugging Face Transformer 架构。
适用场景
- 降低 Phi-2 或 Llama 等模型的显存占用,便于在显存有限的 GPU 上部署。
- 研究大语言模型的训练后压缩方法,复现 SliceGPT 论文结果。
- 通过适配器为新的 Transformer 架构增加 SliceGPT 支持。
快速上手
- 1
安装带实验依赖的 slicegpt 包
pip install -e .[experiment] - 2
在 experiments 目录中,使用 SliceGPT 压缩 microsoft/phi-2 模型
python run_slicegpt.py --model microsoft/phi-2 --save-dir dir/to/save/sliced_model/in --sparsity 0.25 --device cuda:0 --eval-baseline --no-wandb
使用前须知
- 仅支持 README 中列出的 Hugging Face 模型,其他模型需要编写新的适配器。
- 部分模型需要通过 --hf-token 参数或 HF_TOKEN 环境变量进行 Hugging Face 身份验证。
标签
常见问题
- TransformerCompression 是什么?
- SliceGPT 是一种训练后压缩方法,通过裁剪权重矩阵的行和列来缩小 Transformer 模型(包括大语言模型)。 SliceGPT 是一种训练后的稀疏化压缩方法,适用于 Transformer 网络,包括大语言模型。它先对每一层施加正交变换,模型输出保持不变,然后依据特征值衰减,裁掉权重矩阵中最不重要的行和列。模型结构保持不变,但嵌入维度被缩小,因此在不做额外代码优化的情况下即可获得加速,并降低显存占用。
- TransformerCompression 可以免费使用吗?用的什么许可证?
- TransformerCompression 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- TransformerCompression 还在维护吗?
- 半年内有更新。TransformerCompression 最近一次提交是在 2026年9月10日。
- TransformerCompression 适合用来做什么?
- 降低 Phi-2 或 Llama 等模型的显存占用,便于在显存有限的 GPU 上部署。 研究大语言模型的训练后压缩方法,复现 SliceGPT 论文结果。 通过适配器为新的 Transformer 架构增加 SliceGPT 支持。
- TransformerCompression 怎么安装和运行?
- 安装带实验依赖的 slicegpt 包: pip install -e .[experiment] 在 experiments 目录中,使用 SliceGPT 压缩 microsoft/phi-2 模型: python run_slicegpt.py --model microsoft/phi-2 --save-dir dir/to/save/sliced_model/in --sparsity 0.25 --device cuda:0 --eval-baseline --no-wandb
- 在哪里获取 TransformerCompression?
- 源代码和安装说明在 GitHub 上:https://github.com/microsoft/TransformerCompression
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Hugging Face Optimum 的 PyTorch 量化后端,可将模型权重和激活量化到 int2 至 float8。
用于合并预训练大语言模型的工具包,支持多种合并算法,可在 CPU 或 GPU 上运行。
基于 PyTorch DTensor 的训练库,可直接加载 Hugging Face 模型进行 LLM、VLM 等的微调与预训练。
英伟达开源的模型优化库,通过量化、剪枝、蒸馏等技术压缩模型,加速推理部署。
一本从零开始讲解并动手实现大语言模型的中文开源教程,涵盖 Transformer、预训练、微调、RAG 与 Agent。