ModernBERT-MIAITS

EN | LT


EN: English

Overview

ModernBERT-MIAITS is a fine-tuned Lithuanian-language text classification model developed as part of the MIAITS project (Melagingos informacijos automatinio identifikavimo tekstyno sukūrimas — Lithuanian Misinformation Automatic Identification Text Corpus).

The model classifies Lithuanian news articles and statements into three categories:

Label Meaning
Klaidinga False / Fake information
Manipuliatyvu Manipulative / Misleading content
Teisinga True / Correct information

Architecture

  • Base model: VSSA-SDSA/LT-MLKM-modernBERT — a ModernBERT variant pre-trained on Lithuanian text
  • Task: Single-label sequence classification (3 classes)
  • Hidden size: 768
  • Attention heads: 12
  • Hidden layers: 22 (alternating full and sliding window attention every 3 layers; local window: 128)
  • Max context length: 4,096 tokens
  • Pooling: CLS token
  • Vocabulary size: 64,000 tokens
  • Positional encoding: RoPE (Rotary Position Embedding)
  • Activation: GELU

Training Data

Source: data/tekstynas.csv — Lithuanian misinformation classification dataset.

Labels (from 16-Label column):

  • 0 — Klaidinga (False)
  • 1 — Manipuliatyvu (Manipulative)
  • 2 — Teisinga (True)

Train text columns (row expansion): Each training row is expanded into 3 rows — one per column: 7-Statement, 8-Statement_Context, 9-Full_text.

Val/Test text column: 9-Full_text only.

Splits: Stratified 80/10/10 (train/val/test), seed 42.

Augmentation: Sentence-shuffle on expanded training rows (1 shuffle per eligible doc, min 3 sentences, min 200 chars).

Split Rows
Train (after 3× column expansion) 12,690
Train (+ sentence-shuffle augmentation) 17,603 (+4,913)
Validation 5,437
Test 6,043

Training

Runtime: ~1h 12m

Parameter Value
Learning rate 2e-5
Batch size 8
Gradient accumulation steps 4 (effective batch = 32)
Epochs 4
Weight decay 0.01
Precision float32
Optimizer AdamW
Scheduler Linear warmup + decay
Loss Cross-entropy
Best model metric Validation accuracy
Early stopping patience 2 epochs

Performance

Best checkpoint: Epoch 2

Split Loss Accuracy Macro F1 Weighted F1
Validation 0.485 88.57% 0.877 0.884
Test 0.372 89.52% 0.887 0.894

Per-class metrics (test set):

Class Precision Recall F1
Klaidinga 0.839 0.931 0.882
Manipuliatyvu 0.869 0.750 0.805
Teisinga 0.981 0.969 0.975

Intended Use

  • Detection of fake news and manipulative content in Lithuanian
  • Research on misinformation in Baltic/Eastern European media
  • Integration into content moderation pipelines

Limitations

  • Trained exclusively on Lithuanian-language data; not suitable for other languages
  • The Manipuliatyvu class is semantically ambiguous and has the lowest robustness

Usage

import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

MODEL_PATH = "models/bert/modern-bert-miaits-v2"  # path to this directory
MAX_LENGTH = 4096

# Load
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, use_fast=True)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_PATH)
model.eval()

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

# Labels from model config
id2label = model.config.id2label  # {0: "Klaidinga", 1: "Manipuliatyvu", 2: "Teisinga"}

def predict(texts: list[str]) -> list[dict]:
    inputs = tokenizer(
        texts,
        truncation=True,
        max_length=MAX_LENGTH,
        padding=True,
        return_tensors="pt",
    ).to(device)

    with torch.no_grad():
        logits = model(**inputs).logits

    probs = torch.softmax(logits, dim=1).cpu()
    results = []
    for row in probs:
        dist = {id2label[i]: round(float(p), 4) for i, p in enumerate(row)}
        label = max(dist, key=dist.get)
        results.append({"label": label, "distribution": dist})
    return results


texts = [
    # Klaidinga
    'Nors didžioji žiniasklaida ir Didžioji farmacija deda visas pastangas, kad medikai ir nukentėję pacientai nekalbėtų apie neigiamą "Covid" vakcinų poveikį, apie šiuos atvejus pradedame girdėti vis dažniau, nes jų skaičius tampa per didelis, kad būtų galima į jį nekreipti dėmesio. Šiame straipsnyje gali būti teiginių, atspindinčių autoriaus nuomonę Kaip daugelis baiminosi, kai šios vakcinos buvo skubiai pateiktos rinkai beveik neišbandytos, tik laikui bėgant kai kurie padariniai tampa akivaizdesni.',
    # Manipuliatyvu
    '„The Economist" 2025 m. viršelio iššifravimas: Atskleista: globalistų kontrolė, 15 minučių miestai ir Saturno simbolika\nNaujausias „The Economist" viršelis visada pritraukia dėmesio ir diskusijų. 2025 m. leidinys, minimalistinio dizaino ir simboliška estetika, kelia klausimus apie globalinę kontrolę, technokratiją ir visuomenės transformacijas.',
    # Teisinga
    'Sparčiai šylantis klimatas reikalauja sprendimų. Būtent todėl Jungtinė Karalystė investuoja dešimtis milijonų svarų į tyrimus, kurie turėtų padėti atrasti būdą atvėsinti Žemės klimatą. Melagienų skleidėjai tvirtina, kad šie tyrimai reiškia, jog Jungtinė Karalystė oficialiai pripažįsta, kad „chemtreilai" nėra sąmokslo teorija ir patys jais užsiima.',
]

