--- license: mit datasets: - skypro1111/ubertext-2-news-verbalized language: - uk base_model: - skypro1111/m2m100-ukr-verbalization pipeline_tag: text2text-generation library_name: transformers widget: - text: Очікувалось, що цей застосунок буде запущено о 11 ранку 22.08.2025, але розробники затягнули святкування і запуск був відкладений на 2 тижні. --- # m2m100-ukr-verbalization-ct2 This is the CTranslate2-optimized version of [skypro1111/m2m100-ukr-verbalization](https://huggingface.co/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 ```python 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](https://huggingface.co/skypro1111/m2m100-ukr-verbalization) ## License This model is released under the MIT License, in line with the original m2m100-ukr-verbalization model.