Darmm Text Generation Kazakh

Kazakh text generation model fine-tuned from google/mt5-base.

Usage

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

model_name = "Darmm/darmm-text-generation-kazakh"
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)

text = "Жауап бер: Кешкі Алматы туралы шағын әңгіме жаз."
inputs = AutoTokenizer.from_pretrained(model_name)(text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=128)
print(AutoTokenizer.from_pretrained(model_name).decode(outputs[0], skip_special_tokens=True))

Model Description

Kazakh text generation model fine-tuned from google/mt5-base on the Darmm/darmm-text-generation-kazakh dataset.

Training (summary)

  • Base model: google/mt5-base
  • Epochs: 3
  • Batch size: 2
  • Learning rate: 1e-4
  • Max input length: 256
  • Max target length: 256

Metrics (summary)

{
  "eval_loss": 0.08725570142269135,
  "eval_exact_match": 0.5547445255474452,
  "eval_rouge1": 0.10948905109489052,
  "eval_rouge2": 0.10583941605839416,
  "eval_rougeL": 0.10948905109489052,
  "epoch": 3.0
}

Intended use

  • Instruction-style Kazakh text generation for short responses.
  • Educational and informational content generation prototypes.

Limitations

  • Limited dataset size may reduce generalization to unseen domains.
  • Outputs may be generic for short prompts.

Paper & Documentation

🇬🇧 English

Darmm: Open-Source Resources for Kazakh Text Generation

Abstract

We present a new open-source dataset and a fine-tuned mT5 model designed for Kazakh text generation tasks. The dataset, Darmm/darmm-text-generation-kazakh, consists of 5,488 prompt-completion pairs covering 15 diverse domains, including Education, Technology, and Health. Our model, based on google/mt5-base, achieves an Exact Match score of 55.47% and a Validation Loss of 0.087, establishing a strong baseline for monolingual Kazakh generative tasks. All resources, including the dataset, model, and training scripts, are publicly available to foster further research in low-resource language processing.

1. Introduction

Kazakh, a Turkic language spoken by millions, remains a low-resource language in the field of Natural Language Processing (NLP). While multilingual models like mBERT and mT5 support Kazakh, their performance on specific generative tasks can be limited without targeted fine-tuning data. This project addresses this gap by providing a high-quality, curated dataset and a specialized model for Kazakh text generation, specifically focusing on instruction following and informational responses.

2. Dataset

2.1 Collection and Structure

The dataset comprises 5,488 pairs of prompts and completions. Each entry includes:

  • Prompt: The input text or instruction (e.g., "Сыни ойлау туралы қысқаша түсіндір.").
  • Completion: The expected output text.
  • Source: Origin of the data (crowdsourced, synthetic).
  • Domain: The topic category.

2.2 Domains

The dataset spans 15 distinct domains to ensure lexical diversity:

  1. Education (Білім беру)
  2. Technology (Технология)
  3. Health (Денсаулық)
  4. Business (Бизнес)
  5. Travel (Саяхат)
  6. Culture (Мәдениет)
  7. Science (Ғылым)
  8. Environment (Қоршаған орта)
  9. Food (Тағам)
  10. Sports (Спорт)
  11. Finance (Қаржы)
  12. Family (Отбасы)
  13. History (Тарих)
  14. Literature (Әдебиет)
  15. Nature (Табиғат)

2.3 Data Augmentation

To expand the dataset size and variety, we employed a template-based synthetic data generation strategy.

  • Templates: We designed 17 unique prompt-completion templates (e.g., "{topic} бойынша 3 кеңес бер.", "{topic} ұғымын бір сөйлеммен анықта.").
  • Topic Filling: Templates were populated using curated lists of domain-specific topics (e.g., "киберқауіпсіздік" for Tech, "ұйқы гигиенасы" for Health) and variable attributes (benefits, advice, formats).
  • Quality Control: The synthetic data underwent deduplication and validation to ensure structural integrity.

2.4 Preprocessing

The data pipeline ensures quality through:

  • Validation: Checking for missing fields and format consistency.
  • Deduplication: Removing duplicate entries to prevent leakage between splits.
  • Splitting:
    • Train: 4,390 samples
    • Validation: 548 samples
    • Test: 550 samples

3. Methodology

3.1 Model Architecture

We utilize google/mt5-base, a multilingual variant of the T5 (Text-to-Text Transfer Transformer) model. T5 treats every NLP problem as a text generation task, making it highly suitable for our prompt-completion objective.

3.2 Fine-Tuning Configuration

