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
- 8