Noesworthy

LoRAって本体にマージしなくても使えるの?

使える!

マージせずにLoRAを差しこんで使ってる例

from peft import PeftModel
from transformers import AutoModelForCausalLM

base_model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3-8B")
lora_model = PeftModel.from_pretrained(base_model, "./my_lora_adapter")

# 推論モード切り替え
lora_model.eval()

マージする場合

merged_model = lora_model.merge_and_unload()
merged_model.save_pretrained("./merged_model")
lora_model.eval()

マージする場合としない場合の違い

どちらも元のモデルにLoRA部分の重みを線形加算してるという点は同じ

マージする場合はマージするときだけ線形加算が走り、マージしていない場合は推論するたびに線形加算が走る

マージするとお得なこと

#ai