SAGA: Syntax-Aligned Grammar Adaptation
Collection
RLVF pipeline using parser oracles to align LMs for Icelandic and Danish. GPT-SW3 and Viking-13B trained with Delta-DPO. • 7 items • Updated
How to use Hodfa71/gpt-sw3-1b3-is-saga-delta-dpo with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("AI-Sweden-Models/gpt-sw3-1.3b")
model = PeftModel.from_pretrained(base_model, "Hodfa71/gpt-sw3-1b3-is-saga-delta-dpo")Fine-tuned with SAGA (Syntax-Aware Grammar Alignment), a two-stage pipeline that trains language models to generate grammatically correct Icelandic text using reinforcement learning from a symbolic parser oracle (Greynir (Icelandic constituency parser)).
This is a LoRA adapter. Load it on top of AI-Sweden-Models/gpt-sw3-1.3b.
Δ-DPO applied directly to base model (no SFT — base PS 76.5% at threshold).
| Metric | Base | + Δ-DPO |
|---|---|---|
| Parse success | 76.5% | 76.0% |
| Parse score | 0.364 | 0.375 |
| PPL-Wiki | 17.0 | 21.4 |
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
base = AutoModelForCausalLM.from_pretrained("AI-Sweden-Models/gpt-sw3-1.3b", torch_dtype="auto")
model = PeftModel.from_pretrained(base, "Hodfa71/gpt-sw3-1b3-is-saga-delta-dpo")
tokenizer = AutoTokenizer.from_pretrained("AI-Sweden-Models/gpt-sw3-1.3b")
prompt = "Íslenska er"
inputs = tokenizer(prompt, return_tensors="pt")
output = model.generate(**inputs, max_new_tokens=60, temperature=0.8, do_sample=True)
print(tokenizer.decode(output[0], skip_special_tokens=True))
@article{fakhar2025saga,
title={SAGA: Syntax-Aware Grammar Alignment for Low-Resource Nordic Languages},
author={Fakhar, Hoda and others},
year={2025},
note={Under review}
}
Inherits the base model license (AI Sweden LLM License / LumiOpen).
Base model
AI-Sweden-Models/gpt-sw3-1.3b