| --- |
| library_name: pytorch |
| tags: |
| - causal-lm |
| - transformer |
| - gqa |
| - rope |
| - byte-level-bpe |
| - russian |
| - dl-course |
| --- |
| |
| <div align="center"> |
|
|
| # DL Course HW13 |
|
|
| **Финальная модель** |
|
|
| `PyTorch` · `Transformer` · `GQA` · `RoPE` · `Byte-level BPE` · `Russian LM` |
|
|
| </div> |
|
|
| --- |
|
|
| ## Кратко |
|
|
| В этом репозитории сохранена итоговая модель |
|
|
| Финальной выбрана конфигурация **small + GQA + RoPE**, потому что она показала лучшее качество среди всех проведённых экспериментов по двум основным метрикам: |
|
|
| | Метрика | Значение | |
| |---|---:| |
| | Validation loss | **2.4695** | |
| | Perplexity | **11.82** | |
|
|
| --- |
|
|
| ## Финальная модель |
|
|
| Основные компоненты: |
|
|
| | Компонент | Использованный вариант | |
| |---|---| |
| | Архитектура | Decoder-only Transformer | |
| | Attention | Grouped-Query Attention | |
| | Позиционные эмбеддинги | Rotary Positional Embeddings | |
| | Нормализация | RMSNorm | |
| | Feed-forward блок | SwiGLU | |
| | Токенизатор | Byte-level BPE | |
|
|
| --- |
|
|
| ## Сравнение экспериментов |
|
|
| | № | Эксперимент | Validation loss | Perplexity | |
| |---:|---|---:|---:| |
| | 1 | small + GQA baseline | 2.5650 | 13.00 | |
| | 2 | **small + GQA + RoPE** | **2.4695** | **11.82** | |
| | 3 | mini + MLA + RoPE | 2.7306 | 15.34 | |
| | 4 | small + MLA + RoPE | 2.4905 | 12.07 | |
|
|
| Лучший результат получила модель **small + GQA + RoPE**. |
|
|
| --- |
|
|
| ## Примеры генерации |
|
|
| Параметры генерации: |
|
|
| | Параметр | Значение | |
| |---|---:| |
| | max_new_tokens | 200 | |
| | temperature | 0.8 | |
| | top_k | 30 | |
| | do_sample | true | |
| | seed | 42 | |
|
|
| ### Пример 1 |
|
|
| **Prompt** |
|
|
| ```text |
| Штирлиц пришел домой |
| ``` |
|
|
| **Generated text** |
|
|
| ```text |
| Штирлиц пришел домой - весь вечер подумал, что у неё украли. |
| ``` |
|
|
| ### Пример 2 |
|
|
| **Prompt** |
|
|
| ```text |
| Вовочка на уроке |
| ``` |
|
|
| **Generated text** |
|
|
| ```text |
| Вовочка на уроке русского языка учится на букву ``К`` и |
| белый, и с чистой. |
| Девочка: |
| - Папа, пап, сегодня вечером папа пришел в школу, |
| да! И так! Уже в школе! |
| Мать: |
| - А я, мама, не понял... |
| ``` |
|
|
| ### Пример 3 |
|
|
| **Prompt** |
|
|
| ```text |
| Заходит в бар |
| ``` |
|
|
| **Generated text** |
|
|
| ```text |
| Заходит в бар в ларьку и видит, что держится на площади стекла. А доктор ему и сказал:- Доктор, у меня болит голова и рот пить не налил.Врач подумал и говорит:- Или у меня хлещет?И, встала с кровати:- Нет, просто у меня на характере нет... |
| ``` |
|
|
| ### Пример 4 |
|
|
| **Prompt** |
|
|
| ```text |
| Однажды студент |
| ``` |
|
|
| **Generated text** |
|
|
| ```text |
| Однажды студент пришел к врачу и рассказывает ему: |
| — Доктор, помогите, я выйду на него замуж! |
| — А что вы делаете?! |
| — Ну вот, папа, папаша, иду по парку и говорю: «Знаю |
| — А вы сегодня опять плохо приготовили» — подумал Штирлиц. И вот, значит, в темном классе |
| — Ну, это не хуйня, и он меня тоже. |
| ``` |
|
|
| ## Файлы репозитория |
|
|
| | Файл | Назначение | |
| |---|---| |
| | `model.safetensors` | веса финальной модели | |
| | `config.json` | конфигурация модели | |
| | `vocabulary.json` | словарь токенизатора | |
| | `merges.json` | merge-файл токенизатора | |
| | `metrics.json` | метрики всех экспериментов | |
| | `eval_results.json` | финальные eval-метрики | |
| | `generation_samples.json` | примеры генерации в JSON | |
| | `generation_samples.md` | примеры генерации в Markdown | |
|
|
| --- |
|
|
| ## Итог |
|
|
| Финальная модель - **small + GQA + RoPE**. |
|
|
| Она стала лучшей и показала следующие финальные значения: |
|
|
| | Финальная метрика | Значение | |
| |---|---:| |
| | Validation loss | **2.4695** | |
| | Perplexity | **11.82** | |
|
|
| <details> |
| <summary>Краткий вывод по экспериментам</summary> |
|
|
| RoPE оказался полезным улучшением для small + GQA модели: validation loss снизился с `2.5650` до `2.4695`, а perplexity - с `13.00` до `11.82`. |
|
|
| MLA + RoPE тоже был протестирован, но в данной постановке small + GQA + RoPE оказался лучше по итоговым метрикам. |
|
|
| </details> |