AutoGPTQ入门学习资料汇总 - 基于GPTQ算法的易用LLM量化工具包
AutoGPTQ是一个基于GPTQ算法的易用型大语言模型量化工具包,提供了友好的API接口。本文汇总了AutoGPTQ的相关学习资料,帮助读者快速入门和使用这个强大的LLM量化工具。
项目简介
AutoGPTQ是一个开源的LLM量化工具包,主要特点包括:
- 基于GPTQ算法实现权重量化
- 提供友好的API接口,易于使用
- 支持多种主流LLM模型
- 在保持模型性能的同时显著降低显存占用
项目地址: https://github.com/AutoGPTQ/AutoGPTQ
PyPI地址: https://pypi.org/project/auto-gptq/
安装方法
AutoGPTQ支持Linux和Windows系统,可以通过pip安装最新的稳定版本:
# CUDA 11.8
pip install auto-gptq --no-build-isolation --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
# CUDA 12.1
pip install auto-gptq --no-build-isolation
# ROCm 5.7
pip install auto-gptq --no-build-isolation --extra-index-url https://huggingface.github.io/autogptq-index/whl/rocm573/
更多安装选项可以参考安装文档。
使用教程
下面是一个简单的使用示例:
from transformers import AutoTokenizer
from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
model_name = "facebook/opt-125m"
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 加载未量化模型
model = AutoGPTQForCausalLM.from_pretrained(model_name, quantize_config=BaseQuantizeConfig())
# 量化模型
model.quantize([tokenizer("Example text", return_tensors="pt")])
# 保存量化后的模型
model.save_quantized("opt-125m-4bit")
# 加载量化后的模型进行推理
model = AutoGPTQForCausalLM.from_quantized("opt-125m-4bit", device="cuda:0")
print(model.generate(**tokenizer("AutoGPTQ is", return_tensors="pt").to(model.device)))
更多详细的使用教程可以参考:
性能对比
下面是AutoGPTQ与原始fp16模型的性能对比:
可以看到,AutoGPTQ在显著降低显存占用的同时,推理速度反而有所提升。
支持的模型
AutoGPTQ支持多种主流的LLM模型,包括:
- BLOOM
- GPT-2
- GPT-J
- LLaMA
- OPT
- MOSS
- Falcon
- 等等
完整的支持列表可以参考README。
更多资源
AutoGPTQ是一个强大而易用的LLM量化工具,欢迎大家尝试使用并为项目贡献代码。如果在使用过程中遇到任何问题,可以在GitHub上提issue与社区交流。