Задание, по итогам которого я написал BPE-токенизатор и небольшую трансформерную модель с целью, чтобы она продолжала анекдоты на русском.
Техника
Очень компактный GPT-подобный трансформе рс causal self-attention, RMSNorm, SwiGLU, ALiBi и GQA.
Токенизация byte-level, поэтому работает и на редких словах, и на опечатках, но иногда выдает неверные данные из-за шумов.
Предсказываем следующий токен.
Датасет
Как учил
AdamW, линейный разогрев и потом линейный спад learning rate, кросс-энтропия по сдвинутым токенам, маска паддинга. Конфиг «микро», поэтому шагов немного, больше для демонстрации, чем для качества.
Метрики
- Validation loss: 3.496. Это минимум по валидации в моём прогоне.
- Training loss: 3.702; во время обучения прыгал и снижался (минимум 3.505, максимум 6.950). Это вероятно из-за маленького размера модели и батчей.
- Метрика токенизатора: средняя длина токенизированного примера 73.49 токена, минимум 5, максимум 3418.
Примеры генерации (как есть из ноутбука)
Штирлиц пришёл домой…
Штирлиц пришел домой к пиво в пиво!
Заходит в бар…
Заходит в бармену и говорит:
— Вовочка, милиция, выбрал в туалет!
Мама вдруг вечером:
— А ты мне такое, что, весь дорогой!
P.S:
Это байтовая модель и очень маленький конфиг, поэтому может получиться кривовато, но от этого может быть и забавнее.
Для более «связного» текста в ноутбуке я снижал temperature и увеличивал top_k.
tags:
- model_hub_mixin
- pytorch_model_hub_mixin
- model_hub_mixin
- pytorch_model_hub_mixin
license: mit
language:
- ru
pipeline_tag: text-generation
This model has been pushed to the Hub using the
PytorchModelHubMixin integration:
- Code: [More Information Needed]
- Paper: [More Information Needed]
- Docs: [More Information Needed]