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
Manipuliatyvuclass 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
Manipuliatyvuklasė 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
- Downloads last month
- 6
Model tree for VSSA-SDSA/LT_AI_FakeNews_BERT
Base model
VSSA-SDSA/LT-MLKM-modernBERT