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
Штирлиц пришел домой
Output
Штирлиц пришел домой, и он к нему подходит врачом на балконе, видит - на душе,
а у нас считает. - Стакан, - говорит Вася, - говорит - Василий Иванович,
ты чего ты меня не могу...
Prompt
Доктор говорит пациенту
Output
Доктор говорит пациенту: - А вы не доктор, я сегодня у вас есть досталось!
- Downloads last month
- 3