AutoRound 开源项目使用教程
1. 项目介绍
AutoRound 是一个先进的量化算法,专为低比特大型语言模型(LLM)推理设计。它适用于广泛的模型,采用符号梯度下降法来微调权重舍入值和最小-最大值,仅需200步即可完成,且不引入任何额外的推理开销。AutoRound 在保持低调优成本的同时,显著提升了模型的性能。
2. 项目快速启动
安装
从源代码安装
pip install -vvv --no-build-isolation -e .
从 PyPI 安装
pip install auto-round
模型量化
以下是一个简单的模型量化示例:
from transformers import AutoModelForCausalLM, AutoTokenizer
from auto_round import AutoRound
model_name = "facebook/opt-125m"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
bits, group_size, sym = 4, 128, False
autoround = AutoRound(model, tokenizer, bits=bits, group_size=group_size, sym=sym)
autoround.quantize()
output_dir = "/tmp_autoround"
autoround.save_quantized(output_dir)
3. 应用案例和最佳实践
案例1:使用 AutoRound 进行模型量化
假设我们有一个预训练的模型 facebook/opt-125m
,我们可以使用 AutoRound 对其进行量化,以减少模型的大小和推理时间。
from transformers import AutoModelForCausalLM, AutoTokenizer
from auto_round import AutoRound
model_name = "facebook/opt-125m"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
bits, group_size, sym = 4, 128, False
autoround = AutoRound(model, tokenizer, bits=bits, group_size=group_size, sym=sym)
autoround.quantize()
output_dir = "/tmp_autoround"
autoround.save_quantized(output_dir)
案例2:在 Intel Gaudi2 设备上使用 AutoRound
AutoRound 支持 Intel Gaudi2 设备,以下是一个简单的示例:
from transformers import AutoModelForCausalLM, AutoTokenizer
from auto_round import AutoRound
model_name = "facebook/opt-125m"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
bits, group_size, sym = 4, 128, False
autoround = AutoRound(model, tokenizer, bits=bits, group_size=group_size, sym=sym)
autoround.quantize()
output_dir = "/tmp_autoround"
autoround.save_quantized(output_dir)
4. 典型生态项目
1. Transformers
AutoRound 与 Hugging Face 的 Transformers 库无缝集成,允许用户轻松量化和部署大型语言模型。
2. Intel Extension for Transformers
Intel 扩展为 Transformers 提供了额外的优化和功能,特别是在量化和推理方面。
3. AutoGPTQ
AutoGPTQ 是一个用于 GPT 模型量化的工具,AutoRound 可以与其结合使用,进一步提升量化效果。
4. AutoAWQ
AutoAWQ 是一个用于 AWQ 模型量化的工具,AutoRound 可以与其结合使用,进一步提升量化效果。
通过这些生态项目的结合,AutoRound 可以为用户提供更高效、更灵活的模型量化解决方案。