/ Модель

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

Контекст
1 024 токена
Параметры
464 млн
Лицензия
CC BY-NC 4.0
Архитектура
m2m_100 · dense
Базовая модель
nllb-200-distilled-600M
Опубликована
23 июл 2026

nllb-200-distilled-600m-rus-ruskaromani

ПереводТекст → текст3 профессии

Модель на базе NLLB-200 для перевода предложений между русским языком и руска-романи кириллицей.

15скачиваний за 30 дней1лайквеса обновлены27 июл 2026

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Текст» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

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

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

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

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

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

midwestcyr/nllb-200-distilled-600m-rus-ruskaromani — модель перевода с русского языка на руска-романи и обратно, созданная на основе facebook/nllb-200-distilled-600M. Разработчик дообучил её с помощью LoRA на параллельных предложениях, а затем объединил адаптер с базовыми весами; модель загружается без отдельного шага слияния или зависимости PEFT. Для руска-романи добавлен пользовательский код ruk_Cyrl, а его эмбеддинг инициализирован на основе rom_Latn.

Модель предназначена для перевода предложений между русским и руска-романи, диалектом романи, связанным с руска-рома и записываемым кириллицей. В карточке указаны архитектура M2M100, около 463,7 млн параметров и контекст 1024 токена. Обучение и оценка проводились на параллельных предложениях из Русского национального корпуса; для проверки использовалась метрика SacreBLEU.

Объём данных для этой языковой пары ограничен, поэтому качество на длинных, сложных или тематически отличающихся от обучающих данных предложениях может быть нестабильным. Код ruk_Cyrl нестандартен и требует токенизатора из этого репозитория. Лицензия — CC BY-NC 4.0, допускающая использование с указанием авторства, но не коммерческое использование.

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

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

Ограничения

Данные для этой низкоресурсной языковой пары ограничены, поэтому качество на длинных, сложных или вне домена обучения предложениях может быть нестабильным. Пользовательский код языка ruk_Cyrl требует токенизатора из репозитория и не распознаётся стандартными инструментами NLLB без него.

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

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

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

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

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

Открыть на Hugging Face

NLLB Russian ↔ Ruska Romani (Merged Model)

Full, ready-to-use translation model for Russian ↔ Ruska Romani, fine-tuned from facebook/nllb-200-distilled-600M using LoRA, then merged into the base weights. No PEFT dependency or merge step required — load and run directly.

Ruska Romani is not natively supported by NLLB-200. A custom language code, ruk_Cyrl, was added to the tokenizer to represent it, with its embedding warm-started from rom_Latn (Vlax Romani, the closest existing NLLB language) before fine-tuning.

If you'd prefer the lightweight LoRA adapter instead (e.g. to compose with other adapters, or minimize download size), see the companion repo: midwestcyr/nllb-200-distilled-600m-rus-ruskaromani-lora.

Model details

  • Base model: facebook/nllb-200-distilled-600M
  • Fine-tuning method: LoRA (attention and feed-forward projections), merged into the base model weights after training
  • New language code: ruk_Cyrl (Ruska Romani, Cyrillic script)
  • Translation direction trained: rus_Cyrl ↔ ruk_Cyrl
  • Training data: parallel Russian / Ruska Romani sentence pairs extracted from a JSON corpus, split 95% train / 5% validation
  • Evaluation metric: SacreBLEU on the held-out validation split

Data

Ruska Romani is the dialect of the Romani language attributed to Ruska Roma, the largest subgroup of Romani people in Russia.

Training and evaluation data consists of parallel Russian / Ruska Romani sentence pairs from the Russian National Corpus. The data curation process is described in The Parallel Corpus of Russian and Ruska Romani Languages. Please cite that paper in any publication using this model or the underlying corpus.

Training

The model was fine-tuned using the Hugging Face Seq2SeqTrainer with LoRA adapters on parallel Russian ↔ Ruska Romani sentence pairs.

Training configuration

ParameterValue
Epochs8
Per-device train batch size4
Per-device evaluation batch size4
Gradient accumulation steps2
Effective training batch size8
Learning rate3e-4
Mixed precisionFP16
Evaluation strategyEvery epoch
Checkpoint savingEvery epoch
Logging frequencyEvery 50 steps
Generation during evaluationEnabled
Maximum generation length256
Best model selectionHighest validation SacreBLEU
TrainerHugging Face Seq2SeqTrainer

Training results

MetricValue
Total epochs completed8
Total optimization steps7,432
Best validation SacreBLEU22.93
Best model epoch8

The best-performing checkpoint was automatically restored at the end of training (load_best_model_at_end=True) using the validation SacreBLEU score as the model selection criterion.

Usage

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
import torch

MODEL_REPO = "midwestcyr/nllb-200-distilled-600m-rus-ruskaromani"

