🚀 ACIP应用于meta - llama/Llama - 3.1 - 8B
本模型仓库是ACIP项目的一部分,提供了meta-llama/Llama-3.1-8B
的可压缩版本。如需更多详情,请访问我们的代码仓库。
🚀 快速开始
只需通过from_pretrained
加载ACIP模型:
from transformers import AutoModel
model = AutoModel.from_pretrained("MerantixMomentum/acip_llama31_8b", trust_remote_code=True)
这将下载并创建一个完全参数化的ACIP模型,你可以将其修剪到任何你想要的压缩率。
例如:
model.prune_model_by_score(size_ratio=0.4)
这将把model
修剪到其原始参数数量的40%,即60%的压缩率。
ACIP的一个独特功能是,这个操作是可逆的,你可以根据需要多次重新运行model.prune_model_by_score
,以在不同大小下评估你的模型。最后,你可以“确定”某个比率并运行:
model.compress()
这将丢弃可压缩线性层的所有修剪掩码值。
现在模型实际上已经被压缩,你应该会观察到内存使用量显著减少(如果不重新加载ACIP模型,此步骤不可逆)。
如果你愿意,你还可以运行:
model.quantize()
以节省更多内存(我们仅使用bitsandbytes
测试了4位量化,但你也可以自定义此操作)。
🚀 就是这样!现在你可以像使用🤗 transformers中的任何其他因果语言模型一样,将压缩后的模型用于推理或微调。
⚠️ 重要提示
参数size_ratio
的范围是从1.0到0.0,表示压缩后模型的大小。例如,0.4表示模型仅具有原始参数数量的40%,而1.0表示完全不压缩。或者,你也可以在prune_model_by_score
中设置compression_rate
,这相当于size_ratio = 1.0 - compression_rate
。
📦 安装指南
要从我们的中心运行ACIP模型,你只需要最少的依赖项,即torch
、transformers
、peft
,如果你想对模型进行量化,还可以选择安装bitsandbytes
。
有关可通过pip安装的依赖项及其确切版本,请参阅requirements.txt(较新的版本应该也可以正常工作)。
📄 许可证
本模型根据llama3.1许可证发布。
📚 详细文档
引用
在使用或引用此模型时,请引用我们的论文:
@article{mxm2025acip,
title={Choose Your Model Size: Any Compression by a Single Gradient Descent},
author={M. Genzel, P. Putzky, P. Zhao, S. Schulze, M. Mollenhauer, R. Seidel, S. Dietzel, T. Wollmann},
year={2025},
journal={Preprint arXiv:2502.01717}
}
模型信息
属性 |
详情 |
许可证 |
llama3.1 |
数据集 |
['allenai/c4'] |
支持语言 |
['en', 'de', 'fr', 'it', 'pt', 'hi', 'es', 'th'] |
评估指标 |
['perplexity', 'accuracy'] |
标签 |
['acip', 'pytorch'] |
基础模型 |
meta-llama/Llama-3.1-8B |
任务类型 |
文本生成 |
库名称 |
transformers |