如何在Transformers中加载Safetensors格式的模型文件?
解决GPTQ量化模型加载报错的问题
你遇到的问题是因为这个是GPTQ离线量化模型,Transformers库默认的AutoModelForCausalLM无法直接识别这种量化格式,需要使用专门的加载方式,以下是两种可行方案:
方案一:使用AutoGPTQ库(推荐)
AutoGPTQ是专门为GPTQ量化模型设计的库,兼容性更好:
- 先安装依赖:
pip install auto-gptq transformers accelerate
- 加载模型的代码示例:
from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig from transformers import AutoTokenizer # 替换为你的模型本地路径 model_path = "path_to/TheBloke/vicuna-13B-1.1-GPTQ-4bit-128g" tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoGPTQForCausalLM.from_quantized( model_path, device_map="auto", # 自动分配模型到GPU/CPU use_triton=False, # 若需Triton加速可设为True,需额外安装Triton quantize_config=BaseQuantizeConfig( bits=4, group_size=128 ) )
方案二:使用Transformers内置支持(需新版本)
确保你的Transformers版本≥4.31.0,先升级:
pip install --upgrade transformers
然后用以下代码加载:
from transformers import AutoTokenizer, AutoModelForCausalLM, GPTQConfig model_path = "path_to/TheBloke/vicuna-13B-1.1-GPTQ-4bit-128g" tokenizer = AutoTokenizer.from_pretrained(model_path) # 配置GPTQ量化参数 gptq_config = GPTQConfig(bits=4, group_size=128, disable_exllama=True) model = AutoModelForCausalLM.from_pretrained( model_path, quantization_config=gptq_config, device_map="auto", trust_remote_code=True )
注意事项
- 以上两种方案均需CUDA环境支持(GPTQ模型依赖GPU加速,CPU环境无法运行);
- 若使用Triton加速,需额外安装Triton库:
pip install triton; - 确保PyTorch版本与CUDA版本兼容,避免环境冲突。
内容的提问来源于stack exchange,提问作者VeilEclipse
相关产品推荐
相关产品推荐