The model was fine-tuned using the Hugging Face Transformers library with the following hyperparameters:

  • Optimizer: AdamW (default configuration).
  • Scheduler: Linear learning rate decay.
  • Learning Rate: 1e-4.
  • Epochs: 3.
  • Batch Size: 8.
  • Max Input Length: 256 tokens.
  • Max Target Length: 256 tokens.
  • Prompt Prefixing: We employed prefixing (e.g., "Жауап бер: ") to better guide the model's generation process.

4. Experiments and Results

4.1 Setup

Training was conducted on a standard GPU setup. We evaluated the model's performance on the held-out validation set after 3 epochs.

4.2 Metrics

We report the following metrics:

  • Evaluation Loss: 0.087
  • Exact Match (EM): 55.47%
  • ROUGE-1: 10.95%
  • ROUGE-2: 10.58%
  • ROUGE-L: 10.95%

The high Exact Match score indicates that the model frequently produces the precise expected output, which is promising for instruction-following tasks where specific formats or answers are required. The ROUGE scores reflect the overlap in generated text, typical for short, structured responses.

5. Limitations

  • Synthetic Bias: A significant portion of the dataset is synthetically generated using templates, which may lead to repetitive sentence structures in the model's outputs.
  • Complexity: The model (mT5-base) and the dataset are optimized for short to medium-length responses (up to 256 tokens) and may struggle with complex, multi-turn reasoning or long-form essay generation.

6. Usage

The model and dataset are available on Hugging Face.

  • Dataset: Darmm/darmm-text-generation-kazakh
  • Model: Darmm/mt5-base-kazakh-generation (example path)

Example Inference

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("Darmm/mt5-base-kazakh-generation")
model = AutoModelForSeq2SeqLM.from_pretrained("Darmm/mt5-base-kazakh-generation")

input_text = "Жауап бер: Қазақстанның астанасы қай қала?"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids

