All models
    DiacNet family · Diacritic restoration

    diacnet-mini-2.0

    diacnet-2.0’s features at half the size.

    diacnet-mini-2.0 is the compact version of diacnet-2.0. It covers the same 11 languages, including Arabic, with the same meaning hints, partial-input support and alignment, in a 300M model that is cheaper to serve.

    Also in DiacNet:diacnet-2.0diactag-2.0
    diacnet-mini-2.0 banner
    11
    Languages
    0.0141
    Mean error rate
    2.1×
    Lower Yorùbá error than 1.1
    300M
    Parameters
    / Why it exists

    The problem it solves

    Not every pipeline needs the most accurate model. If you are restoring marks on a large backlog, or serving restoration inside a busy product, half the parameters means half the hardware.

    diacnet-mini-2.0 gives up very little to get there: it is close to the full model everywhere and even beats diactag-2.0 on five of the European languages.

    / Benchmarks

    The numbers

    diacbench, 1,000 sentences per language

    diacbench, 1,000 sentences per language

    diacnet-mini-2.0 (orange) sits close to diacnet-2.0 on every language and well ahead of diacnet-1.1, at half the parameters.

    Meaning hints

    Meaning hints

    Hints work at the smaller size too: Vietnamese ambiguous-word accuracy rises from 0.53 to 0.78, Polish from 0.89 to 0.98.

    / What you get

    Highlights

    Half the size, most of the accuracy

    Mean error rate 0.0141 against 0.0117 for diacnet-2.0, at 300M parameters instead of 582M.

    Strong on European languages

    Lower error than diactag-2.0 on Polish, Portuguese, Spanish, French and Italian, and level on Hausa.

    Everything the full model does

    Arabic in both styles, automatic language detection, meaning hints, and partial input where existing marks are kept.

    Safe output

    The same alignment step as diacnet-2.0 keeps every letter you typed and takes only the marks.

    / Quick start

    Run it in a few lines

    $pip install "olaverse[deeplearning]"
    quickstart.py
    from olaverse.nlp import Diacritizer
    
    d = Diacritizer(model="diacnet-mini-2.0", lang="yor", device="auto")
    d.restore("O so fun ara re pe oun ko ni isoro kankan.")
    # → 'Ó sọ fún ara rẹ̀ pé òun kò ní ìṣòro kankan.'
    
    # One call for a mixed batch
    d.restore_batch(texts, lang=["yor", "vie", "auto"])
    / DiacNet family

    Which DiacNet model?

    Need the best accuracy? Use diacnet-2.0. Need CPU-only and letter-safe? Use diactag-2.0.

    diacnet-2.0 →diacnet-mini-2.0THIS PAGEdiactag-2.0 →
    Parameters582M300M37.9M
    How it worksRewrites the textRewrites the textTags each character
    Mean error rate, 10 languages0.01170.01410.0130
    Yorùbá error rate0.06980.08150.0787
    Strongest onYorùbá and European languagesClose to 2.0 at half the sizeIgbo, Vietnamese, Modern Standard Arabic
    ExtrasMeaning hints, typo correctionMeaning hints, typo correctionCPU-ready ONNX, never alters letters
    / Where it shines

    Best for

    • Large backlogs and busy products where serving cost matters.
    • Polish, Portuguese, Spanish, French and Italian, where it outperforms diactag-2.0.
    • Teams who want diacnet-2.0’s features on smaller GPUs.
    / Built with
    ByT5-small Transformers PyTorch Apache-2.0