Views
No views yet
1from peft import PeftModel, PeftConfig
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4# Load base model
5base_model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.1-8B-instruct")
6tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-instruct")
7
8# Load merged LoRA adapter
9model = PeftModel.from_pretrained(base_model, "path_to_merged_adapter")1from peft import PeftModel, PeftConfig
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4MODEL_NAME = "meta-llama/Meta-Llama-3.1-8B-Instruct"
5model = AutoModelForCausalLM.from_pretrained(MODEL_NAME)
6tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
7
8# Load first adapter as base
9peft_model = PeftModel.from_pretrained(model, "llama319", adapter_name="llama319")1# Load remaining adapters
2peft_model.load_adapter("llama320", adapter_name="llama320")
3peft_model.load_adapter("llama318", adapter_name="llama318")
4peft_model.load_adapter("llama317", adapter_name="llama317")
5peft_model.load_adapter("kevin009/llamabase-r-16", adapter_name="kevin009/llamabase-r-16") # base model with alpha 11# Define adapters and their weights
2adapters = ["llama319", "llama320", "llama318", "llama317"]
3weights = [1.0, 1.0, 1.0, 1.0] # Equal weights for all adapters
4
5# Merge adapters
6peft_model.add_weighted_adapter(
7 adapters,
8 weights,
9 "merge",
10 combination_type="ties", # Using ties combination method
11 density=0.2 # Density parameter for merger
12)
13
14# Set active adapter to merged version
15peft_model.set_adapter("merge")
16
17# Save the merged adapter
18peft_model.save_pretrained("merged")combination_type="ties": Uses the TIES (Task Interference Edge Selection) method for combining adaptersdensity=0.2: Controls the sparsity of the merged weightsweights=[1.0, 1.0, 1.0, 1.0]: Equal weighting for all adapters (0.25 each after normalization)