DL_13_LLM
Описание
Домашнее задание по реализации небольшой языковой модели с нуля.
В работе был реализован полный пайплайн обучения causal language model: Byte-level BPE токенизатор,
Transformer-based архитектура, training loop и генерация текста.
На основе этой реализации было проведено несколько экспериментов с разными конфигурациями модели
(nano, mini, small) и параметрами обучения. Финальная модель в репозитории соответствует лучшему эксперименту с конфигурацией small.
MLA и Rotary Positional Embedding были реализованы как экспериментальные блоки
Data
Модель обучалась на датасете русских анекдотов IgorVolochay/russian_jokes.
Архитектура
В рамках работы была реализована одна общая Transformer-based causal language model, а затем проведено несколько экспериментов с разными конфигурациями и режимами обучения.
В ноутбуке сравнивались разные варианты:
nano при MAX_SEQ_LEN = 128, BATCH_SIZE = 16;
mini при MAX_SEQ_LEN = 128, BATCH_SIZE = 8;
small при MAX_SEQ_LEN = 128, BATCH_SIZE = 8;
- дополнительное дообучение
small с меньшим learning rate;
mini при увеличенном контексте MAX_SEQ_LEN = 256, BATCH_SIZE = 2;
- дополнительное дообучение
mini с увеличенным контекстом;
- повторный эксперимент со
small при MAX_SEQ_LEN = 128, BATCH_SIZE = 4;
- несколько повторных запусков
nano
Финальной моделью была выбрана конфигурация small, так как она показала лучший validation loss среди проведённых экспериментов.
Качество
По значениям loss лучшей оказалась конфигурация small: она показала более низкий validation loss по сравнению с меньшими моделями nano и mini.
При этом визуальное качество плохое. Модель научилась воспроизводить некоторые признаки анекдотов: диалоговую форму и отдельные устойчивые фразы. Однако связности текста нет.
Основная причина — модель обучалась с нуля на сравнительно небольшом датасете, задача со звездочкой.
Примеры генерации
Prompt
1Штирлиц пришел домой
2
3Output
4
5Штирлиц пришел домой, и он к нему подходит врачом на балконе, видит - на душе,
6а у нас считает. - Стакан, - говорит Вася, - говорит - Василий Иванович,
7ты чего ты меня не могу...
8
9
10Prompt
11Доктор говорит пациенту
12Output
13Доктор говорит пациенту: - А вы не доктор, я сегодня у вас есть досталось!
14