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

Mac M2加载大模型时offload_dir配置报错问题求助

问题原因

加载Peft模型后,模型结构被base_model包裹,系统会重新计算device_map,但此时未正确传递卸载目录参数,或未复用原模型的device_map,导致触发缺少offload_dir的错误。

解决方案

方案一:复用原模型的device_map

加载原模型后保存其device_map,在Peft加载时传入该映射,避免重新计算:

from peft import PeftModel
from transformers import AutoTokenizer, GPTJForCausalLM, BitsAndBytesConfig

quantization_config = BitsAndBytesConfig(llm_int8_enable_fp32_cpu_offload=True)

tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-j-6B")
tokenizer.pad_token = tokenizer.eos_token
tokenizer.pad_token_id = tokenizer.eos_token_id

offload_folder="/Users/matthewberman/Desktop/offload"

# 加载原模型
model = GPTJForCausalLM.from_pretrained(
    "EleutherAI/gpt-j-6B",
    device_map="auto",
    offload_folder=offload_folder,
    quantization_config=quantization_config
)
# 保存原模型的设备映射
original_device_map = model.hf_device_map

# 加载Peft模型时复用设备映射
model = PeftModel.from_pretrained(
    model, 
    "samwit/dolly-lora", 
    offload_dir=offload_folder,
    device_map=original_device_map
)

方案二:加载Peft时明确指定device_map和offload_dir

在Peft加载时同时指定device_map="auto"和offload_dir,让系统重新计算设备映射时能找到卸载目录:

model = PeftModel.from_pretrained(
    model, 
    "samwit/dolly-lora", 
    offload_dir=offload_folder,
    device_map="auto"
)

方案三:升级依赖版本

若为版本兼容问题,执行以下命令升级相关库:

pip install --upgrade transformers peft bitsandbytes

内容的提问来源于stack exchange,提问作者Matthew Berman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:35:15