feat: QLoRA fine-tune v1 on M5 + fused model (M2)

This commit is contained in:
marcuspaico
2026-08-17 13:43:32 -07:00
parent d55d9a648c
commit 7a30e06ab0
2 changed files with 28 additions and 0 deletions

16
configs/lora.yaml Normal file
View File

@@ -0,0 +1,16 @@
model: mlx-community/Qwen2.5-7B-Instruct-4bit
train: true
data: data/train
adapter_path: adapters/buddhagpt-v1
batch_size: 1
grad_accumulation_steps: 8
iters: 1200
learning_rate: 1e-5
num_layers: 16
lora_parameters:
rank: 16
scale: 20.0
dropout: 0.05
max_seq_length: 1024
steps_per_eval: 200
save_every: 200

12
scripts/prepare_train.py Normal file
View File

@@ -0,0 +1,12 @@
import json, random
from pathlib import Path
rows = [json.loads(l) for l in Path("data/instructions.jsonl").read_text().splitlines()]
random.seed(7); random.shuffle(rows)
n_val = max(200, len(rows) // 20)
Path("data/train").mkdir(parents=True, exist_ok=True)
for name, part in [("valid", rows[:n_val]), ("train", rows[n_val:])]:
with Path(f"data/train/{name}.jsonl").open("w") as f:
for r in part:
f.write(json.dumps(r) + "\n")
print(len(rows) - n_val, "train /", n_val, "valid")