Kabardian-Russian Translation Model (kbd-ru-opus)
Fine-tuned MarianMT model for Kabardian (East Circassian) to Russian translation.
Developed by: Eduard Emkuzhev
Model type: Neural Machine Translation (Marian Transformer)
Language pair: Kabardian (kbd) → Russian (ru)
License: CC BY-NC 4.0
Base model: Helsinki-NLP/opus-mt-en-ru (Apache 2.0)
Training data: adiga-ai/circassian-parallel-corpus (CC BY 4.0)
Model Description
This model translates from Kabardian to Russian. Kabardian is an endangered Northwest Caucasian language with approximately 500,000 speakers. It features complex polysynthetic morphology, 50+ consonants, and ergative-absolutive alignment.
Intended Use
Primary uses:
Language documentation and digitization
Educational content translation
Cultural heritage preservation
Low-resource NMT research
Supporting Kabardian speakers in accessing Russian content
Limitations:
Non-commercial use only (CC BY-NC 4.0)
Best performance on everyday language
May struggle with modern technical terms not in training data
Requires proper handling of Kabardian-specific character Ӏ (palochka)
Training Data
Subset: kbd_ru (Kabardian → Russian)
Total training examples: ~120K parallel sentence pairs
Dataset license: CC BY 4.0
Dataset author: Anzor Qunash (adiga.ai)
Content: Dictionary entries, folklore texts, proverbs, everyday expressions
Training Procedure
Base Model
Architecture: Marian Transformer (transformer-align)
Base: Helsinki-NLP/opus-mt-en-ru (English-Russian translation)
Transfer learning: Adapted from English-Russian to Kabardian-Russian
Hyperparameters
1 base_model : Helsinki - NLP/opus - mt - en - ru
2 training_examples : 200 , 000
3 epochs : 7
4 batch_size : 32
5 learning_rate : 3e-4
6 optimizer : AdamW
7 max_sequence_length : 128
8 warmup_steps : 500
9 weight_decay : 0.01
10 framework : transformers 4.36.0
Special Preprocessing
The model uses a special character mapping for training:
Kabardian Ӏ (palochka) → I (Latin I) during training
I → Ӏ restored during inference
This ensures better tokenization compatibility with the MarianMT tokenizer.
Performance
Benchmark Results
Metric Score BLEU 28.13 chrF 50.07 TER 63.50 Exact Match 6.4% Speed 27.1 examples/sec Avg Time 37ms/example
Test Configuration:
Test size: 1,000 examples
Sampling: Every 50th sentence from corpus
Generation: beam_search (num_beams=4)
Device: Apple M-series (MPS)
Seed: 42 (reproducible)
Translation Examples
Kabardian (Input) Russian (Output) Хабзэ зыхэмылъым жьантӀэр хуохъур кӀуапӀэ У того, у кого нет обычаев, почетное место становится проходным местом. КӀэщӀу жыпӀэмэ, я псэр зы чысэм илът. Короче говоря, их душа лежала в одном кошельке. Шухьэр Кесарие къалэм щынэсым, ӏэтащхьэм тхылъыр ир Когда враги добрались до города Кесария, в главе... щӀэныгъэм и унэтӀыныгъэщӀэм и ублакӀуэ учитель нового направления науки Сэтэней абы сагрисефэ щищӀауэ, нартыжьхэр щызэхуишэсауэ щызэхэст. Сатаней сидела, собирав старинных нартов, сделав там сагрисефию.
Note: The model successfully handles complex Kabardian morphology and preserves meaning in Russian translations.
How to Use
Installation
pip install transformers torch sentencepiece
Basic Usage
1 from transformers import MarianMTModel , MarianTokenizer
2
3 # Load model and tokenizer
4 model_name = "kubataba/kbd-ru-opus"
5 tokenizer = MarianTokenizer . from_pretrained ( model_name )
6 model = MarianMTModel . from_pretrained ( model_name )
7
8 # Translation function
9 def translate_kbd_to_ru ( text ) :
10 # Preprocess: Ӏ → I for tokenization
11 processed_text = text . replace ( 'Ӏ' , 'I' ) . replace ( 'ӏ' , 'I' )
12
13 inputs = tokenizer ( processed_text , return_tensors = "pt" , padding = True )
14 outputs = model . generate ( ** inputs , max_length = 128 , num_beams = 4 )
15 translation = tokenizer . decode ( outputs [ 0 ] , skip_special_tokens = True )
16 return translation
17
18 # Example
19 kabardian_text = "Сэлам!"
20 russian_text = translate_kbd_to_ru ( kabardian_text )
21 print ( f"KBD: { kabardian_text } " )
22 print ( f"RU: { russian_text } " )
Batch Translation
1 texts = [
2 "Уи пщэдджыжь фӀыуэ!" ,
3 "Сыт укъэпсэлъар?" ,
4 "Ди лъэпкъым и бзэр"
5 ]
6
7 # Preprocess all texts
8 processed_texts = [ t . replace ( 'Ӏ' , 'I' ) . replace ( 'ӏ' , 'I' ) for t in texts ]
9
10 inputs = tokenizer ( processed_texts , return_tensors = "pt" , padding = True , truncation = True )
11 outputs = model . generate ( ** inputs , max_length = 128 , num_beams = 4 )
12 translations = [ tokenizer . decode ( out , skip_special_tokens = True ) for out in outputs ]
13
14 for src , tgt in zip ( texts , translations ) :
15 print ( f"KBD: { src } → RU: { tgt } " )
Limitations and Bias
Complex morphology: Kabardian's polysynthetic structure may result in one-to-many mappings to Russian
Character handling: Requires preprocessing of palochka (Ӏ → I) before tokenization
Domain adaptation: Best performance on text types similar to training data
Technical vocabulary: May struggle with modern technical/specialized terms
Endangered language: Limited real-world validation data due to language endangerment
Dialectal variation: Trained on literary Kabardian; dialectal forms may produce unexpected results
Ethical Considerations
This model contributes to digital language preservation for Kabardian, an endangered language.
Important considerations:
Machine translation should complement, not replace, human translators
Cultural sensitivity is essential when working with indigenous languages
The model may not capture all nuances of Kabardian language and culture
Translations should be reviewed by native speakers for critical applications
Supporting Kabardian language education and preservation is crucial
About Kabardian Language
Kabardian (Adyghe-Kabardian, East Circassian) is a Northwest Caucasian language spoken by approximately 500,000 people in:
Kabardino-Balkaria (Russia)
Karachay-Cherkessia (Russia)
Turkey (diaspora communities)
Middle East (diaspora communities)
Linguistic features:
Phonology: 50+ consonant phonemes (one of the world's largest inventories)
Morphology: Polysynthetic - complex word formation
Syntax: Ergative-absolutive alignment
Writing: Cyrillic script + palochka (Ӏ) for glottal stop
Status: Endangered (UNESCO classification)
License and Attribution
This Model
License: Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)
Author: Eduard Emkuzhev
Year: 2025
Base Model
Model: Helsinki-NLP/opus-mt-en-ru
License: Apache 2.0
Authors: Language Technology Research Group at the University of Helsinki
Link: https://huggingface.co/Helsinki-NLP/opus-mt-en-ru
Training Dataset
Dataset: Circassian-Russian Parallel Corpus v1.0
License: CC BY 4.0
Author: Anzor Qunash (adiga.ai)
Link: https://huggingface.co/datasets/adiga-ai/circassian-parallel-corpus
Citation
If you use this model in your research, please cite:
1 @misc{emkuzhev2025kbdru,
2 author = {Eduard Emkuzhev},
3 title = {Kabardian-Russian Neural Machine Translation Model},
4 year = {2025},
5 publisher = {HuggingFace},
6 howpublished = {\url{https://huggingface.co/kubataba/kbd-ru-opus}}
7 }
Please also cite the base model and dataset:
1 @misc{helsinki-nlp-opus-en-ru,
2 author = {Language Technology Research Group at the University of Helsinki},
3 title = {OPUS-MT English-Russian Translation Model},
4 year = {2020},
5 publisher = {HuggingFace},
6 howpublished = {\url{https://huggingface.co/Helsinki-NLP/opus-mt-en-ru}}
7 }
8
9 @dataset{qunash2025circassian,
10 author = {Anzor Qunash},
11 title = {Circassian-Russian Parallel Text Corpus v1.0},
12 year = {2025},
13 publisher = {adiga.ai},
14 url = {https://huggingface.co/datasets/adiga-ai/circassian-parallel-corpus}
15 }
Acknowledgments
Helsinki-NLP team for the excellent OPUS-MT base models
Anzor Qunash (adiga.ai) for creating and publishing the Circassian-Russian Parallel Corpus
Kabardian language community for preserving and promoting their language
All contributors to Circassian language digitization efforts
Related Models
Technical Details
Framework: PyTorch + Transformers
Model size: ~300MB
Vocabulary size: ~62,5K tokens
Parameters: ~74M
Inference: CPU and GPU compatible
Optimal device: GPU or Apple Silicon (MPS)
Contact
For commercial licensing inquiries, please contact via email.
Model Card Authors: Eduard Emkuzhev
Last Updated: December 2025
Version: 1.0.1