hw1. Byte-level BPE & Transformer

Результаты выполнения ДЗ1 работы по курсу «Большие языковые модели». В ходе работы был реализован Byte-level BPE токенизатор и декодер-трансформер, обученные на датасете русских анекдотов.

Архитектура

Токенизатор:

  • Byte-level BPE на уровне байтов.
  • Размер словаря: 1024 токена, включая [EOS].
  • Специальные токены: [EOS].

Модель (nano)

  • Decoder-only Transformer.
  • Позиционное кодирование: ALiBi.
  • Механизм внимания: GQA, Grouped-Query Attention, 2 KV-головы.
  • Активация в Feed-Forward: SwiGLU.
  • Нормализация: RMSNorm.
  • Количество слоев: 3.
  • Количество голов: 4.
  • Размер скрытого состояния hidden_dim: 96.
  • Размер промежуточного слоя intermediate_dim: 256.
  • Количество параметров: ~0.5M .
  • Контекстное окно: 128 токенов.
  • Dropout: 0.1.

Модель (mini)

  • Decoder-only Transformer.
  • Позиционное кодирование: ALiBi.
  • Механизм внимания: GQA, Grouped-Query Attention, 3 KV-головы.
  • Активация в Feed-Forward: SwiGLU.
  • Нормализация: RMSNorm.
  • Количество слоев: 6.
  • Количество голов: 6.
  • Размер скрытого состояния hidden_dim: 384.
  • Размер промежуточного слоя intermediate_dim: 1024.
  • Количество параметров: ~10.5M.
  • Контекстное окно: 128 токенов.
  • Dropout: 0.1.

Модель (small)

  • Decoder-only Transformer.
  • Позиционное кодирование: ALiBi.
  • Механизм внимания: GQA, Grouped-Query Attention, 6 KV-голов.
  • Активация в Feed-Forward: SwiGLU.
  • Нормализация: RMSNorm.
  • Количество слоев: 12.
  • Количество голов: 12.
  • Размер скрытого состояния hidden_dim: 768.
  • Размер промежуточного слоя intermediate_dim: 2048.
  • Количество параметров: ~79.45M.
  • Контекстное окно: 128 токенов.
  • Dropout: 0.1.

Модель (mini_rope)

  • Decoder-only Transformer.
  • Позиционное кодирование: RoPE.
  • Механизм внимания: GQA, Grouped-Query Attention, 3 KV-головы.
  • Активация в Feed-Forward: SwiGLU.
  • Нормализация: RMSNorm.
  • Количество слоев: 6.
  • Количество голов: 6.
  • Размер скрытого состояния hidden_dim: 384.
  • Размер промежуточного слоя intermediate_dim: 1024.
  • Количество параметров: ~10.5M.
  • Контекстное окно: 128 токенов.
  • Dropout: 0.1.

Модель (mini_mla)

  • Decoder-only Transformer.
  • Позиционное кодирование: ALiBi.
  • Механизм внимания: MLA.
  • Сжатие KV: латентный ранг 192.
  • Активация в Feed-Forward: SwiGLU.
  • Нормализация: RMSNorm.
  • Количество слоев: 6.
  • Количество голов: 6.
  • Размер скрытого состояния hidden_dim: 384.
  • Размер промежуточного слоя intermediate_dim: 1024.
  • Количество параметров: ~10.97M.
  • Контекстное окно: 128 токенов.
  • Dropout: 0.1.

Модель (mini_mla_rope)

  • Decoder-only Transformer.
  • Позиционное кодирование: RoPE.
  • Механизм внимания: MLA.
  • Сжатие KV: латентный ранг 192.
  • Активация в Feed-Forward: SwiGLU.
  • Нормализация: RMSNorm.
  • Количество слоев: 6.
  • Количество голов: 6.
  • Размер скрытого состояния hidden_dim: 384.
  • Размер промежуточного слоя intermediate_dim: 1024.
  • Количество параметров: ~10.97M.
  • Контекстное окно: 128 токенов.
  • Dropout: 0.1.

Результаты (Validation Cross-Entropy)

Модель Шаги Batch Size LR Validation Loss
nano 10 000 16 3e-4 3.199
mini 30 000 16 3e-4 2.809
mini 30 000 16 3e-4 2.601
small 20 000 8 3e-4 2.615
mini_rope 10 000 16 3e-4 2.834
mini_mla 10 000 16 3e-4 3.037
mini_mla_rope 10 000 16 3e-4 2.863

