m2m100-ukr-verbalization-ct2

This is the CTranslate2-optimized version of skypro1111/m2m100-ukr-verbalization.

About CTranslate2 Optimization

CTranslate2 is an optimized inference engine for Transformer models that provides much faster inference than standard implementations. This repository contains the m2m100-418M model for Ukrainian verbalization, optimized for production deployment.

Key advantages:

  • Faster inference: 3-5x speed improvement over the standard Transformers implementation
  • Lower memory footprint: Uses efficient int8/float16 quantization
  • Better hardware utilization: Optimized for both CPU and GPU
  • Efficient batching: Improved batch processing for production workloads

Usage

import os
import ctranslate2
from transformers import M2M100Tokenizer

def process_sentence(translator, tokenizer, sentence: str):
    # Tokenize input
    source = tokenizer.convert_ids_to_tokens(tokenizer.encode(sentence))
    target_prefix = [tokenizer.lang_code_to_token["uk"]]
    
    # Run inference
    results = translator.translate_batch(
        [source],
        target_prefix=[target_prefix],
        beam_size=1,
        num_hypotheses=1,
        use_vmap=True,
    )
    
    # Get target tokens and decode
    target = results[0].hypotheses[0][1:]  # Remove language token
    return tokenizer.decode(tokenizer.convert_tokens_to_ids(target))

# Initialize translator with optimizations
translator = ctranslate2.Translator(
    "path/to/m2m100-ukr-verbalization-ct2",
    device="cuda",
    compute_type="int8_float16",  # Options: int8, int8_float16, float16, float32
    intra_threads=16,
)

# Load tokenizer from the original model
tokenizer = M2M100Tokenizer.from_pretrained("skypro1111/m2m100-ukr-verbalization")
tokenizer.src_lang = "uk"

# Example
text = "Моя бабуся народилася 07.11.1919, у важкий післявоєнний час."
result = process_sentence(translator, tokenizer, text)
print(result)
# Output: "Моя бабуся народилася сьомого листопада тисяча дев'ятсот дев'ятнадцятого року, у важкий післявоєнний час."

Performance Benchmark

Original Model (RTX 3090Ti, FP16)

1. Input : Моя бабуся народилася 07.11.1919, у важкий післявоєнний час.
   Output: Моя бабуся народилася сьомого листопада тисяча дев'ятсот дев'ятнадцятого року, у важкий післявоєнний час.
   Time  : 0.531 seconds

2. Input : Зустріч призначена на 15:30 12.05.2025 у конференц-залі №3.
   Output: Зустріч призначена на пʼятнадцяту тридцять 12.05.2025 у конференц-залі номер три.
   Time  : 0.434 seconds

3. Input : Телефонуйте нам за номером +380 (44) 123-45-67 або 0800 500 123.
   Output: Телефонуйте нам за номером плюс триста вісімдесят (сорок чотири) сто двадцять три, сорок пʼять, шістдесят сім або нуль вісімсот пʼятсот, сто двадцять три.
   Time  : 0.828 seconds

4. Input : Температура повітря сьогодні становить +25°C, а тиск 750 мм.рт.ст.
   Output: Температура повітря сьогодні становить плюс двадцять п'ять градусів Цельсія, а тиск сімсот п'ятдесят міліметрів р.т.ст.
   Time  : 0.586 seconds

5. Input : ТОВ «Мрія» було засновано 28/06/2022 з початковим капіталом 50 тис. грн.
   Output: Товариство з обмеженою відповідальністю «Мрія» було засновано двадцять восьмого червня дві тисячі двадцять другого року з початковим капіталом пʼятдесят тисяч гривень.
   Time  : 0.719 seconds

6. Input : Швидкість вітру 15 м/с, видимість 10 км, вологість 65%.
   Output: Швидкість вітру п'ятнадцять метрів за секунду, видимість десять кілометрів, вологість шістдесят п'ять відсотків.
   Time  : 0.612 seconds

7. Input : Потяг №743 Київ-Львів відправляється о 08:45 з платформи №2.
   Output: Потяг номер сімсот сорок три Київ-Львів відправляється о восьмій годині сорок пʼять хвилин з платформи номер два.
   Time  : 0.527 seconds

8. Input : Ціна на пальне зросла на 2,5 грн/л і становить 54,99 грн.
   Output: Ціна на пальне зросла на два з половиною гривні за літр і становить п'ятдесят чотири гривні дев'яносто дев'ять копійок.
   Time  : 0.634 seconds

