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

微调LLM后重加载模型出现参数尺寸不匹配错误求助

问题原因及解决办法

错误原因

  1. LoRA微调下权重保存不完整:如果微调时用了LoRA(低秩适配),DPOTrainer默认只保存LoRA适配器权重,而非完整模型参数。直接从finetuned_model目录加载时,缺少基础模型的核心参数(包括embed_in和embed_out的权重),导致这两个参数被错误初始化为空张量(torch.Size([0])),和模型预期的(50304, 128)形状不匹配。
  2. 共享权重的保存/加载逻辑异常:Pythia模型的embed_in(输入嵌入层)和embed_out(输出投影层)默认共享权重。微调过程中如果权重共享的处理出问题,会导致保存的checkpoint里该共享权重未被正确存储,加载时无法匹配模型预期形状。
  3. 模型配置文件损坏:保存模型时如果config.json丢失或被修改,加载时模型会错误推断词汇表大小或隐藏层维度,引发嵌入层参数形状不匹配。

解决办法

针对LoRA微调场景

方法1:加载基础模型+LoRA适配器

先加载原始Pythia-14m基础模型,再加载保存的LoRA权重:

from peft import PeftModel
from transformers import GPTNeoXForCausalLM

# 加载基础模型
base_model = GPTNeoXForCausalLM.from_pretrained("EleutherAI/pythia-14m")
# 加载LoRA适配器
finetuned_model = PeftModel.from_pretrained(base_model, "finetuned_model")

# (可选)合并LoRA权重并保存完整模型,方便后续直接加载
merged_model = finetuned_model.merge_and_unload()
merged_model.save_pretrained("merged_finetuned_model")
# 合并后可直接加载
loaded_model = GPTNeoXForCausalLM.from_pretrained("merged_finetuned_model")

方法2:微调时直接保存完整模型

微调完成后先合并LoRA权重,再保存完整模型:

# 合并LoRA权重
trainer.model = trainer.model.merge_and_unload()
# 保存完整模型
trainer.save_model("finetuned_full_model")

针对全参数微调场景

  1. 检查保存流程:确保保存模型时同时保存完整参数和配置文件:
# 保存模型
trainer.save_model("finetuned_model")
# 同步保存tokenizer(可选但推荐)
tokenizer.save_pretrained("finetuned_model")
  1. 正确加载模型:加载时指定完整模型目录,确保配置文件正常:
from transformers import GPTNeoXForCausalLM, AutoTokenizer

model = GPTNeoXForCausalLM.from_pretrained(
    "finetuned_model",
    local_files_only=True,
    trust_remote_code=True  # Pythia模型可能需要该参数
)
  1. 验证checkpoint文件:检查finetuned_model目录下的pytorch_model.bin或model.safetensors,确认其中包含gpt_neox.embed_in.weight和gpt_neox.embed_out.weight参数。如果缺失,重新执行保存步骤,避免保存过程中断。

额外排查点

  • 确保加载时使用的transformers和peft版本与微调时一致,版本不兼容可能导致权重加载异常。
  • 检查config.json中的vocab_size是否为50304,hidden_size是否为128,若不符,替换为原始Pythia-14m的配置文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 09:50:07