device = torch.device("cuda" if torch.cuda.is_available() else
                       "mps" if torch.backends.mps.is_available() else "cpu")

tokenizer = AutoTokenizer.from_pretrained(MODEL_REPO)
model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_REPO).to(device)
model.eval()

def translate(text, src_lang, tgt_lang, max_length=128, num_beams=5):
    new_lang_id = tokenizer.convert_tokens_to_ids(tgt_lang)
    tokenizer.src_lang = src_lang
    inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=max_length).to(device)
    generated = model.generate(
        **inputs,
        forced_bos_token_id=new_lang_id,
        max_length=max_length,
        num_beams=num_beams,
    )
    return tokenizer.batch_decode(generated, skip_special_tokens=True)[0]

# Russian -> Ruska Romani
src_lang = "rus_Cyrl"
tgt_lang = "ruk_Cyrl"
print(translate("Владимир разорвал их, не читая.", src_lang, tgt_lang))
### Output: Владимиро розрискирдя лэн на гины.

# Ruska Romani -> Russian
src_lang = "ruk_Cyrl"
tgt_lang = "rus_Cyrl"
print(translate("Владимиро розрискирдя лэн на гины.", src_lang, tgt_lang))
### Output: Владимир разорвал их, не читая.

Batch translation

def translate_batch(texts, max_length=128, num_beams=5, batch_size=16):
    tokenizer.src_lang = "rus_Cyrl"
    results = []
    for i in range(0, len(texts), batch_size):
        batch = texts[i:i + batch_size]
        inputs = tokenizer(batch, return_tensors="pt", padding=True,
                            truncation=True, max_length=max_length).to(device)
        generated = model.generate(
            **inputs,
            forced_bos_token_id=new_lang_id,
            max_length=max_length,
            num_beams=num_beams,
        )
        results.extend(tokenizer.batch_decode(generated, skip_special_tokens=True))
    return results

Limitations

  • Low-resource pair: dataset size is modest; translation quality on out-of-domain or long/complex sentences may be inconsistent.
  • Custom language code: ruk_Cyrl is not a standard NLLB/FLORES code and won't be recognized by other NLLB-based tools without the tokenizer shipped in this repo.

Citation / acknowledgment

Ruska Romani and Russian Parallel Corpus

@inproceedings{koncha-etal-2024-parallel,
    title = "The Parallel Corpus of {R}ussian and Ruska {R}omani Languages",
    author = "Koncha, Kirill  and
      Kukanova, Abina  and
      Tatiana, Kazakova  and
      Rozovskaya, Gloria",
    editor = "Serikov, Oleg  and
      Voloshina, Ekaterina  and
      Postnikova, Anna  and
      Muradoglu, Saliha  and
      Le Ferrand, Eric  and
      Klyachko, Elena  and
      Vylomova, Ekaterina  and
      Shavrina, Tatiana  and
      Tyers, Francis",
    booktitle = "Proceedings of the Third Workshop on NLP Applications to Field Linguistics",
    month = aug,
    year = "2024",
    address = "Bangkok, Thailand",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2024.fieldmatters-1.1/",
    doi = "10.18653/v1/2024.fieldmatters-1.1",
    pages = "1--5"
}

Memory-efficient NLLB-200: Language-specific Expert Pruning of a Massively Multilingual Machine Translation Model

@inproceedings{koishekenov-etal-2023-memory,
    title = "Memory-efficient {NLLB}-200: Language-specific Expert Pruning of a Massively Multilingual Machine Translation Model",
    author = "Koishekenov, Yeskendir  and
      Berard, Alexandre  and
      Nikoulina, Vassilina",
    editor = "Rogers, Anna  and
      Boyd-Graber, Jordan  and
      Okazaki, Naoaki",
    booktitle = "Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
    month = jul,
    year = "2023",
    address = "Toronto, Canada",
    publisher = "Association for Computational Linguistics",
    url = "https://aclanthology.org/2023.acl-long.198/",
    doi = "10.18653/v1/2023.acl-long.198",
    pages = "3567--3585",
    abstract = "The recently released NLLB-200 is a set of multilingual Neural Machine Translation models that cover 202 languages. The largest model is based on a Mixture of Experts architecture and achieves SoTA results across many language pairs. It contains 54.5B parameters and requires at least four 32GB GPUs just for inference. In this work, we propose a pruning method that enables the removal of up to 80{\%} of experts without further finetuning and with a negligible loss in translation quality, which makes it feasible to run the model on a single 32GB GPU. Further analysis suggests that our pruning metrics can identify language-specific experts."
}

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

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

GPU в ailist

Универсальный рантайм

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

Подбираем GPU…

Класс архитектуры
M2M100ForConditionalGeneration
Ревизия весов
14d27e9

0 моделей