diff --git a/src/mcore_bridge/bridge/gpt_bridge.py b/src/mcore_bridge/bridge/gpt_bridge.py index 1b90308..e48f0bd 100644 --- a/src/mcore_bridge/bridge/gpt_bridge.py +++ b/src/mcore_bridge/bridge/gpt_bridge.py @@ -270,9 +270,12 @@ def _set_module(self, mg_module, hf_state_dict, hf_prefix: str, to_mcore: bool): incompatible_keys = mg_module.load_state_dict(hf_state_dict, strict=False) missing_keys = incompatible_keys.missing_keys if self._peft_format: + # In multi-LoRA mode, only the current adapter slot is saved/loaded. + # Other idle slots (e.g. lora_1~N) are not in the checkpoint and + # their absence is expected — only validate the active adapter. missing_keys = [ - k for k in incompatible_keys.missing_keys - if '.lora_A.' in k or '.lora_B.' in k or '.modules_to_save.' in k + k for k in incompatible_keys.missing_keys if + ('.lora_A.' in k or '.lora_B.' in k or '.modules_to_save.' in k) and f'.{self._adapter_name}.' in k ] assert len(missing_keys) == 0, f'incompatible_keys.missing_keys: {missing_keys}' return {}