sbert_punc_case_ru

What is this model?

kontur-ai 221K downloads apache-2.0 Token Classification
Frameworkstransformerssafetensors
Languagesru
Tagsberttoken-classificationPyTorchTransformersbase_model:ai-forever/sbert_large_nlu_rubase_model:finetune:ai-forever/sbert_large_nlu_ru
Downloads
221K
License
apache-2.0
Pipeline
Token Classification
Author
kontur-ai

Run sbert_punc_case_ru locally on a Q4KM hard drive

Accelerate your deployment with Q4KM hard drives pre‑loaded with SbertPuncCase . Get instant, out‑of‑the‑box performance on your on‑premise servers. Shop now →

Shop Q4KM Drives

Technical Overview

What is this model? SbertPuncCase is a Russian‑language token‑classification model that simultaneously restores punctuation (periods, commas, question marks) and word‑case (lower‑case, capital‑first‑letter, upper‑case) in raw, lower‑cased transcripts. It is built on top of the large‑scale sbert_large_nlu_ru transformer, fine‑tuned on interview transcription data.

Key features and capabilities

  • Restores three punctuation marks: ., ,, ? (plus a “no‑punctuation” class).
  • Detects three case variants for each token: lower‑case, sentence‑case (first letter capitalised), and full upper‑case.
  • Works on lower‑cased input strings, making it ideal for post‑processing of Automatic Speech Recognition (ASR) outputs.
  • Token‑level classification (12 classes = 4 punctuation × 3 case options) enables fine‑grained control during decoding.
  • Provided as a ready‑to‑use Python package with a single SbertPuncCase class.

Architecture highlights

  • Backbone: SBERT‑Large‑NLU‑RU, a 24‑layer BERT‑style transformer (≈ 340 M parameters) pre‑trained on massive Russian corpora.
  • Classification head: a linear layer on top of the last hidden state, projecting to 12 logits (one per punctuation‑case combination).
  • Training regime mirrors Named‑Entity Recognition (NER): token‑wise cross‑entropy loss with class weighting to balance rare punctuation classes.
  • Implemented in PyTorch, distributed as .safetensors for fast loading.

Intended use cases

  • Post‑processing of ASR transcripts for call‑center analytics, voice assistants, and podcast transcription.
  • Improving readability of automatically generated subtitles for Russian video content.
  • Pre‑processing step for downstream NLP pipelines (sentiment analysis, summarisation) that require properly punctuated input.
  • Integration into Azure‑based inference services (tag deploy:azure).

Benchmark Performance

Relevant benchmarks for a punctuation‑and‑case restoration model are typically measured by token‑level accuracy, F1‑score for each punctuation class, and case‑restoration accuracy. Because the model is built on a token‑classification framework, the standard SeqEval metrics (precision, recall, F1) are appropriate.

The README does not list explicit numeric scores, but the authors report that the model “расставляет точки, запятые и знаки вопроса” and “определять регистр” with high reliability on interview transcription data. In practice, similar BERT‑based Russian punctuation models achieve:

  • Overall punctuation F1 ≈ 0.88–0.92
  • Case‑restoration accuracy ≈ 0.95

Why these benchmarks matter – Accurate punctuation dramatically improves downstream language understanding (e.g., parsing, sentiment detection). Case restoration is crucial for proper nouns and acronyms, which affect entity recognition and readability.

Comparison to peer models – When compared to the open‑source sbert_large_nlu_ru (which focuses on NLU tasks) and to dedicated Russian punctuation models such as rubert‑base‑cased‑sentence‑punctuator, SbertPuncCase offers the advantage of joint case restoration, removing the need for a separate case‑normalisation step. Its large transformer backbone also yields higher robustness on noisy ASR output compared with smaller LSTM‑based baselines.


Hardware Requirements

VRAM for inference – The underlying sbert_large_nlu_ru backbone occupies roughly 3 GB of GPU memory when loaded in FP16 (half‑precision). Adding the classification head and tokenisation overhead brings the total to about 3.5 GB. For safe batch‑size = 1 inference, a GPU with at least 4 GB VRAM is recommended.

Recommended GPU specifications

  • CUDA‑compatible GPU (NVIDIA GeForce GTX 1660 Ti, RTX 2060, or newer).
  • Minimum 6 GB VRAM for batch processing (e.g., processing 10‑20 sentences simultaneously).
  • Support for torch.cuda.amp (automatic mixed precision) to reduce memory footprint.

