Views
No views yet
| Checkpoint | Speaker Similarity | Training Loss (audio-only) |
|---|---|---|
| checkpoint-275 ← best | 0.547 avg / 0.621 peak | 4.11 |
| checkpoint-250 | 0.505 avg / 0.583 peak | 3.93 |
| checkpoint-125 | 0.519 avg / 0.591 peak | 4.03 |
| final (load_best) | 0.475 avg / 0.500 peak | 4.21 |
| Improvement | V1 (previous) | V3 (this) |
|---|---|---|
| Label masking | ❌ Loss on all tokens | ✅ Loss on audio tokens only |
| Learning rate | 2e-4 (linear) | 1e-4 (cosine) |
| Epochs | 5 | 3 |
| Eval split | ❌ | ✅ 5% validation |
| Best similarity | 0.614 | 0.621 |
| Property | Value |
|---|---|
| Base Model | unsloth/orpheus-3b-0.1-ft |
| LoRA Rank (r) | 64 |
| LoRA Alpha | 64 |
| Target Modules | q, k, v, o, gate, up, down proj |
| SNAC Codec | snac_24khz ✅ (7-token pattern) |
| Learning Rate | 1e-4 (cosine decay, 5% warmup) |
| Batch Size | 2 (grad accum 4, effective 8) |
| Max Seq Length | 1536 |
| Precision | BFloat16 |
| GPU | RTX 4090 (24GB) |
| Training Time | ~18 minutes |
1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3from peft import PeftModel
4from snac import SNAC
5
6# Load base + LoRA
7base = AutoModelForCausalLM.from_pretrained(
8 "unsloth/orpheus-3b-0.1-ft",
9 torch_dtype=torch.bfloat16, device_map="auto"
10)
11tokenizer = AutoTokenizer.from_pretrained("unsloth/orpheus-3b-0.1-ft")
12
13# Use checkpoint-275 (best similarity)
14model = PeftModel.from_pretrained(base, "kailasa-ngpt/orpheus-3b-lora-sph-v3",
15 subfolder="checkpoint-275")
16model.eval()
17
18# SNAC decoder (must be 24kHz)
19snac = SNAC.from_pretrained("hubertsiuzdak/snac_24khz")kailasa-ngpt/2026_01_15_Orpheus_Runkailasa-ngpt/orpheus-3b-ft-step-1000kailasa-ngpt/SPH_Audio_2019_60_Secs_947_Samples