/ Модель

Характеристики

Контекст
514 токенов
Параметры
178 млн
Лицензия
CC BY-SA 4.0
Архитектура
xlm-roberta · dense
Базовая модель
litlat-bert
Опубликована
5 июл 2026

litlat-bert-lithuanian-morphology-full

Заполнение пропусковТекст → текст

Модель размечает литовский текст частями речи и морфологическими признаками UD, а также определяет леммы слов.

16скачиваний за 30 дней0лайковвеса обновлены5 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Это дообученная модель EMBEDDIA/litlat-bert для морфологической разметки литовского текста. Она использует архитектуру XLM-RoBERTa и выдаёт универсальные части речи UPOS, полный набор морфологических признаков UD и леммы; для лемматизации предусмотрена отдельная голова, обученная на 2,1 млн золотых лемм MATAS. Модель рассчитана на обработку уже токенизированного текста.

В тесте UD_Lithuanian-ALKSNIS модель показала F1 93,2 для UPOS, 84,1 для морфологических признаков и 94,7 для лемм. Для CPU доступна ONNX INT8-версия со скоростью 921 токен в секунду. Для корректной загрузки автор рекомендует использовать включённую ONNX-модель: стандартный AutoModelForTokenClassification не поддерживает её дополнительную голову лемматизации. Лицензия — CC BY-SA 4.0.

Сценарии применения

  • лемматизация литовских текстов
  • определение частей речи в литовском языке
  • полная морфологическая разметка литовских предложений
  • подготовка литовских корпусов для лингвистического анализа

Ограничения

Модель ожидает токенизированный текст. Стандартный AutoModelForTokenClassification загружает чекпойнт некорректно из-за отдельной головы лемматизации; для использования следует применять включённую ONNX-модель.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Lithuanian complete-annotation tagger: UPOS + full FEATS + lemmas

The complete-annotation member of the family: full UD morphological features (Definite, Polarity, PronType, … — not just agreement keys) and a real lemmatizer (edit-script head trained on 2.1M gold MATAS lemmas). Fine-tuned from EMBEDDIA/litlat-bert.

Which model do I want?

modelbest foremits
…-morphologyhighest UPOS/slots accuracyUPOS + core FEATS
this onecomplete annotations incl. lemmasfull UD FEATS + lemmas
…-morphology-vduaccentuation pipelinestraditional-grammar categories

Benchmarks (measured)

Official CoNLL-18 evaluation, gold tokenization, UD_Lithuanian-ALKSNIS test:

metric (F1)this modelUDPipe 2 reference
UPOS93.295.2
UFeats84.189.1
Lemmas94.792.9

The remaining UFeats gap vs UDPipe is dominated by peripheral-key conventions not derivable from the training sources (Aspect, Definite on numerals, Hyph). Same-protocol agreement-features projection: UPOS 96.7 / UFeats 89.1. Speed: 921 tok/s (ONNX INT8, single CPU).

Usage (verified) — note: custom two-head architecture

⚠️ AutoModelForTokenClassification.from_pretrained will not load this checkpoint correctly (it has a second, lemma-script head). Use the bundled ONNX model:

import json, numpy as np, onnxruntime as ort
from huggingface_hub import snapshot_download
from transformers import AutoTokenizer

d = snapshot_download("alexbalandi/litlat-bert-lithuanian-morphology-full")
tok = AutoTokenizer.from_pretrained(d)
sess = ort.InferenceSession(f"{d}/onnx/model_quantized.onnx",
                            providers=["CPUExecutionProvider"])
cfg = json.load(open(f"{d}/head_config.json", encoding="utf-8"))
labels, scripts = cfg["labels"], cfg["lemma_scripts"]

def apply_script(form, script):          # decode the lemma edit-script
    if script.startswith("W|"): return script.split("|", 1)[1]
    _, lower_first, strip, suffix = script.split("|", 3)
    base = (form[0].lower() + form[1:]) if int(lower_first) and form else form
    stem = base[:-int(strip)] if int(strip) else base
    return stem + suffix

words = ["Vilniuje", "gyvena", "graži", "mano", "sesuo"]
enc = tok(words, is_split_into_words=True, return_tensors="np")
label_logits, lemma_logits = sess.run(
    None, {k: v for k, v in enc.items() if k in ("input_ids", "attention_mask")})
seen = set()
for pos, wid in enumerate(enc.word_ids(0)):
    if wid is None or wid in seen: continue
    seen.add(wid)
    print(words[wid],
          apply_script(words[wid], scripts[int(lemma_logits[0, pos].argmax())]),
          labels[int(label_logits[0, pos].argmax())])
# Vilniuje Vilnius PROPN|Case=Loc|Gender=Masc|Number=Sing
# gyvena   gyventi VERB|Mood=Ind|Number=Sing|Person=3|Polarity=Pos|Tense=Pres|VerbForm=Fin
# mano     aš      PRON|Case=Gen|Definite=Ind|Number=Sing|Person=1|PronType=Prs
# ...

pytorch_model.bin holds the custom-wrapper state dict for continued training with the project's tooling (local/tagger-hf/head_modeling.py::load_custom_model).

Training data & lineage

Gold corpora only, no NC-licensed model anywhere in the lineage: MATAS v3.0 (CC BY 4.0) with full UD features reconstructed from its MULTEXT-East codes and Jablonskis XPOS, + UD_Lithuanian-ALKSNIS (CC BY-SA 4.0); contextual gaps filled by iterated constrained-decoding self-training; gold lemmas throughout for the lemma head.

License & attribution

CC BY-SA 4.0 (inherited from litlat-bert and ALKSNIS). Please credit: MATAS v3.0 (Rimkutė, Bielinskienė, Boizou, Dadurkevičius, Kovalevskaitė, Utka; CLARIN-LT), UD_Lithuanian-ALKSNIS (VDU), litlat-bert (Ulčar & Robnik-Šikonja, EMBEDDIA).

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · fill-mask

Можно запустить

Подбираем GPU…

Класс архитектуры
XLMRobertaForMaskedLM
Ревизия весов
16adc12

0 моделей