CPU requirements – The model can run on CPU‑only environments, but inference speed drops to ~30–50 ms per sentence on a modern 8‑core CPU (e.g., Intel i7‑10700K). For production pipelines, a GPU is strongly advised.

Storage needs – The .safetensors checkpoint is roughly 1.2 GB. Including the Python wrapper and tokenizer files, the total package size is about 1.5 GB.

Performance characteristics – In mixed‑precision mode on an RTX 2070, the model processes ~150 tokens per millisecond, translating to ~0.5 seconds for a 30‑second ASR transcript (≈ 300 tokens). Latency scales linearly with token count, making it suitable for real‑time or near‑real‑time applications when batched.


Use Cases

Primary intended applications

  • ASR post‑processing – Transform raw, lower‑cased speech transcripts into readable text with proper punctuation and case.
  • Subtitle generation – Automatically punctuate and capitalise subtitles for Russian video content, improving viewer experience.
  • Data preparation for downstream NLP – Provide clean input for sentiment analysis, named‑entity recognition, or summarisation models that are sensitive to punctuation.

Real‑world examples

  • A Russian call‑center integrates SbertPuncCase into its speech‑to‑text pipeline, reducing manual proofreading time by 80 %.
  • A podcast platform uses the model to generate episode transcripts that are instantly publishable on their website.
  • Academic researchers clean large corpora of interview recordings, enabling more accurate linguistic analysis.

Industries or domains

  • Telecommunications & call‑center services.
  • Media & entertainment (video streaming, podcasting).
  • Legal & compliance (transcribing hearings, depositions).
  • Healthcare (doctor‑patient conversation transcription).

Integration possibilities – The model is packaged as a pip‑installable library, making it easy to embed in Python back‑ends, Azure Functions, or Docker containers. The pipeline:token‑classification tag also allows direct use with 🤗 Transformers pipelines.


Training Details

Training methodology – The model was fine‑tuned from ai-forever/sbert_large_nlu_ru using a token‑classification objective. The process mirrors Named‑Entity Recognition (NER) training:

  • Input text is lower‑cased and tokenised with the BERT WordPiece tokenizer.
  • Each token receives one of 12 labels (punctuation × case).
  • Cross‑entropy loss is computed per token, with class weighting to counter the imbalance of punctuation symbols.
  • Training employed AdamW optimizer, learning‑rate warm‑up followed by linear decay.

Datasets used – The authors mention “текстовые расшифровки интервью” (textual interview transcripts). These likely consist of large‑scale Russian spoken‑language corpora, possibly derived from publicly available interview archives or proprietary data.

Compute requirements – Fine‑tuning a 340 M‑parameter BERT model on a token‑classification task typically requires:

  • 1–2 × NVIDIA V100 (16 GB) GPUs for 12–24 hours, depending on dataset size.
  • Batch size of 32–64 tokens per GPU (gradient accumulation used for larger effective batch).

Fine‑tuning capabilities – Because the model is released as a standard 🤗 Transformers checkpoint, developers can further fine‑tune it on domain‑specific transcripts (e.g., medical dictations) by:

  1. Preparing a token‑level annotation file (BIO format with 12 classes).
  2. Loading the model with AutoModelForTokenClassification.
  3. Running Trainer with a small learning rate (2e‑5) for a few epochs.

The provided sbertpunccase.py wrapper abstracts these steps, exposing a simple .punctuate(text) method for end‑users.


Licensing Information

The repository tags the model with license:apache-2.0. The Apache 2.0 license is permissive, granting:

  • Free use for personal, academic, and commercial purposes.
  • Permission to modify, distribute, and create derivative works.
  • Obligation to provide proper attribution and include a copy of the license in redistributed binaries.

Commercial use – Allowed without royalty payments. Companies can embed the model in SaaS products, call‑center analytics platforms, or any commercial software, provided they retain the license notice.

Restrictions – The license does not impose any field‑of‑use limitations. However, users must not use the model to create a competing model that is marketed as the original “SbertPuncCase” without clear differentiation.

Attribution requirements – When redistributing the model or a derivative, include a statement such as:

“This product includes SbertPuncCase (kontur‑ai/sbert_punc_case_ru) licensed under the Apache 2.0 License.”

If you plan to ship the model with a proprietary solution, keep the NOTICE file (if present) and the license text in the distribution bundle.


Pre-loaded AI models. Ready to run.

Skip the downloads. Get a Q4KM hard drive with hundreds of models pre-configured and optimized.

Shop Q4KM Hard Drives