This commit is contained in:
Artiprocher
2025-11-20 17:44:00 +08:00
parent eeb55a0ce6
commit 96daa30bcc
7 changed files with 72 additions and 24 deletions

View File

@@ -0,0 +1,20 @@
import torch
from typing import Dict, List
def merge_lora_weight(tensors_A, tensors_B):
lora_A = torch.concat(tensors_A, dim=0)
lora_B = torch.concat(tensors_B, dim=1)
return lora_A, lora_B
def merge_lora(loras: List[Dict[str, torch.Tensor]]):
lora_merged = {}
keys = [i for i in loras[0].keys() if ".lora_A." in i]
for key in keys:
tensors_A = [lora[key] for lora in loras]
tensors_B = [lora[key.replace(".lora_A.", ".lora_B.")] for lora in loras]
lora_A, lora_B = merge_lora_weight(tensors_A, tensors_B)
lora_merged[key] = lora_A
lora_merged[key.replace(".lora_A.", ".lora_B.")] = lora_B
return lora_merged