/ Модель

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

Контекст
512 токенов
Параметры
139 млн
Лицензия
MIT
Архитектура
bert · dense
Базовая модель
latin-bert
Опубликована
4 авг 2026

latin-asr-postprocessor

Разметка токеновТекст → label3 профессии

BERT-модель для восстановления заглавных букв и пунктуации в результатах распознавания речи на классической латыни.

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

Бенчмарки

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

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

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

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

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

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

Latin ASR Post-Processor — модель на базе BERT, разработанная для восстановления регистра и пунктуации в неформатированных результатах распознавания классической латыни. Она дообучена на latincy/latin-bert и предназначена для использования после распознавания речи, в том числе после njand/wav2vec2-xls-r-latin. Модель выполняет разметку токенов 14 составными классами: сочетаниями регистра слова и знака пунктуации в конце токена.

Модель принимает текст и возвращает метки токенов, по которым можно восстановить форматированный текст. Размер — 138,5 млн параметров, длина контекста — до 512 токенов. В README приведены результаты на корпусах классической латыни: точность восстановления регистра выше, чем пунктуации. Доступны варианты PyTorch FP32, ONNX FP32 и ONNX INT8; для INT8 отмечено снижение качества пунктуации и макро-F1. Лицензия — MIT.

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

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

Ограничения

Качество восстановления пунктуации ниже качества восстановления регистра; для ONNX INT8 README указывает заметное ухудшение макро-F1 и точности пунктуации. Предназначена для текста классической латыни и требует предварительной нормализации входа в соответствии с конвейером из README.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

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

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

Открыть на Hugging Face

Latin ASR Post-Processor (Casing & Punctuation Restoration)

An Inverse Text Normalization (ITN) transformer model fine-tuned to convert unformatted, raw Latin Automatic Speech Recognition (ASR) outputs into fully formatted, classical Latin text. It simultaneously restores capitalization and trailing punctuation using a 14-class composite sequence labeling schema.


📌 Quick Links


🛠️ Pipeline Architecture & Preprocessing

This model is intended to be used directly downstream of the acoustic model njand/wav2vec2-xls-r-latin.

Because raw ASR models emit stream-of-consciousness text (lowercased, space-separated, and unpunctuated), the text must pass through an input normalization pipeline before being fed into this model for casing and punctuation restoration.

+-----------------------+     +-------------------------------+     +-------------------------------+
|  Raw Audio Waveform   | --> |  njand/wav2vec2-xls-r-latin   | --> | Preprocessing & Normalization |
+-----------------------+     +-------------------------------+     +-------------------------------+
                                                                                    |
                                                                                    v
+-----------------------+     +-------------------------------+     +-------------------------------+
| Formatted Text Output | <-- |   Latin ASR Post-Processor    | <-- |  Custom CLTK Tokenization     |
+-----------------------+     +-------------------------------+     +-------------------------------+

Input Preprocessing Requirements

To prepare raw transcript outputs for inference, apply the following sequence of transformations:

  1. Macron Stripping: Remove all vowel length diacritics (e.g., ā, ē, ī, ō, ū, ȳ → a, e, i, o, u, y).
  2. Orthographic Standardization: Standardize consonant/vowel variants:
    • Convert j → i and v → u.
    • Handle orthographic exceptions (e.g., ejicio → eicio).
  3. Custom CLTK Word Tokenization: Run the normalized string through a version of the CLTK (Classical Language Toolkit v0) Latin word tokenizer.

    Note: Because official CLTK v0 tokenization scripts are unmaintained, a bespoke implementation of the tokenizer was executed dynamically during training preprocessing rather than being pre-applied to the static dataset.


🚀 Quickstart & Inference Utility

Below is a complete Python script demonstrating how to prepare raw ASR output and run inference using the post-processing pipeline.

from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline

PUNCT_MAP = {
    "NONE": "",
    "COMMA": ",",
    "PERIOD": ".",
    "SEMICOLON": ";",
    "COLON": ":",
    "QUESTION": "?",
    "EXCLAMATION": "!",
}

def format_token(word: str, tag: str) -> str:
    """Applies composite ITN tag (e.g., 'TITLE_COMMA') to a word token."""
    parts = tag.split("_")
    if len(parts) != 2:
        return word

    casing, punct = parts[0], parts[1]

    if casing == "TITLE":
        word = word.capitalize()
    elif casing == "LOWER":
        word = word.lower()

    return f"{word}{PUNCT_MAP.get(punct, '')}"

