Amir337 commited on
Commit
0f8efc7
·
verified ·
1 Parent(s): 0c73c69

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +87 -6
README.md CHANGED
@@ -1,10 +1,91 @@
1
  ---
 
 
2
  tags:
3
- - model_hub_mixin
4
- - pytorch_model_hub_mixin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  ---
6
 
7
- This model has been pushed to the Hub using the [PytorchModelHubMixin](https://huggingface.co/docs/huggingface_hub/package_reference/mixins#huggingface_hub.PyTorchModelHubMixin) integration:
8
- - Code: [More Information Needed]
9
- - Paper: [More Information Needed]
10
- - Docs: [More Information Needed]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ language:
3
+ - ru
4
  tags:
5
+ - text-generation
6
+ - causal-lm
7
+ - transformer
8
+ - byte-level-bpe
9
+ - alibi
10
+ - rope
11
+ - gqa
12
+ - swiglu
13
+ - education
14
+ - course-work
15
+ datasets:
16
+ - IgorVolochay/russian_jokes
17
+ library_name: pytorch
18
+ pipeline_tag: text-generation
19
+ license: mit
20
+ model-index:
21
+ - name: llm-course-hw1 (nano/mini/small)
22
+ results:
23
+ - task:
24
+ name: Language Modeling
25
+ type: text-generation
26
+ dataset:
27
+ name: Russian Jokes
28
+ type: IgorVolochay/russian_jokes
29
+ split: test
30
+ metrics:
31
+ - name: Validation cross-entropy
32
+ type: loss
33
+ value: 2.624
34
+
35
  ---
36
 
37
+ # LLM Course HW1 Byte-level BPE + Tiny Russian Jokes LM
38
+
39
+ Это домашнее задание: обучение **Byte-level BPE** токенизатора и небольшой **Causal Transformer** на датасете русских анекдотов.
40
+
41
+ ## Что внутри
42
+
43
+ - **Токенизатор:** Byte-level BPE, обучен с нуля на `IgorVolochay/russian_jokes`
44
+ - **Модель:** Causal Transformer с:
45
+ - **ALiBi** позиционными смещениями *(по умолчанию)* или **RoPE** *(опционально)*
46
+ - **GQA** (Grouped-Query Attention)
47
+ - **SwiGLU** в FFN
48
+ - (опционально) **Multi-Head Latent Attention (MLA)** для экономии KV-кэша
49
+ - **Конфиги размеров:** `nano` / `mini` / `small`
50
+ - **Код генерации и обучения** на PyTorch
51
+
52
+ > Примечание: Модель и токенизатор — **кастомные классы**, не `transformers`. Для использования см. примеры ниже.
53
+
54
+ ---
55
+
56
+ ## Файлы в репозитории
57
+
58
+ - `model.safetensors` — веса модели
59
+ - `config.json` — конфиг модели
60
+ - `vocabulary.json`, `merges.json` — файлы Byte-level BPE
61
+ - `README.md` — эта карточка
62
+
63
+ ---
64
+
65
+ ## Архитектура
66
+
67
+ - **Embedding:** token embedding (без learnable pos embed; позиции кодируются ALiBi или RoPE)
68
+ - **Attention:** Multi-head, **GQA** (число KV-голов меньше числа Q-голов)
69
+ - **Positional encoding:**
70
+ - **ALiBi** (additive linear bias) — не требует табличек, хорошо масштабируется
71
+ - **RoPE** (опционально): комплексные вращения Q/K; требует чётного `head_dim`
72
+ - **FFN:** **SwiGLU** = `silu(W₁a x) ⊙ (W₁b x)` → `W₂`
73
+ - **Norm:** **RMSNorm** (pre-norm)
74
+ - **(Опция) MLA:** свёртка K/V в общий латент и on-the-fly дешифрация (снижение памяти под KV-кэш)
75
+
76
+ ---
77
+
78
+ ## Тренировочные детали
79
+
80
+ - **Датасет:** `IgorVolochay/russian_jokes` (train/test split 90/10, фиксированный seed)
81
+ - **Оптимизатор:** AdamW (`lr=3e-4`, `weight_decay=0.1`)
82
+ - **Шедулер:** Linear warmup (10% шагов) → linear decay
83
+ - **Batching:** паддинг до максимальной длины в батче + `attention_mask`
84
+ - **Критерий:** next-token cross-entropy с маскированием паддингов
85
+ - **Макс. контекст:** `max_seq_len=128`
86
+
87
+ ---
88
+
89
+ ## Графики
90
+ ![Графики](https://cdn-uploads.huggingface.co/production/uploads/680935db7430904d820dd79c/on8e96peXjTNWsYffdsth.png)
91
+