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
Safetensors
Model size
553k params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support