9. Input : Площа квартири 75,5 м², висота стелі 2,75 м.
   Output: Площа квартири сімдесят п'ять цілих п'ять десятих квадратних метрів, висота стелі два цілих сімдесят п'ять сотих метрів.
   Time  : 0.582 seconds

10. Input : Відстань між містами становить 450 км або 280 миль.
    Output: Відстань між містами становить чотириста п'ятдесят кілометрів або двісті вісімдесят миль.
    Time  : 0.453 seconds

Total time: 5.90 seconds
Average time per sentence: 0.590 seconds

CTranslate2 Model (RTX 3090Ti, INT8_FLOAT16)

1. Input : Моя бабуся народилася 07.11.1919, у важкий післявоєнний час.
   Output: Моя бабуся народилася сьомого листопада тисяча дев'ятсот дев'ятнадцятого року, у важкий післявоєнний час.
   Time  : 0.143 seconds

2. Input : Зустріч призначена на 15:30 12.05.2025 у конференц-залі №3.
   Output: Зустріч призначена на пʼятнадцяту тридцять 12.05.2025 у конференц-залі номер три.
   Time  : 0.144 seconds

3. Input : Телефонуйте нам за номером +380 (44) 123-45-67 або 0800 500 123.
   Output: Телефонуйте нам за номером плюс триста вісімдесят (сорок чотири) сто двадцять три, сорок пʼять, шістдесят сім або нуль вісімсот пʼятсот, сто двадцять три.
   Time  : 0.253 seconds

4. Input : Температура повітря сьогодні становить +25°C, а тиск 750 мм.рт.ст.
   Output: Температура повітря сьогодні становить плюс двадцять п'ять градусів Цельсія, а тиск сімсот п'ятдесят міліметрів р.т.ст.
   Time  : 0.148 seconds

5. Input : ТОВ «Мрія» було засновано 28/06/2022 з початковим капіталом 50 тис. грн.
   Output: Товариство з обмеженою відповідальністю «Мрія» було засновано двадцять восьмого червня дві тисячі двадцять другого року з початковим капіталом пʼятдесят тисяч гривень.
   Time  : 0.186 seconds

6. Input : Швидкість вітру 15 м/с, видимість 10 км, вологість 65%.
   Output: Швидкість вітру п'ятнадцять метрів на секунду, видимість десять кілометрів, вологість шістдесят п'ять відсотків.
   Time  : 0.157 seconds

7. Input : Потяг №743 Київ-Львів відправляється о 08:45 з платформи №2.
   Output: Потяг номер сімсот сорок три Київ-Львів відправляється о восьмій годині сорок пʼять хвилин з платформи номер два.
   Time  : 0.137 seconds

8. Input : Ціна на пальне зросла на 2,5 грн/л і становить 54,99 грн.
   Output: Ціна на пальне зросла на два з половиною гривні за літр і становить п'ятдесят чотири гривні дев'яносто дев'ять копійок.
   Time  : 0.164 seconds

9. Input : Площа квартири 75,5 м², висота стелі 2,75 м.
   Output: Площа квартири сімдесят п'ять цілих п'ять десятих квадратних метрів, висота стелі два цілих сімдесят п'ять сотих метра.
   Time  : 0.148 seconds

10. Input : Відстань між містами становить 450 км або 280 миль.
    Output: Відстань між містами становить чотириста п'ятдесят кілометрів або двісті вісімдесят миль.
    Time  : 0.115 seconds

11. Input : Станом на 7:00 15 квітня 2025 року температура повітря становить +18°C, вологість 60%.
    Output: Станом на сьому нуль-нуль пʼятнадцяте квітня дві тисячі двадцять пʼятого року температура повітря становить плюс вісімнадцять градусів Цельсія, вологість шістдесят відсотків.
    Time  : 0.206 seconds

Total time: 1.80 seconds
Average time per sentence: 0.164 seconds

The CTranslate2 optimization provides significant performance improvements while maintaining the same quality of verbalization.

Model Information

For detailed information about the model capabilities, training data, and usage examples, please refer to the original model: skypro1111/m2m100-ukr-verbalization

License

This model is released under the MIT License, in line with the original m2m100-ukr-verbalization model.

Downloads last month
69
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for skypro1111/m2m100-ukr-verbalization-ct2

Finetuned
(1)
this model

Dataset used to train skypro1111/m2m100-ukr-verbalization-ct2

Spaces using skypro1111/m2m100-ukr-verbalization-ct2 2