GoLLeM v4 — 250M (polski, checkpointy badawcze — trajektoria treningu)

⚠️ STATUS: BADAWCZY / W TRAKCIE TRENINGU (work-in-progress). To repozytorium zawiera pośrednie punkty treningu modelu (seria migawek, ~4–20% zaplanowanego budżetu), udostępnione wyłącznie do celów badawczych. To nie jest gotowy model — jakość rośnie z każdą kolejną migawką i będzie znacząco wyższa na końcu treningu. Nie używaj go w zastosowaniach produkcyjnych ani do oceny „jak dobry jest GoLLeM".

Polski model językowy typu dekoder (GPT), 250 mln parametrów, trenowany od zera na polskim korpusie. Projekt Laboratorium Slayer. Udostępniamy serię migawek z kolejnych etapów treningu, aby umożliwić badanie dynamiki uczenia się modelu.

Do czego służy (a do czego nie)

Służy do: badań nad skalowaniem i dynamiką uczenia (porównywanie kolejnych migawek), analizy polskiego modelu językowego, testów płynności i kontynuacji polskiego tekstu.

Nie służy do wydawania poleceń: to model bazowy (wstępnie wytrenowany), a nie model dostrojony do instrukcji — kontynuuje podany tekst, ale nie wykonuje poleceń. Rozumie tylko język polski — po angielsku oraz przy odpowiadaniu na pytania bez kontekstu radzi sobie słabo, zgodnie z założeniem. Na tym etapie nie kończy wypowiedzi w sposób niezawodny (nie wstawia stabilnie znacznika końca <|endoftext|>) i generuje tekst aż do limitu długości — jest to normalne dla modelu bazowego we wczesnej fazie treningu i nie stanowi błędu.

Migawki treningu (trajektoria)

Migawka Krok % treningu strata walidacyjna BPB
ckpt_2000 2000 ~4% 3.416 1.135
ckpt_6000 6000 ~12% 2.966 1.001
ckpt_8000 8000 ~16% 2.937 0.978
ckpt_10000 10000 ~20% 2.878 0.961

Kolejne migawki (ckpt_12000 i dalej) dokładamy w miarę postępu treningu. Widać jednostajny spadek — model naprawdę się uczy (strata walidacyjna ≈ strata treningowa, brak przeuczenia; prognoza sprawdzona poza oknem dopasowania przy krokach 8000 i 10000 na dwóch niezależnych metrykach: stracie walidacyjnej i BPB).

Prognoza na koniec treningu (24 mld tokenów, ~48828 kroków): BPB ~0.89 (dopasowanie ciasne i wiarygodne — 5 punktów pomiarowych na zbiorze walidacyjnym; teoretyczne dno języka ~0.83). Strata walidacyjna ~2.5–2.8 (orientacyjnie — dopasowanie tej metryki jest niejednoznaczne przy szumie pomiaru, końcowa wartość niepewna w tym oknie; z końcowym wygaszaniem współczynnika uczenia realny wynik bliżej dolnej granicy). Przedziały zawężą się w miarę treningu — BPB jest tu naszą wiarygodną metryką prognozy, stratę walidacyjną podajemy z wyraźnie zaznaczoną niepewnością.

Architektura

Parametry 247 954 432 (~250 mln, współdzielone embeddingi)
Warstwy (n_layer) 17
Wymiar (d_model) 1024
Głowice uwagi (n_head) 16 (wymiar głowicy 64)
Długość kontekstu (block) 1024
Słownik (vocab) 32 000 (tokenizer V32k, polski BPE)
Pozycje wyuczone embeddingi pozycyjne (nn.Embedding, nie RoPE)
Blok pre-LayerNorm, uwaga SDPA (przyczynowa), warstwa MLP z GELU 4×
Wagi embedding i głowica wyjściowa współdzielone (weight tying, jak w GPT-2)

Architektura jest niestandardowanie wczytuje się przez transformers/AutoModel. Użyj dołączonego wczytywacza modeling_gollem.py (samodzielny, wymaga jedynie torch, tokenizers i safetensors).

Dane treningowe

Korpus SlayerLab/gollem-corpus-16b-pl16,58 mld tokenów, w 100% polski, oczyszczony (deduplikacja, filtr danych osobowych, dekontaminacja):

Rejestr Tokeny Udział
web (HPLT v3 PL, oczyszczony) 14,62 mld 88,2%
encyklopedyczny (Wikipedia PL) 984 mln 5,9%
nauka 522 mln 3,1%
wiadomości 211 mln 1,3%
prawniczy 176 mln 1,1%
literacki 60 mln 0,4%
mieszany 1,6 mln 0,01%

Trening: cel 24 mld tokenów (~1,45 epoki, świadomy trening nadmiarowy ~5× względem Chinchilli — optymalny pod kątem kosztu późniejszej inferencji, nie samego treningu). Sprzęt: pojedyncza karta RTX 5090.

Jak użyć

pip install torch tokenizers safetensors
# najnowsza migawka (domyślnie):
python generate.py "Polska to kraj" --n 100 --temp 0.8 --topk 50
# wybrana migawka trajektorii:
python generate.py "Polska to kraj" --ckpt ckpt_6000.safetensors --n 100
from modeling_gollem import GollemGPT
m = GollemGPT.from_pretrained("./")                          # najnowsza migawka
# m = GollemGPT.from_pretrained("./", ckpt="ckpt_6000.safetensors")  # wybrany etap
print(m.generate("Stolica Polski to", max_new_tokens=100, temperature=0.8, top_k=50))

Pliki w repozytorium: ckpt_*.safetensors (wagi każdej migawki, format bez pikli), config.json (architektura + lista migawek), tokenizer.json (V32k), modeling_gollem.py i generate.py (samodzielny wczytywacz i skrypt generowania).

Uwaga o formacie: wagi zapisane jako safetensors (czyste tensory, zero wykonywalnego kodu) — bezpieczniejsze do publicznego udostępnienia niż surowy format .pt (pickle). Pełne checkpointy treningowe (ze stanem optymalizatora, do wznowienia treningu) pozostają wewnętrzne.

Ograniczenia i uwagi etyczne

  • Modele są pośrednie i niedojrzałe — nie odzwierciedlają finalnej jakości.
  • Trenowane na danych z internetu (rejestr web) — mimo filtrów mogą powielać uprzedzenia, błędy i treści obecne w korpusie.
  • Zastosowano filtr danych osobowych (pozostałość ≈0,0018%), co jednak nie gwarantuje całkowitego braku danych osobowych.
  • Wyłącznie do badań — Laboratorium Slayer nie ponosi odpowiedzialności za zastosowania produkcyjne.

Licencja i pochodzenie danych

Dane pochodzą m.in. z korpusu HPLT v3 (PL) oraz zasobów na licencji cc-by-sa (rejestr encyklopedyczny, część prawniczego i literackiego). Pochodzenie każdego rejestru opisano w manifeście korpusu. Wagi udostępniamy do celów badawczych.


GoLLeM v4 — Laboratorium Slayer. Checkpointy badawcze (trajektoria treningu), w trakcie prac. Kartę opracował: Hart (N-02).

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support