You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用bitsandbytes量化Llama 3.1 70B模型后加载报错求助

问题原因与解决方案

报错根源

直接用save_pretrained保存bitsandbytes量化后的模型时,只会存储量化后的权重,不会保留量化过程中生成的bitsandbytes__*前缀统计信息——这些是加载时动态生成的临时状态,不属于模型state dict的一部分。而你加载时再次传入quantization_config,会触发重新量化流程,此时保存的权重已经是量化后的,没有原始权重供新的量化流程读取,因此报错。

另外,加载时误用了AutoModel类,Llama 3.1是因果语言模型,应该用AutoModelForCausalLM匹配模型结构。

修复步骤

  1. 移除加载时的quantization_config参数:模型已经是量化后的,无需重复触发量化流程
  2. 使用正确的模型加载类:替换AutoModel为AutoModelForCausalLM
  3. 保持设备与 dtype 配置一致:加载时沿用保存模型时的device_map、torch_dtype等参数,确保模型正确分配资源

修改后的加载代码

# 正确加载量化后的模型
loaded_model = AutoModelForCausalLM.from_pretrained(
    pt_save_directory,
    device_map="auto",
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True
)

# 验证加载是否成功
inputs = tokenizer("Hello, this is a test", return_tensors="pt").to(loaded_model.device)
outputs = loaded_model.generate(**inputs, max_new_tokens=20)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

额外注意事项

  • 如果后续需要对量化模型微调,建议结合PEFT框架,避免直接修改量化权重导致兼容性问题
  • 保存量化模型时,save_pretrained会自动保存模型配置文件,无需额外操作

内容的提问来源于stack exchange,提问作者Luis Leal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:58:13