Skip to main content

Chapter 2: Model Merging Techniques

Combining Models for Better Results​

Model merging combines multiple fine-tuned models into one.


Merging Methods​

MethodDescriptionBest For
LinearAverage weightsSimple combination
SLERPSpherical interpolationSmooth blending
TIESConflict resolutionMultiple experts
DAREDrop and rescaleDiverse models

LoRA Merging​

# Merge LoRA into base model
from peft import PeftModel

model = PeftModel.from_pretrained(base_model, "adapter_path")
merged_model = model.merge_and_unload()
merged_model.save_pretrained("merged_model")

MergeKit Example​

# config.yaml
slices:
- sources:
- model: base_model
layer_range: [0, 32]
- model: finetuned_model
layer_range: [0, 32]
merge_method: slerp
base_model: base_model
parameters:
t: 0.5 # Interpolation factor
dtype: bfloat16
mergekit-yaml config.yaml ./merged_output

When to Merge​

✅ Merge when:

  • Combining task-specific models
  • Deploying simpler architecture
  • No need for adapter switching

❌ Keep separate when:

  • Need dynamic task switching
  • Storage is limited
  • Want to update tasks independently

Continue to Chapter 3 →