kacperwikiel commited on
Commit
a071c11
·
verified ·
1 Parent(s): 8e55535

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. README.md +71 -0
  2. config.json +18 -0
  3. model.safetensors +3 -0
README.md ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-4.0
3
+ language:
4
+ - pl
5
+ library_name: custom
6
+ pipeline_tag: text-generation
7
+ tags:
8
+ - pytorch
9
+ - bdh
10
+ - fast-weights
11
+ - polish
12
+ - lang-200m
13
+ base_model: pathwaycom/bdh
14
+ datasets:
15
+ - SlayerLab/polish-dynaword-mix
16
+
17
+ ---
18
+ # BDH-25M-<span>PL</span> — Polish Looped-Transformer (Fast-Weight) Language Model
19
+
20
+ Mały, otwarty model językowy z **architekturą BDH (Fast Weight Layers)**,
21
+ wytrenowany na czystym, polskim mixie **SlayerLab/polish-dynaword-mix**
22
+ (100M tokenów, byte-level).
23
+
24
+ ## Architektura
25
+
26
+ - `BDH` z [pathwaycom/bdh](https://github.com/pathwaycom/bdh) — looped latent-recurrence / fast weights
27
+ - `n_layer=8, n_embd=256, n_head=4, mlp_internal_dim_multiplier=128`
28
+ - Vocab: **byte-level (vocab 256)** — brak tokenizera, działa bezpośrednio na UTF-8 bajtach
29
+ - **~25.3M parametrów** · seq 2048
30
+ - Key feature: `Q==K` (fast-weights) — współdzielony stan jako klucz i wartość (locality latent recurrence)
31
+
32
+ ## Trening
33
+
34
+ - **Dane**: `SlayerLab/polish-dynaword-mix` (100M tokenów, law cap 7%, dedup, clean)
35
+ - **Kroki**: 10000 · **final val loss ~1.41** · byte-level (lat ≥ 5.6 dla losowych wag)
36
+ - **Zoptymalizowany**: ZClip + protocol B.2 (jak w paperze BDH)
37
+
38
+ ## Uwaga o skali
39
+
40
+ To **model 25M na 100M tokenów** — zgodnie ze scaling laws jest **niedoćwiczony jakościowo**,
41
+ ale stanowi działający baseline: generuje gramatycznie poprawne polskie zdania i
42
+ demonstruje, że architektura BDH trenuje i generuje poprawnie end-to-end.
43
+
44
+ ## Szybki start
45
+
46
+ ```python
47
+ import torch
48
+ from safetensors.torch import load_file
49
+ from bdh import BDH, BDHConfig
50
+
51
+ cfg = BDHConfig(n_layer=8, n_embd=256, n_head=4,
52
+ mlp_internal_dim_multiplier=128, dropout=0.1, vocab_size=256)
53
+ model = BDH(cfg)
54
+ model.load_state_dict({k.replace("model.", ""): v
55
+ for k, v in load_file("model.safetensors").items()}, strict=True)
56
+ model.eval()
57
+
58
+ # byte-level prompt (bez tokenizera)
59
+ prompt = "Warszawa jest stolicą Polski i "
60
+ ids = torch.tensor([list(prompt.encode("utf-8"))])
61
+ # ... pętla generowania po jednym bajcie z softmax(temp)
62
+ ```
63
+
64
+ ## Pliki
65
+
66
+ - `model.safetensors` — wagi (101MB)
67
+ - `config.json` — hyperparametry i metadane treningu
68
+
69
+ ## Licencja
70
+
71
+ Wagi: **CC-BY-4.0**. Architektura: MIT (pathwaycom/bdh).
config.json ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "BDH"
4
+ ],
5
+ "vocab_size": 256,
6
+ "n_layer": 8,
7
+ "n_embd": 256,
8
+ "n_head": 4,
9
+ "mlp_internal_dim_multiplier": 128,
10
+ "dropout": 0.1,
11
+ "seq_len": 2048,
12
+ "model_type": "bdh",
13
+ "size_m": 25,
14
+ "training": {
15
+ "steps": 10000,
16
+ "data": "SlayerLab/polish-dynaword-mix"
17
+ }
18
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98fef32d9abcc7b3eadc5efd855b70571570dcea666b32208a8a709b4794d438
3
+ size 101220888