outputs = model.generate(input_ids, max_length=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

7. Conclusion

This work contributes a foundational dataset and model for Kazakh text generation. Future work will focus on expanding the dataset size with more organic (human-written) text, increasing domain diversity, and experimenting with larger model architectures.

Citation

If you use this dataset or model, please cite:

@misc{darmm2026kazakh,
  author = {Darmm Lab},
  title = {Darmm Text Generation Kazakh},
  year = {2026},
  publisher = {Hugging Face},
  journal = {Hugging Face Repository},
  howpublished = {\url{https://huggingface.co/datasets/Darmm/darmm-text-generation-kazakh}}
}
🇰🇿 Қазақша

Darmm: Қазақ тіліндегі мәтінді генерациялауға арналған ашық ресурстар

Аңдатпа

Біз қазақ тіліндегі мәтінді генерациялау тапсырмаларына арналған жаңа ашық деректер жиынтығын және арнайы оқытылған mT5 моделін ұсынамыз. Darmm/darmm-text-generation-kazakh деректер жиынтығы 15 түрлі доменді (соның ішінде Білім беру, Технология және Денсаулық) қамтитын 5 488 "сұрау-жауап" жұбынан тұрады. google/mt5-base негізіндегі біздің моделіміз 55,47% Exact Match көрсеткішіне және 0,087 Validation Loss мәніне қол жеткізіп, қазақ тіліндегі генеративті тапсырмалар үшін сенімді базалық деңгейді қалыптастырады. Деректер жиынтығын, модельді және оқыту скрипттерін қоса алғанда, барлық ресурстар аз зерттелген тілдерді өңдеу саласындағы зерттеулерді дамыту үшін көпшілікке қолжетімді.

1. Кіріспе

Миллиондаған адам сөйлейтін қазақ тілі табиғи тілді өңдеу (NLP) саласында әлі де ресурстары аз тіл болып қалуда. mBERT және mT5 сияқты көптілді модельдер қазақ тілін қолдағанымен, арнайы оқыту деректерінсіз нақты генеративті тапсырмаларда олардың тиімділігі шектеулі болуы мүмкін. Бұл жоба қазақ тілінде мәтін генерациялау үшін сапалы, сұрыпталған деректер жиынтығын және мамандандырылған модельді ұсыну арқылы осы олқылықтың орнын толтырады, әсіресе нұсқауларды орындау және ақпараттық жауаптарға назар аударады.

2. Деректер жиынтығы (Dataset)

2.1 Жинау және құрылымы

Деректер жиынтығы 5 488 сұрау және жауап жұбын қамтиды. Әрбір жазба мыналарды қамтиды:

  • Prompt: Кіріс мәтіні немесе нұсқаулық (мысалы, "Сыни ойлау туралы қысқаша түсіндір.").
  • Completion: Күтілетін шығыс мәтіні (жауап).
  • Source: Деректер көзі (краудсорсинг, синтетикалық деректер).
  • Domain: Мәтіннің тақырыбы немесе санаты.

2.2 Домендер

Деректер жиынтығы лексикалық әртүрлілікті қамтамасыз ету үшін 15 түрлі доменді қамтиды:

  1. Білім беру (Education)
  2. Технология (Technology)
  3. Денсаулық (Health)
  4. Бизнес (Business)
  5. Саяхат (Travel)
  6. Мәдениет (Culture)
  7. Ғылым (Science)
  8. Қоршаған орта (Environment)
  9. Тағам (Food)
  10. Спорт (Sports)
  11. Қаржы (Finance)
  12. Отбасы (Family)
  13. Тарих (History)
  14. Әдебиет (Literature)
  15. Табиғат (Nature)

2.3 Деректерді толықтыру (Augmentation)

Деректер жиынтығының көлемі мен әртүрлілігін арттыру үшін біз шаблонға негізделген синтетикалық деректерді генерациялау стратегиясын қолдандық.

  • Шаблондар: Біз 17 бірегей "сұрау-жауап" шаблонын әзірледік (мысалы, "{topic} бойынша 3 кеңес бер.", "{topic} ұғымын бір сөйлеммен анықта.").
  • Тақырыптармен толтыру: Шаблондар әр доменге арнайы іріктелген тақырыптар тізімімен (мысалы, Технология үшін "киберқауіпсіздік", Денсаулық үшін "ұйқы гигиенасы") және айнымалы атрибуттармен (пайдасы, кеңестер, форматтар) толтырылды.
  • Сапаны бақылау: Синтетикалық деректер құрылымдық тұтастықты қамтамасыз ету үшін дедупликациядан және валидациядан өтті.

2.4 Алдын ала өңдеу

Деректерді өңдеу процесі сапаны келесі жолдармен қамтамасыз етеді:

  • Валидация: Өрістердің толықтығын және форматтың сәйкестігін тексеру.
  • Дедупликация: Сплиттер арасында деректердің қайталануын болдырмау үшін дубликаттарды жою.
  • Бөлу:
    • Оқыту жиынтығы (Train): 4 390 үлгі
    • Валидация жиынтығы (Validation): 548 үлгі
    • Тестілеу жиынтығы (Test): 550 үлгі

3. Әдістеме

3.1 Модель архитектурасы

Біз T5 (Text-to-Text Transfer Transformer) моделінің көптілді нұсқасы болып табылатын google/mt5-base қолданамыз. T5 кез келген NLP есебін мәтінді генерациялау тапсырмасы ретінде қарастырады, бұл біздің мақсатымызға өте қолайлы.

3.2 Арнайы оқыту конфигурациясы (Fine-Tuning)

Модель Hugging Face Transformers кітапханасын қолдану арқылы келесі гиперпараметрлермен оқытылды:

  • Оптимизатор: AdamW (әдепкі конфигурация).
  • Жоспарлаушы (Scheduler): Оқу жылдамдығының сызықтық төмендеуі.
  • Оқу жылдамдығы (Learning Rate): 1e-4.
  • Эпохалар: 3.
  • Пакет өлшемі (Batch Size): 8.
  • Кіріс мәтіннің макс. ұзындығы: 256 токен.
  • Шығыс мәтіннің макс. ұзындығы: 256 токен.
  • Промпт префикстері: Модельдің генерациялау процесін жақсарту үшін префикстерді (мысалы, "Жауап бер: ") қолдандық.

4. Эксперименттер және нәтижелер

4.1 Орнату

Оқыту стандартты GPU құрылғысында жүргізілді. Біз модельдің өнімділігін 3 эпохадан кейін валидация жиынтығында бағаладық.

4.2 Метрикалар

Біз келесі метрикаларды ұсынамыз:

  • Evaluation Loss: 0.087
  • Exact Match (EM): 55.47%
  • ROUGE-1: 10.95%
  • ROUGE-2: 10.58%
  • ROUGE-L: 10.95%

Жоғары Exact Match көрсеткіші модельдің күтілетін нәтижені жиі дәл қайталайтынын көрсетеді, бұл нақты форматтар немесе жауаптар қажет болатын нұсқауларды орындау тапсырмалары үшін үлкен жетістік. ROUGE көрсеткіштері генерацияланған мәтіннің ұқсастығын көрсетеді, бұл қысқа, құрылымдалған жауаптарға тән.

5. Шектеулер

  • Синтетикалық ауытқу: Деректер жиынтығының едәуір бөлігі шаблондар арқылы синтетикалық жолмен жасалған, бұл модельдің жауаптарында қайталанатын сөйлем құрылымдарына әкелуі мүмкін.
  • Күрделілік: Модель (mT5-base) және деректер жиынтығы қысқа және орташа ұзындықтағы жауаптарға (256 токенге дейін) оңтайландырылған және күрделі, көп сатылы пайымдаулармен немесе ұзақ эсселер жазуда қиындықтарға тап болуы мүмкін.

6. Қолдану

Модель мен деректер жиынтығы Hugging Face платформасында қолжетімді.

  • Dataset: Darmm/darmm-text-generation-kazakh
  • Model: Darmm/mt5-base-kazakh-generation (мысал жолы)

Инференс мысалы

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("Darmm/mt5-base-kazakh-generation")
model = AutoModelForSeq2SeqLM.from_pretrained("Darmm/mt5-base-kazakh-generation")

input_text = "Жауап бер: Қазақстанның астанасы қай қала?"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids

outputs = model.generate(input_ids, max_length=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

7. Қорытынды

Бұл жұмыс қазақ тіліндегі мәтінді генерациялауға арналған іргелі деректер жиынтығы мен модельді ұсынады. Болашақ жұмыстар деректер жиынтығының көлемін табиғи (адам жазған) мәтіндермен ұлғайтуға, домендердің әртүрлілігін кеңейтуге және үлкенірек модель архитектураларымен тәжірибе жасауға бағытталатын болады.

Сілтеме жасау

Егер сіз осы деректер жиынтығын немесе модельді қолдансаңыз, келесідей сілтеме жасауыңызды сұраймыз:

@misc{darmm2026kazakh,
  author = {Darmm Lab},
  title = {Darmm Text Generation Kazakh},
  year = {2026},
  publisher = {Hugging Face},
  journal = {Hugging Face Repository},
  howpublished = {\url{https://huggingface.co/datasets/Darmm/darmm-text-generation-kazakh}}
}
🇷🇺 Русский

Darmm: Открытые ресурсы для генерации текста на казахском языке

Аннотация

Мы представляем новый открытый набор данных и дообученную модель mT5 для задач генерации текста на казахском языке. Набор данных Darmm/darmm-text-generation-kazakh состоит из 5 488 пар «промпт-завершение», охватывающих 15 различных доменов, включая Образование, Технологии и Здоровье. Наша модель, основанная на google/mt5-base, достигает показателя Exact Match 55,47% и Validation Loss 0,087, устанавливая надежный базовый уровень для задач генерации на казахском языке. Все ресурсы, включая набор данных, модель и скрипты обучения, находятся в открытом доступе для содействия дальнейшим исследованиям в области обработки малоресурсных языков.

1. Введение

Казахский язык, на котором говорят миллионы людей, остается малоресурсным языком в области обработки естественного языка (NLP). Хотя мультиязычные модели, такие как mBERT и mT5, поддерживают казахский язык, их производительность в конкретных генеративных задачах может быть ограничена без целевых данных для дообучения. Этот проект восполняет этот пробел, предоставляя качественный, курируемый набор данных и специализированную модель для генерации казахского текста, уделяя особое внимание следованию инструкциям и информационным ответам.

2. Набор данных (Dataset)

2.1 Сбор и структура

Набор данных включает 5 488 пар промптов и завершений. Каждая запись содержит:

  • Prompt: Входной текст или инструкция (например, "Сыни ойлау туралы қысқаша түсіндір.").
  • Completion: Ожидаемый выходной текст.
  • Source: Источник данных (краудсорсинг, синтетические данные).
  • Domain: Тема или категория текста.

2.2 Домены

Набор данных охватывает 15 различных доменов для обеспечения лексического разнообразия:

  1. Образование (Білім беру)
  2. Технологии (Технология)
  3. Здоровье (Денсаулық)
  4. Бизнес (Бизнес)
  5. Путешествия (Саяхат)
  6. Культура (Мәдениет)
  7. Наука (Ғылым)
  8. Окружающая среда (Қоршаған орта)
  9. Еда (Тағам)
  10. Спорт (Спорт)
  11. Финансы (Қаржы)
  12. Семья (Отбасы)
  13. История (Тарих)
  14. Литература (Әдебиет)
  15. Природа (Табиғат)

2.3 Аугментация данных

Для увеличения объема и разнообразия набора данных мы использовали стратегию генерации синтетических данных на основе шаблонов.

  • Шаблоны: Мы разработали 17 уникальных шаблонов пар промпт-завершение (например, "{topic} бойынша 3 кеңес бер.", "{topic} ұғымын бір сөйлеммен анықта.").
  • Заполнение тем: Шаблоны заполнялись с использованием курируемых списков тем, специфичных для домена (например, "киберқауіпсіздік" для Технологий, "ұйқы гигиенасы" для Здоровья), и переменных атрибутов (преимущества, советы, форматы).
  • Контроль качества: Синтетические данные прошли дедупликацию и валидацию для обеспечения структурной целостности.

2.4 Предобработка

Конвейер обработки данных обеспечивает качество за счет:

  • Валидации: Проверка на отсутствие полей и согласованность формата.
  • Дедупликации: Удаление дубликатов для предотвращения утечки данных между сплитами.
  • Разделения:
    • Обучающая выборка (Train): 4 390 примеров
    • Валидационная выборка (Validation): 548 примеров
    • Тестовая выборка (Test): 550 примеров

3. Методология

3.1 Архитектура модели

Мы используем google/mt5-base, мультиязычный вариант модели T5 (Text-to-Text Transfer Transformer). T5 рассматривает любую задачу NLP как задачу генерации текста, что делает ее идеально подходящей для нашей цели.

3.2 Конфигурация дообучения (Fine-Tuning)

Модель была дообучена с использованием библиотеки Hugging Face Transformers со следующими гиперпараметрами:

  • Оптимизатор: AdamW (конфигурация по умолчанию).
  • Планировщик (Scheduler): Линейное затухание скорости обучения.
  • Скорость обучения (Learning Rate): 1e-4.
  • Эпохи: 3.
  • Размер батча: 8.
  • Макс. длина входа: 256 токенов.
  • Макс. длина выхода: 256 токенов.
  • Префиксы промптов: Мы использовали префиксы (например, "Жауап бер: ") для лучшего направления процесса генерации модели.

4. Эксперименты и результаты

4.1 Настройка

Обучение проводилось на стандартном оборудовании с GPU. Мы оценивали производительность модели на отложенной валидационной выборке после 3 эпох.

4.2 Метрики

Мы приводим следующие метрики:

  • Evaluation Loss: 0.087
  • Exact Match (EM): 55.47%
  • ROUGE-1: 10.95%
  • ROUGE-2: 10.58%
  • ROUGE-L: 10.95%

Высокий показатель Exact Match указывает на то, что модель часто выдает точно ожидаемый результат, что многообещающе для задач следования инструкциям, где требуются конкретные форматы или ответы. Оценки ROUGE отражают перекрытие в сгенерированном тексте, что типично для коротких структурированных ответов.

5. Ограничения

  • Синтетическая предвзятость: Значительная часть набора данных сгенерирована синтетически с использованием шаблонов, что может привести к повторяющимся структурам предложений в выходных данных модели.
  • Сложность: Модель (mT5-base) и набор данных оптимизированы для коротких и средних ответов (до 256 токенов) и могут испытывать трудности со сложными, многоходовыми рассуждениями или генерацией длинных эссе.

6. Использование

Модель и набор данных доступны на Hugging Face.

  • Dataset: Darmm/darmm-text-generation-kazakh
  • Model: Darmm/mt5-base-kazakh-generation (пример пути)

Пример инференса

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM

tokenizer = AutoTokenizer.from_pretrained("Darmm/mt5-base-kazakh-generation")
model = AutoModelForSeq2SeqLM.from_pretrained("Darmm/mt5-base-kazakh-generation")

input_text = "Жауап бер: Қазақстанның астанасы қай қала?"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids

outputs = model.generate(input_ids, max_length=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

7. Заключение

Эта работа вносит вклад в виде фундаментального набора данных и модели для генерации текста на казахском языке. Дальнейшая работа будет сосредоточена на увеличении объема набора данных за счет более органичного (написанного человеком) текста, расширении разнообразия доменов и экспериментах с более крупными архитектурами моделей.

Цитирование

Если вы используете этот набор данных или модель, пожалуйста, цитируйте:

@misc{darmm2026kazakh,
  author = {Darmm Lab},
  title = {Darmm Text Generation Kazakh},
  year = {2026},
  publisher = {Hugging Face},
  journal = {Hugging Face Repository},
  howpublished = {\url{https://huggingface.co/datasets/Darmm/darmm-text-generation-kazakh}}
}
Downloads last month
5
Safetensors
Model size
1.0B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Darmm/darmm-text-generation-kazakh

Base model

google/mt5-base
Finetuned
(288)
this model

Dataset used to train Darmm/darmm-text-generation-kazakh

Collection including Darmm/darmm-text-generation-kazakh

Evaluation results