for text, result in zip(texts, predict(texts)):
    print(f"Text:  {text[:80]}...")
    print(f"Label: {result['label']}")
    print(f"Probs: {result['distribution']}\n")

Example output (real predictions from the model):

Text:  Nors didžioji žiniasklaida ir Didžioji farmacija deda visas pastangas, kad m...
Label: Klaidinga
Probs: {'Klaidinga': 0.9995, 'Manipuliatyvu': 0.0005, 'Teisinga': 0.0}

Text:  „The Economist" 2025 m. viršelio iššifravimas: Atskleista: globalistų kont...
Label: Manipuliatyvu
Probs: {'Klaidinga': 0.0508, 'Manipuliatyvu': 0.8602, 'Teisinga': 0.089}

Text:  Sparčiai šylantis klimatas reikalauja sprendimų. Būtent todėl Jungtinė Kara...
Label: Teisinga
Probs: {'Klaidinga': 0.0001, 'Manipuliatyvu': 0.0, 'Teisinga': 0.9999}

LT: Lietuvių

Apžvalga

ModernBERT-MIAITS — tai suderintas lietuviškos kalbos teksto klasifikavimo modelis, sukurtas MIAITS projekto (Melagingos informacijos automatinio identifikavimo tekstyno sukūrimas).

Modelis klasifikuoja lietuviškus naujienų straipsnius ir teiginius į tris kategorijas:

Žyma Reikšmė
Klaidinga Klaidinga / melaginga informacija
Manipuliatyvu Manipuliatyvi / klaidinanti informacija
Teisinga Teisinga informacija

Architektūra

  • Bazinis modelis: VSSA-SDSA/LT-MLKM-modernBERT — ModernBERT variantas, iš anksto apmokytas lietuviškuose tekstuose
  • Užduotis: Vienos etiketės sekų klasifikavimas (3 klasės)
  • Paslėpto sluoksnio dydis: 768
  • Dėmesio galvutės: 12
  • Paslėpti sluoksniai: 22 (kintančio pilno ir slankiojančio lango dėmesio mechanizmai kas 3 sluoksnius; vietinis langas: 128)
  • Maksimalus konteksto ilgis: 4 096 žetonai
  • Telkinys: CLS žetono vektorius
  • Žodyno dydis: 64 000 žetonų
  • Pozicinis kodavimas: RoPE (sukamasis pozicinis įterpimas)
  • Aktyvavimo funkcija: GELU

Mokymo duomenys

Šaltinis: data/tekstynas.csv — lietuviškos dezinformacijos klasifikavimo duomenų rinkinys.

Žymos (iš stulpelio 16-Label):

  • 0 — Klaidinga
  • 1 — Manipuliatyvu
  • 2 — Teisinga

Eilutės su žyma REIKIA ĮVERTINTI buvo pašalintos.

Mokymo teksto stulpeliai (eilučių plėtimas): Kiekviena mokymo eilutė išplečiama į 3 eilutes — po vieną kiekvienam stulpeliui: 7-Statement, 8-Statement_Context, 9-Full_text.

Validavimo/testavimo teksto stulpelis: tik 9-Full_text.

Suskirstymas: Stratifikuotas 80/10/10 (mokymas/validavimas/testavimas), sėkla 42.

Duomenų papildymas: Sakinių maišymas išplėstose mokymo eilutėse (1 maišymas tinkamam dokumentui, min. 3 sakiniai, min. 200 simbolių).

Pjūvis Eilutės
Mokymas (po 3× stulpelio plėtimo) 12 690
Mokymas (+ sakinių maišymas) 17 603 (+4 913)
Validavimas 5 437
Testavimas 6 043

Mokymas

Apmokytas: 2026-04-02 | Trukmė: ~1 val. 12 min.

Parametras Reikšmė
Mokymosi greitis 2e-5
Partijos dydis 8
Gradientų kaupimo žingsniai 4 (efektyvi partija = 32)
Epochos 4
Svorio mažėjimas 0,01
Tikslumas float32
Optimizatorius AdamW
Grafikas Linijinis šildymas + mažėjimas
Nuostolių funkcija Kryžminė entropija
Geriausio modelio kriterijus Validavimo tikslumas
Ankstyvojo sustabdymo kantrybė 2 epochos

Rezultatai

Geriausias patikros taškas: 2-oji epocha

