Translation
Transformers
Safetensors
Ukrainian
m2m_100
text2text-generation
surzhyk
ukrainian
text-normalization
seq2seq
nllb
qlora
Instructions to use vlddshk/SyrzykAI with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use vlddshk/SyrzykAI with Transformers:
# Use a pipeline as a high-level helper # Warning: Pipeline type "translation" is no longer supported in transformers v5. # You must load the model directly (see below) or downgrade to v4.x with: # pip install "transformers<5.0.0" from transformers import pipeline pipe = pipeline("translation", model="vlddshk/SyrzykAI")# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForSeq2SeqLM tokenizer = AutoTokenizer.from_pretrained("vlddshk/SyrzykAI") model = AutoModelForSeq2SeqLM.from_pretrained("vlddshk/SyrzykAI", device_map="auto") - Notebooks
- Google Colab
- Kaggle
|
Download README.md from vlddshk/SyrzykAI: direct link, hf CLI and curl.
- Browser
- Download file 8.03 kB
-
https://huggingface.co/vlddshk/SyrzykAI/resolve/main/README.md
- Command line
-
hf download hf://vlddshk/SyrzykAI/README.md
-
curl -L -o README.md https://huggingface.co/vlddshk/SyrzykAI/resolve/main/README.md
8.03 kB
| language: | |
| - uk | |
| license: cc-by-nc-4.0 | |
| tags: | |
| - surzhyk | |
| - ukrainian | |
| - text-normalization | |
| - translation | |
| - seq2seq | |
| - nllb | |
| - qlora | |
| - transformers | |
| datasets: | |
| - vlddshk/syrzyk-dataset | |
| metrics: | |
| - chrf | |
| - bleu | |
| - cer | |
| - wer | |
| widget: | |
| - text: "Пойшлі на кофе с утра, а то якось грусно." | |
| example_title: "Приклад 1" | |
| - text: "Канєшно ми прийдемо на празнік" | |
| example_title: "Приклад 2" | |
| - text: "Я когда то куплю дом" | |
| example_title: "Приклад 3" | |
| - text: "Сколько можно це терпіть" | |
| example_title: "Приклад 4" | |
| - text: "Я нікогда так не думал!" | |
| example_title: "Приклад 5" | |
| - text: "Чому ми должні про це розговарювать?" | |
| example_title: "Приклад 6" | |
| # 🇺🇦 SyrzykAI: Модель перекладу з суржику на літературну українську | |
| <div align="center"> | |
| [](https://huggingface.co/facebook/nllb-200-distilled-600M) | |
| [](https://huggingface.co/datasets/vlddshk/syrzyk-dataset) | |
| [](https://opensource.org/licenses/cc-by-nc-4.0) | |
| </div> | |
| **SyrzykAI** — це нейромережева модель для автоматичного виправлення суржику, русизмів, кальок та граматичних інтерференцій у текстах. Модель перекладає (нормалізує) текст із суржику на чисту, нормативну літературну українську мову. | |
| Модель заснована на багатомовній архітектурі **NLLB-200** (600M параметрів) та донавчена за допомогою методології **QLoRA** на спеціалізованому паралельному корпусі українського суржику. Адаптери LoRA були злиті з базовою моделлю, що дозволяє легко використовувати її для 8-бітного інференсу без додаткових залежностей PEFT. | |
| ## Деталі моделі | |
| - **Базова модель:** `facebook/nllb-200-distilled-600M` | |
| - **Метод донавчання:** QLoRA (4-bit, `nf4`, `bfloat16`) + злиття ваг (Merge and Unload) | |
| - **Токенізатор:** Специфічні мовні токени `src_lang="ukr_Cyrl"`, `tgt_lang="ukr_Cyrl"` | |
| - **Навчальні дані:** [vlddshk/syrzyk-dataset](https://huggingface.co/datasets/vlddshk/syrzyk-dataset) (6,299 ретельно перевірених пар речень) | |
| ## Як використовувати (Quickstart) | |
| Для використання моделі рекомендується використовувати **8-бітну квантизацію** (через бібліотеку `bitsandbytes`), що суттєво зменшує використання VRAM та прискорює генерацію тексту. | |
| ### Встановлення залежностей | |
| ```bash | |
| pip install torch transformers accelerate bitsandbytes | |
| ``` | |
| ### Код для інференсу | |
| ```python | |
| import torch | |
| from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, BitsAndBytesConfig | |
| model_name = "vlddshk/SyrzykAI" | |
| # 1. Завантаження токенізатора з вказанням української мови | |
| tokenizer = AutoTokenizer.from_pretrained( | |
| model_name, | |
| src_lang="ukr_Cyrl", | |
| tgt_lang="ukr_Cyrl" | |
| ) | |
| # 2. Налаштування 8-бітної квантизації для економії пам'яті | |
| bnb_config = BitsAndBytesConfig(load_in_8bit=True) | |
| # 3. Завантаження моделі | |
| model = AutoModelForSeq2SeqLM.from_pretrained( | |
| model_name, | |
| quantization_config=bnb_config, | |
| device_map="auto" | |
| ) | |
| model.eval() | |
| # 4. Функція для перекладу | |
| def translate_surzhyk(text: str) -> str: | |
| inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=128) | |
| inputs = {k: v.to(model.device) for k, v in inputs.items()} | |
| with torch.no_grad(): | |
| outputs = model.generate( | |
| **inputs, | |
| max_new_tokens=128, | |
| num_beams=4, | |
| early_stopping=True | |
| ) | |
| return tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| # Тестування | |
| surzhyk_text = "Пойшлі на кофе с утра, а то якось грусно." | |
| print("Суржик:", surzhyk_text) | |
| print("Літературна:", translate_surzhyk(surzhyk_text)) | |
| # Очікуваний результат: Пішли на каву зранку, а то якось сумно. | |
| ``` | |
| ## Оцінка та метрики (Evaluation) | |
| Модель оцінюється за допомогою стандартних метрик перекладу та нормалізації тексту на тестовій вибірці (545 речень) датасету `Syrzyk-Dataset`: | |
| - **chrF**: Найкраще підходить для оцінки морфологічно багатих слов'янських мов, оскільки працює на рівні символьних n-грам (гарно ловить виправлені закінчення). | |
| - **SacreBLEU**: Стандартна метрика для машинного перекладу. | |
| - **CER (Character Error Rate)** та **WER (Word Error Rate)**: Допомагають зрозуміти ступінь необхідних змін у порівнянні з ідеальною літературною формою. | |
| *(Конкретні цифри бенчмарків оновлюються після кожного значного релізу моделі).* | |
| ## ⚠️ Обмеження моделі (Limitations & Biases) | |
| - **Специфічний домен:** Модель призначена **виключно** для виправлення суржику та русизмів. Її не слід використовувати як класичний перекладач з російської на українську. | |
| - **Регіональні особливості:** Суржик варіюється від регіону до регіону. Модель може не розпізнати специфічні локальні діалектизми (закарпатський, галицький тощо), які не належать до типової російсько-української інтерференції. | |
| - **Надмірна корекція:** Іноді модель може виправляти слова, які є рідковживаними, але все ж нормативними українськими, замінюючи їх на більш поширені синоніми. | |
| - **Довгі тексти:** Модель оптимізована на рівні речень (`max_length=128`). Для великих абзаців рекомендується розбивати текст на окремі речення перед генерацією. | |
| ## Автори та Citation | |
| Проект розроблено в рамках ініціативи **SyrzykAI**. | |
| Репозиторій датасету: [vlddshk/syrzyk-dataset](https://huggingface.co/datasets/vlddshk/syrzyk-dataset). | |
| Якщо ви використовуєте цю модель, будь ласка, посилайтеся на: | |
| ```bibtex | |
| @misc{vlddshk_syrzykai_2026, | |
| title={SyrzykAI: Text Normalization Model for Surzhyk-to-Ukrainian Translation}, | |
| author={vlddshk}, | |
| year={2026}, | |
| publisher={Hugging Face}, | |
| howpublished={\url{https://huggingface.co/vlddshk/SyrzykAI}}, | |
| license={cc-by-nc-4.0} | |
| } | |
| ``` | |