---
license: apache-2.0
base_model:
  - HuggingFaceTB/SmolLM-135M
  - HuggingFaceTB/SmolLM-135M-Instruct
tags:
  - merge
  - slerp
  - smollm
  - model-merge
  - chimera
language:
  - en
pipeline_tag: text-generation
---

# SmolLM-135M-SLERP-Merge

## Overview
A **SLERP (Spherical Linear Interpolation) merge** of SmolLM-135M (base) and
SmolLM-135M-Instruct. This "chimera" model blends raw language modeling capabilities
with instruction-following abilities, creating a balanced model that inherits
strengths from both parents.

## Key Features
- **Dual heritage**: Combines base + instruct capabilities
- **SLERP merge**: Uses spherical interpolation for better weight preservation
- **Ultra-small**: Only ~513 MB total
- **No training required**: Pure weight-space interpolation

## Merge Details
- **Model A (base)**: [HuggingFaceTB/SmolLM-135M](https://huggingface.co/HuggingFaceTB/SmolLM-135M)
- **Model B (instruct)**: [HuggingFaceTB/SmolLM-135M-Instruct](https://huggingface.co/HuggingFaceTB/SmolLM-135M-Instruct)
- **Method**: SLERP (Spherical Linear Interpolation)
- **Interpolation factor**: t=0.6 (60% instruct, 40% base)
- **Weight matrices**: SLERP interpolation
- **Biases/norms**: Linear interpolation

## Why SLERP?
Linear interpolation (lerp) can reduce the magnitude of weight vectors, potentially
degrading model quality. SLERP interpolates along the surface of a hypersphere,
preserving vector magnitudes while smoothly transitioning between the two models.
This typically produces higher quality merges.

## Usage

```python
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("Ringkvist/SmolLM-135M-SLERP-Merge")
tokenizer = AutoTokenizer.from_pretrained("Ringkvist/SmolLM-135M-SLERP-Merge")

inputs = tokenizer("Explain what photosynthesis is:", return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=100, temperature=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```

## Merge Recipe (for reproduction with mergekit)
```yaml
slices:
  - sources:
      - model: HuggingFaceTB/SmolLM-135M
        layer_range: [0, 30]
      - model: HuggingFaceTB/SmolLM-135M-Instruct
        layer_range: [0, 30]
merge_method: slerp
base_model: HuggingFaceTB/SmolLM-135M
parameters:
  t:
    - value: 0.6
dtype: float16
```

## Parent Models
| Model | Role | Description |
|-------|------|-------------|
| [HuggingFaceTB/SmolLM-135M](https://huggingface.co/HuggingFaceTB/SmolLM-135M) | Base | Raw language modeling |
| [HuggingFaceTB/SmolLM-135M-Instruct](https://huggingface.co/HuggingFaceTB/SmolLM-135M-Instruct) | Instruct | Instruction following |
