LORA权重合并保存在本地之后重新加载出来,两个模型输出结果不一致

LoRA 权重合并后在本地保存,再重新加载,两个模型的输出结果不一致,通常出现在微调后合并、保存、再加载的流程中。优先排查 Transformers 版本以及 LoRA 合并/保存/加载时的模型状态与数据类型是否一致。

快速结论:LoRA 权重合并后在本地保存,再重新加载,两个模型的输出结果不一致,通常出现在微调后合并、保存、再加载的流程中。优先排查 Transformers 版本以及 LoRA 合并/保存/加载时的模型状态与数据类型是否一致。

适用环境:Debian GNU/Linux 12 (bookworm),RTX 5090 32G;问题在 Hugging Face Transformers 相关流程中触发,Issue 评论区还提到了与 Qwen3-4B 微调、ms-swift 工具链相关的类似现象,但未给出完整版本号。已确认的依赖包包括 accelerate 1.12.0、huggingface-hub 0.36.0 等。

最快修复方案:暂无确认的一步修复方案。Issue 中没有给出被验证有效的解决办法,评论区用户提到升级 Transformers 到 v5 后暂时恢复正常,但该方案未被 Issue 作者验证,且 vLLM 不支持 v5,因此只能作为可优先尝试的排查方向。

注意事项:该问题可能与 Transformers 某个版本的 LoRA 合并实现有关,也可能与合并后保存权重时的精度、device_map 或其他加载参数有关。升级 Transformers 版本可能影响其他依赖(如 vLLM、PEFT、ms-swift)的兼容性,操作前请备份环境。

问题场景

用户在 Transformers 环境中对 LoRA 权重进行合并,保存到本地后再重新加载模型,发现加载后的模型与合并后未重新加载的模型在相同输入下输出结果不一致。问题复现环境为 Debian 12 + RTX 5090 32G。评论区还出现了类似情况:使用 ms-swift 对 Qwen3-4B 进行微调,合并后模型输出明显变差,升级 Transformers 到 v5 后暂时恢复正常。

报错原文

LORA权重合并保存在本地之后重新加载出来,两个模型输出结果不一致

原因分析

可能原因:LoRA 权重合并后,本地保存与重新加载过程中模型参数没有完全恢复到原始状态。可能涉及以下几个方面:

  • Transformers 或 PEFT 在特定版本下的 LoRA 合并、保存实现存在缺陷,导致加载后的模型权重与内存中的合并结果不一致。
  • 保存/加载时模型的 dtype 或 device_map 发生变化,导致权重精度或分布不同。
  • 合并后模型的配置信息未正确写入保存目录,重新加载时使用了不同的默认配置。

评论区用户反馈升级 Transformers 到 v5 后问题暂时恢复,这提示问题可能与特定 Transformers 版本的实现有关,但尚未获得官方确认。

环境排查

  • 确认 Transformers 版本:transformers.__version__
  • 确认 PEFT 版本(如果使用了 PEFT 进行 LoRA 合并)
  • 确认 PyTorch 版本以及是否匹配 RTX 5090 的 CUDA 环境
  • 确认加载模型时是否显式设置了 dtypedevice_map 等参数
  • 检查保存目录中是否存在完整的 config.json、权重文件以及必要的 adapter 配置文件

解决步骤

  1. 记录当前 Transformers 版本,并检查是否有已知相关 Issue 或修复版本。
  2. 在合并 LoRA 后,直接比较未保存模型与保存后重新加载模型的权重差异,确认问题是否发生在保存环节。
  3. 保存权重时使用明确的保存格式(如 save_pretrained),并在加载时使用相同的数据类型(如 torch_dtype=torch.bfloat16)和相同的 device_map
  4. 用相同输入、相同随机种子对两个模型做多次推理,排除采样随机性导致的输出差异。
  5. 如果确认与当前 Transformers 版本有关,可优先尝试升级 Transformers 到较新版本(如 v5)进行验证,但需注意其与 vLLM 等工具的兼容性。

验证方法

使用完全相同的输入 prompt、随机种子和生成参数,分别对合并后未保存的模型与保存后重新加载的模型进行推理,检查输出序列是否一致。也可以

参考来源

huggingface/transformers #44457

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18311

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注