Примеры генерации

Во всех моделях, начиная с mini, видна структура диалога и правильная расстановка пунктуации и реплик, а также манера типичных анекдотических завязок. Но связных и осмесленных анекдотов получить не удалось

Генерация производилась с параметрами temperature=0.8, top_k=10, max_new_tokens=150.

nano

Промпт: Заходит в бар

Заходит в баре. К входит к маленька и видит: — Ты кто-нибудь, какое? — Ну, да-а-а-а. — А вот, я не знаю, а ты, как тебе не могу. — Да нет. — Мы бывало

Промпт: Штирлиц пришел домой

Штирлиц пришел домой, а там папа с сыном. Очень сел к ней.

mini

Промпт: Заходит в бар

Заходит в бар. Подходят дверь в карман. Врач спрашивает:- Что случилось, что ли, внученька?Мне нужен, весь вечер:- А какой?- Абрам, ноги не видели!

Промпт: Штирлиц пришел домой

Штирлиц пришел домой. Подходит к к другу:- Сколковник, а ты меня за ногами встречаешь?- Да не знаю. А я таки пойду...

mini

Промпт: Заходит в бар

Заходит в бар за кольцу и видит: - Девушка, что вы тут не хоху? - Ну вот, доченька, дочка! - Дочь в магазин застряла!!! - Слушай, ты что, мальчик? - Мама, я съела! - Да нет, я на даче, садись кошка, а она у нас вся рак. - Ты кто? - Я же не знаю, а нахожу тебя, а мальчишка! - Да ну ладно... Пап, а что это? - В штопинг? - Я с ней сейчас в школе.

Промпт: Штирлиц пришел домой

Штирлиц пришел домой, подаривший рот. Видит - сегодня на вокзале поворачивает. Слышу - наваристь волосатый.

small

Промпт: Заходит в бар

Заходит в бар и видя в рыбу: - Дайте мне канат, а в кабинет танка! Стал в ответ: - Да, вон, вон ту волчку, а яйца, штурманы с болтиком..

Промпт: Штирлиц пришел домой

Штирлиц пришел домой, а вдруг видит - воробо руками в ту сторону. Инструктор спрашивает сыну:- Скажите, а у вас что-нибудь есть?- А почему?- Потому, что это не тот, кто вылетает, тот, у которой я вижу!

mini_rope

Промпт: Заходит в бар

Заходит в бар пациент, внучок в туалет. - Слушайте, я знал, что у тебя есть? - А что же ты делаешь? - А я не сейчас. - А это как? - Да, конечно, этот момент, что мне нравитесь, и я съел!

Промпт: Штирлиц пришел домой

Штирлиц пришел домой по коту. Вдруг к нему подходит доктор и говорит:- Слышь, а почему у нас на даче не было?- Обычно, я вчера пришел домой, но она не хочет.

mini_mla

Промпт: Заходит в бар

Заходит в бар, а сыграет по лесу, а второй спрашивает - Ты почему ты так должны бы ты не плохо? - Нет, а ты в теплой березах, что у меня сегодня на вопрос? - А ты не в них волнуйтесь. - Ну, сэр - Ага. - Нет, мордовый - Да, - ответил. Тогда у нас есть в трубку с буквами. - Не пойдем, - вонюшка. - Она не восеменная...

Промпт: Штирлиц пришел домой

Штирлиц пришел домойхал в пять лет, а потом говорит своему мужу:- Подумай, у меня на работу - с носом!Он:- Спасибо, мать! Я сейчас вчера вдруг разбил в магазин, что я съездила, а он второй в кабинет, а я не могу сразу, а ты уже узнала?!

mini_mla_rope

Промпт: Заходит в бар

Заходит в бар. Там сзади снимается сыном. Смотрит, и кричат:- Что случило вон тащь?- Конечно.- Теперь снимите в белый день.

Промпт: Штирлиц пришел домой

Штирлиц пришел домой домой. Взгляд, впереди, снова в капусте пьяной. Сидят, пьяный. Петух: - Ты где, вчера, пидор, кусок. Тот снимает, затворился - снимает медицину, пьет. Перхожу и кричит: – Мама, не дура, ты не видишь, сейчас дядя?

Downloads last month
6
Safetensors
Model size
11.2M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support