Описание
Данная модель была создана в рамках курса по NLP от VK.
Задание заключалось в том, чтобы обучить трансформерную языковую модель генерации анекдотов на наборе данных IgorVolochay/russian_jokes. Важное условие - использование таких технологий, как GQA, ALiBi, SwiGLU.
Модель
Модель - transformer decoder. Изменения базовой архитектуры - использование Grouped Query Attention в self-attention, ALiBi в качестве relative positional encoding и SwiGLU в FF.
Характеристики модели: 12 слоев (трансформер блоков), 12 голов в attention, 6 kv голов в attention для GQA, d_model=768, d_ff=2048. Количество параметров: 79.54M.
Токенизатор: Byte-level BPE. Размер словаря: 1024.
Обучение модели: learning_rate=2e-4, n_steps=15000, max_seq_len=128, batch_size=16, CELoss.
Обучалась 110 минут на одной Nvidia GTX 1080.
Результаты
Итоговый Test Loss (Cross-Entropy): 2.583.
Качество модели не очень. Получается генерировать осмысленный текст, иногда даже выходят анекдоты. Но модель скорее копирует стиль, а не понимает юмор. Это объясняется ее небольшим размером.
Примеры генерации
Параметры генерации: top_k=10, temperature=0.4.
Начальный текст: "Заходит в бар"
- Заходит в бар, а там мужик и кричит: -- Джон, у меня картошка с картошкой! - А ты что, опять пойдешь? - Да нет, я не пью! - А что я? - А я готовлю!
- Заходит в бар, а там сидит девушка. Тут вдруг один говорит:- Вась, ты что, сегодня вечером съешь?
Начальный текст: "Сидим с бобром за столом"
- Сидим с бобром за столом, пьем, пьем, пьем, пьем, а пиво не пьют.
- Сидим с бобром за столом, а вдруг за столом сидит девушка. Девушка:- Молодой человек, а почему у тебя такие большие ноги?
- Downloads last month
- 3