You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

SozKZ Core Llama 300M — Kazakh Grammar Correction (GEC) v1

A grammar error correction model for Kazakh language, fine-tuned from sozkz-core-llama-300m-kk-base-v1 on 200K+ synthetic GEC examples with 14 error-type tags.

How It Works

The model uses special tags to identify the type of grammar error:

<сингармонизм> Қабырғаларде ұлттық өрнектер бейнеленген.
→ Қабырғаларда ұлттық өрнектер бейнеленген.

Error Type Tags

Tag Description Kazakh Term Example
<сингармонизм> Vowel harmony Дауысты дыбыс үндестігі де→да, сінда→сында
<септік> Case suffixes Септік жалғаулары жека→жеке
<жіктік> Personal endings Жіктік жалғаулары қолданыламыз→қолданылады
<болымсыз> Negation Болымсыз түрі remove extra емес
<шақ> Verb tense Етістік шақтары жатаады→жатады
<сөз_тәртібі> Word order Сөз тәртібі reorder words
<құрмалас> Complex sentences Құрмалас сөйлемдер join/reorder clauses
<тәуелдік> Possessive Тәуелдік жалғаулары түпкы→түпкі
<шылау> Postpositions Шылаулар турелі→туралы, ушін→үшін
<көптік> Plural Көптік жалғаулары Студенттар→Студенттер
<жалғау> General suffixes Жалғаулар достарым→достарыммен
<қате> Typos/noise Қателер Қазақстнаның→Қазақстанның
<грамматика> General grammar Жалпы грамматика боліседі→бөліседі
<таза> Clean (no errors) Таза мәтін returns unchanged

Usage

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "stukenov/sozkz-core-llama-300m-kk-gec-v1"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.bfloat16)

def correct(tag, text):
    prompt = f"<{tag}> {text}\n\u2192 "
    inputs = tokenizer(prompt, return_tensors="pt")
    with torch.no_grad():
        out = model.generate(**inputs, max_new_tokens=150, temperature=0.3, top_p=0.9, do_sample=True)
    result = tokenizer.decode(out[0], skip_special_tokens=True)
    if "\u2192 " in result:
        result = result.split("\u2192 ", 1)[1]
    return result.split("\n")[0].strip()

# Fix vowel harmony
print(correct("сингармонизм", "Мектептің кітапханасінда көптеген кітаптар бар."))
# Мектептің кітапханасында көптеген кітаптар бар.

# Fix typos
print(correct("қате", "Қазақстнаның астанасы Астна қаласы."))
# Қазақстанның астанасы - Астана қаласы.

# Fix postposition
print(correct("шылау", "Тіл турелі толғаныс жазды."))
# Тіл туралы толғаныс жазды.

# General grammar
print(correct("грамматика", "Мен кеше дүкенге барды."))
# Мен кеше дүкенге бардым.

Real Test Results

Tag Test Input Output Result
шылау турелі→туралы Тіл турелі толғаныс жазды Тіл туралы толғаныс жазды PASS
шылау ушін→үшін Ол мектеп ушін көп жұмыс істеді Ол мектеп үшін көп жұмыс істеді PASS
қате typo fix Қазақстнаның астанасы Астна Қазақстанның астанасы Астана PASS
болымсыз extra negation Бұл кітап қызықты емес кітап Бұл кітап қызықты кітап PASS
көптік тар→тер Студенттар университетте Студенттер университетте PASS
сингармонизм сінда→сында кітапханасінда кітапханасында PASS
жіктік ламыз→лады қолданыламыз қолданылады PASS
таза no change Қазақстан Орталық Азиядағы ең ірі мемлекет (unchanged) PASS

Training

Detail Value
Base model sozkz-core-llama-300m-kk-base-v1
Dataset sozkz-corpus-synthetic-kk-gec-v1 (~200K balanced)
Epochs 1
Hardware 4x RTX 4090
Training time ~18 minutes
Final loss 0.22
Cost ~$0.30

Prompt Format

<TAG> input text with errors
→

The model generates the corrected text after the arrow.

Limitations

  • 300M parameters limits complex reasoning (word order, complex sentences)
  • May produce garbage characters at start of output (emoji, unicode artifacts)
  • Best for single-error corrections, not heavy multi-error rewrites
  • Trained on synthetic data, may not cover all real-world error patterns

License

Apache 2.0

Downloads last month
3
Safetensors
Model size
0.3B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for stukenov/sozkz-core-llama-300m-kk-gec-v1

Finetuned
(2)
this model

Dataset used to train stukenov/sozkz-core-llama-300m-kk-gec-v1

Collection including stukenov/sozkz-core-llama-300m-kk-gec-v1

Evaluation results