# %% Cell 9: Save Adapter
import os

os.makedirs(OUTPUT_DIR, exist_ok=True)

adapter_path = os.path.join(OUTPUT_DIR, "adapter")
model.save_pretrained(adapter_path)
tokenizer.save_pretrained(adapter_path)

size_mb = sum(os.path.getsize(os.path.join(adapter_path, f))
              for f in os.listdir(adapter_path)) / (1024 * 1024)
print(f"✅ Adapter saved: {adapter_path}")
print(f"   Size: {size_mb:.1f} MB")

# Optional merge
try:
    merged_path = os.path.join(OUTPUT_DIR, "merged_16bit")
    model.save_pretrained_merged(merged_path, tokenizer, save_method="merged_16bit")
    print(f"✅ Merged model saved: {merged_path}")
except RuntimeError as e:
    print(f"⚠️ Merge skipped: {e}")

print("\n→ Run Cell 10 to test inference.")