def restore_latin_text(pipe, raw_text: str) -> str:
    """Runs inference and reconstructs formatted Latin text."""
    predictions = pipe(raw_text, aggregation_strategy="first")
    formatted_words = [
        format_token(pred["word"].strip(" "), pred["entity_group"])
        for pred in predictions
    ]
    return " ".join(formatted_words)

# 1. Load pipeline
model_id = "njand/latin-asr-postprocessor"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForTokenClassification.from_pretrained(model_id)

itn_pipe = pipeline("token-classification", model=model, tokenizer=tokenizer)

# 2. Test reconstruction with preprocessed ASR output
raw_asr_input = "gallia est omnis divisa in partes tres quarum unam incolunt belgae"
print(restore_latin_text(itn_pipe, raw_asr_input))
# Output: "Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae."


🏷️ Composite Label Schema

Target labels utilize a 14-class composite sequence schema that pairs Casing state with Trailing Punctuation state:

$$\text{Label} = \text{Casing} \times \text{Punctuation}$$

  • Casing Tags (2): LOWER, TITLE
  • Punctuation Tags (7): NONE, COMMA, PERIOD, SEMICOLON, COLON, QUESTION, EXCLAMATION

⚙️ Model Variants & Optimization

To facilitate production deployment on CPU-based infrastructure, this repository provides the model in three formats:

FormatPrecisionFile SizeLatency (P50)Recommended Use Case
PyTorchFP32443 MB-Training, fine-tuning, and PyTorch pipelines
ONNXFP32443 MB21.5 msProduction (Maximum Accuracy)
ONNX QuantizedINT8188 MB9.7 msLow-Latency & Edge CPU

Performance vs. Precision Trade-off: While INT8 dynamic quantization yields a 2.2× speedup (P50) and cuts RAM usage by 57.5%, top-line accuracy (92.16% → 91.03%) hides a severe drop in macro performance:

  • Macro F1 Collapse: Drops from 65.19% to 50.00%. Dynamic weight quantization compresses logit decision boundaries for rare token tags.
  • Punctuation Degradation: Punctuation F1 falls 10.66 percentage points (69.09% → 58.43%), causing increased missing or misclassified commas, colons, and sentence boundaries.
  • Casing Stability: Capitalization F1 remains mostly intact (91.71% → 89.38%).

Recommendation: Use ONNX FP32 for production pipelines where text formatting and punctuation precision are critical. Use ONNX INT8 in latency-critical environments where speed and memory constraints outweigh exact punctuation recovery.


📊 Benchmarks & Performance (Epoch 7 - Best Checkpoint)

Evaluated on a 95/5 train/holdout split across diverse Classical Latin literary and historical corpora.

Overall Summary Metrics

MetricScore
Overall Accuracy92.16%
Macro F10.6523
Precision62.28%
Recall69.43%
Validation Loss0.2592

🎯 Sub-Task Breakdown

TaskAccuracyF1 Score
Casing Restoration98.35%0.9171
Punctuation Insertion93.67%0.6908

📈 Training Progression

The model was trained over 9 epochs fine-tuning latincy/latin-bert. Model weights from Epoch 7 were selected based on optimal overall F1.

EpochTrain LossVal LossOverall F1Overall AccCasing AccPunct Acc
10.62840.28830.609791.05%98.08%92.79%
20.56170.27010.627591.60%98.19%93.26%
30.51500.26180.638891.91%98.27%93.50%
40.48550.26070.645592.04%98.30%93.60%
50.46520.25790.644092.12%98.33%93.65%
60.45020.25820.646292.15%98.34%93.66%
70.43510.25920.652392.16%98.35%93.67%
80.42620.25980.649592.24%98.36%93.75%
90.41720.26010.650792.21%98.37%93.71%

⚡ Hardware & Environmental Footprint

  • Hardware Infrastructure: NVIDIA L4 GPU via Modal
  • Training Time: 3.82 hours
  • Estimated Carbon Emissions: 0.1797 kg CO₂eq

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
BertForTokenClassification
Ревизия весов
317c6f8

0 моделей