Pjūvis Nuostoliai Tikslumas Makro F1 Svertinis F1
Validavimas 0,485 88,57 % 0,877 0,884
Testavimas 0,372 89,52 % 0,887 0,894

Metrikos pagal klasę (testavimo rinkinys):

Klasė Tikslumas Atšaukimas F1
Klaidinga 0,839 0,931 0,882
Manipuliatyvu 0,869 0,750 0,805
Teisinga 0,981 0,969 0,975

Numatytas naudojimas

  • Melagingų naujienų ir manipuliatyvaus turinio aptikimas lietuvių kalba
  • Dezinformacijos Baltijos ir Rytų Europos žiniasklaidoje tyrimai
  • Integravimas į turinio moderavimo sistemas

Apribojimai

  • Modelis apmokytas išimtinai lietuviškais duomenimis; kitoms kalboms netinka
  • Manipuliatyvu klasė yra semantiškai dviprasmiška ir mažiausiai atspari

Naudojimas

import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

MODEL_PATH = "models/bert/modern-bert-miaits-v2"  # kelias į šį katalogą
MAX_LENGTH = 4096

# Įkėlimas
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, use_fast=True)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_PATH)
model.eval()

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

# Žymos iš modelio konfigūracijos
id2label = model.config.id2label  # {0: "Klaidinga", 1: "Manipuliatyvu", 2: "Teisinga"}

def predict(texts: list[str]) -> list[dict]:
    inputs = tokenizer(
        texts,
        truncation=True,
        max_length=MAX_LENGTH,
        padding=True,
        return_tensors="pt",
    ).to(device)

    with torch.no_grad():
        logits = model(**inputs).logits

    probs = torch.softmax(logits, dim=1).cpu()
    results = []
    for row in probs:
        dist = {id2label[i]: round(float(p), 4) for i, p in enumerate(row)}
        label = max(dist, key=dist.get)
        results.append({"label": label, "distribution": dist})
    return results


texts = [
    # Klaidinga
    'Nors didžioji žiniasklaida ir Didžioji farmacija deda visas pastangas, kad medikai ir nukentėję pacientai nekalbėtų apie neigiamą "Covid" vakcinų poveikį, apie šiuos atvejus pradedame girdėti vis dažniau, nes jų skaičius tampa per didelis, kad būtų galima į jį nekreipti dėmesio. Šiame straipsnyje gali būti teiginių, atspindinčių autoriaus nuomonę Kaip daugelis baiminosi, kai šios vakcinos buvo skubiai pateiktos rinkai beveik neišbandytos, tik laikui bėgant kai kurie padariniai tampa akivaizdesni.',
    # Manipuliatyvu
    '„The Economist" 2025 m. viršelio iššifravimas: Atskleista: globalistų kontrolė, 15 minučių miestai ir Saturno simbolika\nNaujausias „The Economist" viršelis visada pritraukia dėmesio ir diskusijų. 2025 m. leidinys, minimalistinio dizaino ir simboliška estetika, kelia klausimus apie globalinę kontrolę, technokratiją ir visuomenės transformacijas.',
    # Teisinga
    'Sparčiai šylantis klimatas reikalauja sprendimų. Būtent todėl Jungtinė Karalystė investuoja dešimtis milijonų svarų į tyrimus, kurie turėtų padėti atrasti būdą atvėsinti Žemės klimatą. Melagienų skleidėjai tvirtina, kad šie tyrimai reiškia, jog Jungtinė Karalystė oficialiai pripažįsta, kad „chemtreilai" nėra sąmokslo teorija ir patys jais užsiima.',
]

for text, result in zip(texts, predict(texts)):
    print(f"Tekstas: {text[:80]}...")
    print(f"Žyma:    {result['label']}")
    print(f"Tikimybės: {result['distribution']}\n")

Pavyzdinė išvestis (realios modelio prognozės):

Tekstas: Nors didžioji žiniasklaida ir Didžioji farmacija deda visas pastangas, kad m...
Žyma:    Klaidinga
Tikimybės: {'Klaidinga': 0.9995, 'Manipuliatyvu': 0.0005, 'Teisinga': 0.0}

Tekstas: „The Economist" 2025 m. viršelio iššifravimas: Atskleista: globalistų kont...
Žyma:    Manipuliatyvu
Tikimybės: {'Klaidinga': 0.0508, 'Manipuliatyvu': 0.8602, 'Teisinga': 0.089}

Tekstas: Sparčiai šylantis klimatas reikalauja sprendimų. Būtent todėl Jungtinė Kara...
Žyma:    Teisinga
Tikimybės: {'Klaidinga': 0.0001, 'Manipuliatyvu': 0.0, 'Teisinga': 0.9999}

License

NewGenLTU OpenRAIL-M licencija, 1.0 versija

https://sitti.vdu.lt/en/newgenltu-openrail-m-license/

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

Model tree for VSSA-SDSA/LT_AI_FakeNews_BERT

Finetuned
(1)
this model