--- tags: - model_hub_mixin - pytorch_model_hub_mixin - transformer - jokes - byte-level-bpe license: mit datasets: - IgorVolochay/russian_jokes language: - ru --- # Russian Jokes Transformer (HSE Course HW1) ## Описание задачи Модель разработана в рамках курса *Large Language Models (HSE)*. Задача — генерация коротких анекдотов на русском языке. Архитектура реализована с нуля и включает: - Byte-Level BPE токенизатор (vocab = 2048) - Transformer с ALiBi positional encoding, Grouped-Query Attention (GQA) и SwiGLU - RMSNorm, dropout, label smoothing - Максимальная длина контекста: 128 токенов ## Технические характеристики | Параметр | Значение | |-----------|-----------| | Количество слоёв | 6 | | Количество голов внимания | 6 | | Размер скрытого слоя | 384 | | Размер промежуточного слоя | 1024 | | Количество параметров | ≈3.1M | | Размер словаря | 2049 (включая `[EOS]` и `[PAD]`) | ## Проблемы на начальных этапах экспериментов - В начале работы я реализовала Byte-Level BPE токенизатор и трансформер по заданию. Модель успешно обучалась и выдавала текст при генерации, но первое время результат выглядел так: **Вход:** `Заходит в бар` > Заходит в барXалоалоалоалокукукукуатьсяатьсяатьсяатьсякукукуышышышышививививальальальальегегегег говор говор говор говормермермермерявявявяв уб уб уб уб пл пл пл плррррТТТТистистистистийийийийникникникник тр тр тр трочочочочучучучучешешешешнойнойнойной............oooossssmmmmsss Он Он Он ОнУУУУ) То есть текст состоял из повторяющихся слогов и не имел смысла. - Также на ранних этапах экспериментов график функции потерь (loss) показывал нестабильное поведение: значения сильно колебались ## Основные улучшения по сравнению с базовой реализацией - Добавлен токен `[PAD]` и корректная attention mask - Введён label smoothing для стабилизации обучения - Реализовано объединение коротких анекдотов (packing) для уменьшения доли паддингов - Увеличен словарь токенизатора до 2048 элементов - Настроены параметры генерации (`temperature=0.7`, `top_k=100`, `top_p=0.95`, `repetition_penalty=1.2`) ## Качество обучения | Метрика | Значение | |----------|-----------| | Train Loss | ~0.59 | | Validation Loss | ~0.62 | | Средняя длина последовательности | ~63 токена | | Минимальная длина последовательности | 5 | | Максимальная длина последовательности | 2883 | График функции потерь показывает устойчивое снижение значения loss и стабилизацию на уровне ≈0.6 после нескольких эпох. Разница между train и validation loss минимальна, что указывает на отсутствие переобучения и корректную настройку гиперпараметров. ## Примеры генерации **Вход:** `Заходит в бар` **Результат:** > Заходит в барерксьескr должен�Ну вол встречного�ятся мнойаша ВотСт муж нам МужПос весь тебе этиеньк нет Ты работуностилаговал Д акиешись суд Когдарачлед берыI машp газГ американ pрат себ�альный бутчаст=�ющ2 Нет пив котиваетегодняестьском одну Москром самПр значит женаjящ Кто от�итель дер врем как авзастд зад Првалтр ряд лежниб Потому женщиныуля быть Об телеф Ой делоетеине тебаксVлеуд предлож держ приш хорошо вот доб лучстигр собак внейчас� бо?аботров дет уж черезухонч проп кто&ьеогда новыйуютиласьера К иск умерключ хочеткрасп обрат алсь меняывgрыотор штак 2 куда% снимык Здаласьний� апыран расиент тоже второй во� э я негоенииги нее Если опится Все�ании тр какчитель соверш хочуаяеспелен од нес маматом прик **Вход:** `Штирлиц` **Результат:** > Штирлиц росс почемуивать мальчик комнЕсли оченьырnстроитан� выход Инвер�ию вер� Аналмыствен усл главоварищ косерез всех стоит� прич душ есть Нет потомуутускh Еуп ув� ли пришив нееожЗа дол сразу согино Не открслког.-орош былиф развикуитан начин домаести прив мужч выд родит одинУ членовойататак аки�Жол док дом никто вашцетоящебоду делеpм осрастBентЕсли самалуйстарен зуб всюией?- Вамыбразуогычлаг моей подходит� без Изажеяхота мне- жену белкий женыоном вам остановjшаенькаайте Мского[PAD] богх помодава кор имрам никогда Ктотьогдачноной� сто Толькоран страшш телев заг сделша Конечноства ок -jомниль ш любЛуйте ответманHычась сред выситан� бограф Если ничего� пред исп наведоментлич съельзяники заним+аясь куда:- да� Модель обучалась на 10 000 шагах; дальнейшее дообучение улучшает качество генерации и связность текста. ## Вывод Модель уже научилась подражать структуре анекдотов и распознаёт типичные шаблоны, но из-за малого размера и ограниченного словаря пока не способна генерировать грамматически правильный и связный русский текст. ## Автор **Студент:** Екатерина Степура Высшая школа экономики, курс *Large Language Models*, 2025